-
Notifications
You must be signed in to change notification settings - Fork 77
Add conversation history support to chat modes #532
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
Conversation
Summary of ChangesHello @ericcurtin, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the interactive chat experience by implementing conversation history. Users can now engage in more natural, multi-turn dialogues with the assistant, as previous messages are preserved and provided as context for subsequent responses. This change involves introducing a new API method to handle the message history and integrating it into the existing interactive chat interfaces. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request successfully adds conversation history support to the interactive chat modes. The changes are logical and correctly implement the desired functionality by introducing a new ChatWithMessagesContext API method and updating the interactive modes to use it. My review focuses on improving maintainability by addressing code duplication. I've identified significant duplication in cmd/cli/desktop/desktop.go where the new ChatWithMessagesContext function largely copies the existing ChatWithContext. I've also noted smaller-scale duplication in cmd/cli/commands/run.go. Addressing these points will make the codebase cleaner and easier to maintain.
515d22a to
742411d
Compare
742411d to
5331e19
Compare
The interactive mode now maintains conversation context across chat exchanges. The readline-based interactive mode was enhanced to track conversation history and pass it to the model on each request. A new ChatWithMessagesContext method was added to support conversation history while maintaining backward compatibility through the existing ChatWithContext method. The conversation history uses the processed user messages after file inclusions and image processing to ensure accuracy. Additionally, the code now properly handles context cancellation by returning the assistant response when cancelled. The basic interactive mode fallback was removed since readline initialization is now required. Signed-off-by: Eric Curtin <eric.curtin@docker.com>
5331e19 to
e58a48c
Compare
The interactive mode now maintains conversation context across chat
exchanges. The readline-based interactive mode was enhanced to track
conversation history and pass it to the model on each request. A new
ChatWithMessagesContext method was added to support conversation history
while maintaining backward compatibility through the existing
ChatWithContext method. The conversation history uses the processed user
messages after file inclusions and image processing to ensure accuracy.
Additionally, the code now properly handles context cancellation by
returning the assistant response when cancelled. The basic interactive
mode fallback was removed since readline initialization is now required.