-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[ENH]: CLI optional parameter to turn off persistent mode #2225
base: main
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
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.
I think there's room for improvement and we should explore additional alternatives (not only the one I propose in my comments).
@@ -31,6 +31,9 @@ def run( | |||
path: str = typer.Option( | |||
"./chroma_data", help="The path to the file or directory." | |||
), | |||
persistent: Annotated[ |
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.
I think this would be confusing at best. Wouldn't it be more appropriate not to set --path
?
Imagine chroma run --path <path> --persistent False
.
In the above, --path
is still mandatory, which wouldn't help much either.
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.
I done it so that it wont brake compatibility. There is a chance that some people running it without providing the path parameter so that it defaults to "./chroma_data".
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.
The path param is optional you can run it by just chroma run
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.
Hmm, or you mean throwing an error if the user sets the path parameter?
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.
Fair point but I still feel that
chroma run --path ./chroma --no-persistent
can be confusing.
I think that from CLI perspective having less flags is better than more. And introducing a breaking change to have no path translate to ephemeral instance. The absence of something can be a better mechanic than default to something the user might not expect.
The CLI is still nascent so we might not want to be overzealous on backward compatibility of defaults. I don't think we have telemetry on how frequently or not people are using the CLI to run Chroma so it might be a shot in the dark.
@jeffchuber any thoughts on this?
@nepeee can you tell me more about the use case here? what is the use case to run the server, but not need persistence? |
I use chroma for real time text grouping. Basically i push messages to the db and query the similar ones to group them for analysis. I don't need persistence because there's no reason to save the data and i want the lowest latency possible. I like the server because i can work on my code while the cli server keeps the data in ram. |
Refs: #1674
Description of changes
Summarize the changes made by this PR.
Test plan
How are these changes tested?
Tested locally with --persistent, --no-persistent and without the parameter
Documentation Changes
TBD