55import com .microsoft .semantickernel .services .chatcompletion .message .ChatMessageTextContent ;
66import java .nio .charset .Charset ;
77import java .util .ArrayList ;
8- import java .util .Collection ;
98import java .util .Collections ;
109import java .util .Iterator ;
1110import java .util .List ;
1211import java .util .Optional ;
1312import java .util .Spliterator ;
14- import java .util .concurrent .ConcurrentLinkedQueue ;
1513import java .util .function .Consumer ;
1614import javax .annotation .Nullable ;
1715
2018 */
2119public class ChatHistory implements Iterable <ChatMessageContent <?>> {
2220
23- private final Collection <ChatMessageContent <?>> chatMessageContents ;
21+ private final List <ChatMessageContent <?>> chatMessageContents ;
2422
2523 /**
2624 * The default constructor
@@ -35,7 +33,7 @@ public ChatHistory() {
3533 * @param instructions The instructions to add to the chat history
3634 */
3735 public ChatHistory (@ Nullable String instructions ) {
38- this .chatMessageContents = new ConcurrentLinkedQueue <>();
36+ this .chatMessageContents = Collections . synchronizedList ( new ArrayList <>() );
3937 if (instructions != null ) {
4038 this .chatMessageContents .add (
4139 ChatMessageTextContent .systemMessage (instructions ));
@@ -48,7 +46,8 @@ public ChatHistory(@Nullable String instructions) {
4846 * @param chatMessageContents The chat message contents to add to the chat history
4947 */
5048 public ChatHistory (List <? extends ChatMessageContent <?>> chatMessageContents ) {
51- this .chatMessageContents = new ConcurrentLinkedQueue <>(chatMessageContents );
49+ this .chatMessageContents = Collections
50+ .synchronizedList (new ArrayList <>(chatMessageContents ));
5251 }
5352
5453 /**
@@ -70,7 +69,7 @@ public Optional<ChatMessageContent<?>> getLastMessage() {
7069 return Optional .empty ();
7170 }
7271 return Optional
73- .of ((( ConcurrentLinkedQueue < ChatMessageContent <?>>) chatMessageContents ). peek ( ));
72+ .of (chatMessageContents . get ( chatMessageContents . size () - 1 ));
7473 }
7574
7675 /**
0 commit comments