-
Notifications
You must be signed in to change notification settings - Fork 5.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
Azure CosmosDB Mongo vCore Storage Integrations #16176
base: main
Are you sure you want to change the base?
Azure CosmosDB Mongo vCore Storage Integrations #16176
Conversation
...hat-store-azurecosmosmongovcore/llama_index/storage/chat_store/azurecosmosmongovcore/base.py
Outdated
Show resolved
Hide resolved
…011/llama_index into users/akataria/azureMongoStorage
|
||
|
||
class AzureCosmosMongoVCoreKVStore(BaseKVStore, ABC): | ||
"""Creates an AzureCosmosMongoVCoreKVStore.""" |
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.
Is there a reason that the existing mongo kvstore doesn't work for azure here?
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.
Seems like its using pymongo under the hood, so I would expect the existing mongo kvstore (and other associated integrations) to work fine 👀
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.
@logan-markewich , we want to keep our integration separate with a different user agent for tracking purposes.
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.
@aayush3011 can't we just insert the user-agent in the existing mongodb integrations? Seems like something generally useful for anyone
Otherwise we have completely duplicate code just for a small difference, feels kind of icky
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.
@logan-markewich we would have to somehow figure out that this is an azure cosmos mongoDB and insert the necessary user agent. To do so, the user then needs to send some keyword like"azure" or "cosmos" as a property when creating using the kvStore.
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.
@logan-markewich We want to differentiate between whether its a vector store, or any other storage integration. And we have the language in the user agent as well to differentiate between Python and Typescript LlamaIndex implementation
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 kvstore is only used for doctores and index stores -- sorry, but still not seeing the argument for introducing all this code duplication and bloat just to add a user agent
We can have llama-index-docstore-py
/llama-index-kvstore-py
/llama-index-index-store-py
be the user agent for the existing mongodb kvstores for example
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.
As a maintainer, I do not want to debug two versions of the same class, there's already too much code in the repo as it is 😉
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.
@logan-markewich Sure, I get your point. Would this be okay if we ask the customer to send "api=azure" in the kwargs and place a check for it to add the azure cosmos db specific user agent. If this approach doesn't seems good, we can go with what you suggested.
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.
Both seem fine to me, although the approach with the least amount of effort from the user will probably be the easiest
Description
Storage Integration:
New Package?
Did I fill in the
tool.llamahub
section in thepyproject.toml
and provide a detailed README.md for my new integration or package?Version Bump?
Did I bump the version in the
pyproject.toml
file of the package I am updating? (Except for thellama-index-core
package)Type of Change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Suggested Checklist:
make format; make lint
to appease the lint gods