Replies: 1 comment
|
Really solid work Kapil. Wrapping chatkit-python's Store around BaseSessionService and shipping three ported examples is solid work. You're right that the session service owning thread-item persistence makes a lot of Store methods awkward to fill in and that's still the case today nothing's changed there. Worth filing that specific extensibility gap as a feature request so it's actually on the team's radar since discussions don't get the same triage as issues. Closing this as Show and Tell since it's a third-party integration rather than an ADK core issue, keep building this is genuinely useful stuff. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi,
I created a library (https://github.com/ksachdeva/adk-chatkit) that extends chatkit-python (https://github.com/openai/chatkit-python).
Key design choices/workflow -
a) To render a widget or issue a client side tool call, the server side tool should add it to the response (dictionary) using an api provided in the library
b) Library exposes a function
stream_agent_responseto convert ADK events to chatkit-js required events.c) Implemented Store (the abstraction required by chatkit-python) that wraps BaseSessionService.
The main challenge in implementing (rather fighting the abstraction) was that ADK Session service manages the addition of thread items therefore quite many methods in Store are simply empty and in stream_agent_response, I issue some events assuming that session service had added the items to the backend (InMemory, DataBase etc)
I have ported 3 example applications from (https://github.com/openai/openai-chatkit-advanced-samples) to show case the support.
Would appreciate if ADK team could review and provide feedback on some of the design & implementations choices I made and suggest if there are other ways to achieve the integration.
Regards & thanks
Kapil
All reactions