Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assistant-user communication #45

Open
richiejp opened this issue Oct 8, 2024 · 2 comments
Open

Assistant-user communication #45

richiejp opened this issue Oct 8, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@richiejp
Copy link
Contributor

richiejp commented Oct 8, 2024

We need a way for external assistants (#38 #19) to communicate with the user through a socket we expose to the assistants container. We could use gRPC which the CLI and server use to communicate, but it's kind of a heavyweight solution. Not all languages have an implementation and it's not easy to implement. Using Protocol Buffers on their own is another option, but still has the same issues as gRPC.

Ideally the protocol should:

  • Support binary safe strings
  • Be simple to implement

The first thing to come to my mind is Reddis RESP. It may even be possible to use existing client libraries although it may be better not to judging from some of the experiences I've had with Reddis clients xD

@richiejp richiejp added the enhancement New feature or request label Oct 9, 2024
@sarrubia
Copy link

Hi, maybe this can help (or not :P ), someones that come to my mind are options like:

Or building something to send and receive AVRO files/frames

Apache Avro™ is the leading serialization format for record data, and first choice for streaming data pipelines. It offers excellent schema evolution, and has implementations for the JVM (Java, Kotlin, Scala, …), Python, C/C++/C#, PHP, Ruby, Rust, JavaScript, and even Perl.

@richiejp
Copy link
Contributor Author

Nice, although my first reaction is that they are too complicated. Some combination of these could have been a nice alternative to gRPC + libp2p which is what is being used for CLI to server communication.

Maybe AVRO could be used in this case, but my initial impression is that because it has a schema that's used during decoding, it's going to be more complicated than RESP. I'll have to take a closer look though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants