Skip to content

Commit 0b36ef8

Browse files
authored
Merge pull request #59 from WordPress/no-more-system-messages
Removes system message concept
2 parents b0cacfb + df2250d commit 0b36ef8

File tree

7 files changed

+11
-318
lines changed

7 files changed

+11
-318
lines changed

docs/ARCHITECTURE.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ direction LR
312312
+withMessageParts(...MessagePart $part) self
313313
+withHistory(...Message $messages) self
314314
+usingModel(ModelInterface $model) self
315-
+usingSystemInstruction(string|MessagePart[]|Message $systemInstruction) self
315+
+usingSystemInstruction(string $systemInstruction) self
316316
+usingMaxTokens(int $maxTokens) self
317317
+usingTemperature(float $temperature) self
318318
+usingTopP(float $topP) self
@@ -475,7 +475,7 @@ direction LR
475475
+withMessageParts(...MessagePart $part) self
476476
+withHistory(...Message $messages) self
477477
+usingModel(ModelInterface $model) self
478-
+usingSystemInstruction(string|MessagePart[]|Message $systemInstruction) self
478+
+usingSystemInstruction(string $systemInstruction) self
479479
+usingMaxTokens(int $maxTokens) self
480480
+usingTemperature(float $temperature) self
481481
+usingTopP(float $topP) self
@@ -566,8 +566,6 @@ direction LR
566566
}
567567
class ModelMessage {
568568
}
569-
class SystemMessage {
570-
}
571569
class UserMessage {
572570
}
573571
}
@@ -582,7 +580,6 @@ direction LR
582580
class MessageRoleEnum {
583581
USER
584582
MODEL
585-
SYSTEM
586583
}
587584
class ModalityEnum {
588585
TEXT
@@ -778,7 +775,6 @@ direction LR
778775
Candidate ..> FinishReasonEnum
779776
Message <|-- UserMessage
780777
Message <|-- ModelMessage
781-
Message <|-- SystemMessage
782778
OperationInterface <|-- GenerativeAiOperation
783779
OperationInterface <|-- EmbeddingOperation
784780
ResultInterface <|-- GenerativeAiResult
@@ -944,8 +940,8 @@ direction LR
944940
class ModelConfig {
945941
+setOutputModalities(ModalityEnum[] $modalities) void
946942
+getOutputModalities() ModalityEnum[]
947-
+setSystemInstruction(string|MessagePart|MessagePart[]|Message $systemInstruction) void
948-
+getSystemInstruction() Message?
943+
+setSystemInstruction(string $systemInstruction) void
944+
+getSystemInstruction() string?
949945
+setCandidateCount(int $candidateCount) void
950946
+getCandidateCount() int
951947
+setMaxTokens(int $maxTokens) void

src/Messages/DTO/Message.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ final public static function fromArray(array $array): self
142142
} elseif ($role->isModel()) {
143143
return new ModelMessage($parts);
144144
} else {
145-
// System is the only remaining option
146-
return new SystemMessage($parts);
145+
// Only USER and MODEL roles are supported
146+
throw new \InvalidArgumentException('Invalid message role: ' . $role->value);
147147
}
148148
}
149149
}

src/Messages/DTO/SystemMessage.php

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/Messages/Enums/MessageRoleEnum.php

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@
1313
*
1414
* @method static self user() Creates an instance for USER role.
1515
* @method static self model() Creates an instance for MODEL role.
16-
* @method static self system() Creates an instance for SYSTEM role.
1716
* @method bool isUser() Checks if the role is USER.
1817
* @method bool isModel() Checks if the role is MODEL.
19-
* @method bool isSystem() Checks if the role is SYSTEM.
2018
*/
2119
class MessageRoleEnum extends AbstractEnum
2220
{
@@ -29,9 +27,4 @@ class MessageRoleEnum extends AbstractEnum
2927
* Model role - messages from the AI model.
3028
*/
3129
public const MODEL = 'model';
32-
33-
/**
34-
* System role - system instructions.
35-
*/
36-
public const SYSTEM = 'system';
3730
}

tests/unit/Messages/DTO/MessageTest.php

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public function testCreateWithMultipleParts(): void
6262
*/
6363
public function testCreateWithEmptyParts(): void
6464
{
65-
$role = MessageRoleEnum::system();
65+
$role = MessageRoleEnum::user();
6666
$message = new Message($role, []);
6767

6868
$this->assertEquals($role, $message->getRole());
@@ -93,7 +93,6 @@ public function testWithDifferentRoles(MessageRoleEnum $role): void
9393
public function roleProvider(): array
9494
{
9595
return [
96-
'system' => [MessageRoleEnum::system()],
9796
'user' => [MessageRoleEnum::user()],
9897
'model' => [MessageRoleEnum::model()],
9998
];
@@ -151,7 +150,6 @@ public function testJsonSchema(): void
151150
$roleSchema = $schema['properties'][Message::KEY_ROLE];
152151
$this->assertEquals('string', $roleSchema['type']);
153152
$this->assertArrayHasKey('enum', $roleSchema);
154-
$this->assertContains('system', $roleSchema['enum']);
155153
$this->assertContains('user', $roleSchema['enum']);
156154
$this->assertContains('model', $roleSchema['enum']);
157155

@@ -263,21 +261,21 @@ public function testToArray(): void
263261
public function testFromArray(): void
264262
{
265263
$json = [
266-
Message::KEY_ROLE => MessageRoleEnum::system()->value,
264+
Message::KEY_ROLE => MessageRoleEnum::user()->value,
267265
Message::KEY_PARTS => [
268266
[
269267
MessagePart::KEY_TYPE => MessagePartTypeEnum::text()->value,
270-
MessagePart::KEY_TEXT => 'You are a helpful assistant.'
268+
MessagePart::KEY_TEXT => 'Hello, how can you help me?'
271269
]
272270
]
273271
];
274272

275273
$message = Message::fromArray($json);
276274

277275
$this->assertInstanceOf(Message::class, $message);
278-
$this->assertEquals(MessageRoleEnum::system(), $message->getRole());
276+
$this->assertEquals(MessageRoleEnum::user(), $message->getRole());
279277
$this->assertCount(1, $message->getParts());
280-
$this->assertEquals('You are a helpful assistant.', $message->getParts()[0]->getText());
278+
$this->assertEquals('Hello, how can you help me?', $message->getParts()[0]->getText());
281279
}
282280

283281
/**

0 commit comments

Comments
 (0)