microsoft / semantic-kernel-java

Semantic Kernel for Java. Integrate cutting-edge LLM technology quickly and easily into your Java based apps. See https://aka.ms/semantic-kernel.
MIT License
98 stars 18 forks source link

Model the .NET BroadcastQueue #182

Open dsgrieve opened 3 months ago

dsgrieve commented 3 months ago

.NET has a class called BroadcastQueue which orchestrates the updating of ChatHistory from channels (assistant threads). We can model this in reactive streams (project reactor).

  1. Understand the .NET BroadcastQueue and how it works to sync history among AgentChannels
  2. Model this in reactive streams.
  3. Provide unit tests.

Done is defined as

  1. Having the API for Agent, AgentChannel, and ChatHistory necessary to support updating chat history from multiple sources in an asynchronous fashion.
  2. Having a sample of unit tests that exercise the BroadcastQueue functionality.
### Tasks
- [ ] https://github.com/microsoft/semantic-kernel-java/issues/186
- [ ] https://github.com/microsoft/semantic-kernel-java/issues/187
- [ ] https://github.com/microsoft/semantic-kernel-java/issues/188
- [ ] https://github.com/microsoft/semantic-kernel-java/issues/189