File tree Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Expand file tree Collapse file tree 2 files changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,14 @@ public function with(Message $message): self
3333 return $ messages ;
3434 }
3535
36+ public function merge (MessageBag $ messageBag ): self
37+ {
38+ $ messages = clone $ this ;
39+ $ messages ->exchangeArray (array_merge ($ messages ->getArrayCopy (), $ messageBag ->getArrayCopy ()));
40+
41+ return $ messages ;
42+ }
43+
3644 public function withoutSystemMessage (): self
3745 {
3846 $ messages = clone $ this ;
Original file line number Diff line number Diff line change @@ -59,6 +59,23 @@ public function with(): void
5959 self ::assertSame ('It is time to wake up. ' , $ newMessageBag [3 ]->content );
6060 }
6161
62+ #[Test]
63+ public function merge (): void
64+ {
65+ $ messageBag = new MessageBag (
66+ Message::forSystem ('My amazing system prompt. ' ),
67+ Message::ofAssistant ('It is time to sleep. ' ),
68+ Message::ofUser ('Hello, world! ' ),
69+ );
70+
71+ $ messageBag = $ messageBag ->merge (new MessageBag (
72+ Message::ofAssistant ('It is time to wake up. ' )
73+ ));
74+
75+ self ::assertCount (4 , $ messageBag );
76+ self ::assertSame ('It is time to wake up. ' , $ messageBag [3 ]->content );
77+ }
78+
6279 #[Test]
6380 public function withoutSystemMessage (): void
6481 {
You can’t perform that action at this time.
0 commit comments