Replies: 2 comments 3 replies
-
@porimol Makes sense! It gives us more flexibility and control. We'll add that to the to-do list. Thanks for you input! |
Beta Was this translation helpful? Give feedback.
-
Hello @porimol, Complexity and Corner Cases: While the idea of a Developers' Practicality: From a developer's perspective, it's often more rational to leverage existing packages and libraries. This approach is widely adopted in the industry because it helps avoid reinventing the wheel and allows developers to focus on higher-level functionalities rather than underlying integrations. Just as we routinely use packages like NumPy for numerical computations, relying on a robust VectorDB can streamline development and maintenance. Convenience and Efficiency: Utilizing a well-established VectorDB like ChromaDB can offer significant convenience. It provides a standardized interface and ready-made solutions that have been tested and optimized. This can save considerable development time and reduce the risk of bugs or performance issues that might arise from building and maintaining a custom agnostic layer. As a result, agnostic approach has its own merits, it is essential to weigh the trade-offs in terms of complexity, practicality, and developer efficiency. Leveraging existing VectorDBs can often be the more efficient and developer-friendly route. But you can contribute to our cause by developing your own |
Beta Was this translation helpful? Give feedback.
-
Why?
Developing a
VectorDB agnostic implementation
refers to creatingPoRAG
library that can work with any VectorDB without being dependent on a specific one (E.g.: ChromaDB).Here are several reasons why
VectorDB agnostic implementation
approach might add more values:How it might be looks like?
Example: 1
Example: 2
# config file VECTOR_DB=chromadb URI: ........ AUTH_TOKEN:.....
Of course those two examples are not limited there are several others way to improve it.
Conclusion
A VectorDB agnostic implementation provides significant advantages in terms of flexibility, future-proofing, performance optimization, scalability, cost efficiency, interoperability, and developer experience. It allows developers to adapt to changing needs, leverage the best available technologies.
Beta Was this translation helpful? Give feedback.
All reactions