Add support for semantic search with the dense vector #355
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Intention
Current chatbot-rag-app is set up with only SparseVectorStrategy. I'd like to add DenseVectorStrategy because for those who speak non-English languages, DenseVectorStrategy with E5 models is good option.
I know this doesn't work for the data ingestion part, but it's great to have a dense vector option in the RAG example.
Changes
This pull request introduces several enhancements to the
example-apps/chatbot-rag-app
to support both sparse and dense vector strategies for Elasticsearch. The changes include updates to the environment configuration, the main chat API, and logging improvements.Support for multiple vector strategies:
example-apps/chatbot-rag-app/api/chat.py
: Added support forDenseVectorStrategy
alongside the existingSparseVectorStrategy
. Introduced new environment variables to configure the strategy type, model ID, vector field, and query field. [1] [2]Environment configuration updates:
example-apps/chatbot-rag-app/env.example
: Updated the example environment file to include configurations for both sparse and dense vector strategies, allowing users to easily switch between them.Logging improvements:
example-apps/chatbot-rag-app/api/chat.py
: Improved logging in theask_question
function to ensure that document metadata is logged only if the "name" field is present.