From 601e8578eebf157bcc8285e4657bcc39b90a0ab0 Mon Sep 17 00:00:00 2001 From: Thomas Menard Date: Fri, 25 Apr 2025 19:12:39 +0000 Subject: [PATCH 1/3] rebase --- app/config.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/config.py b/app/config.py index c5ce2009..604db462 100644 --- a/app/config.py +++ b/app/config.py @@ -25,7 +25,7 @@ class EmbeddingsProvider(Enum): HUGGINGFACETEI = "huggingfacetei" OLLAMA = "ollama" BEDROCK = "bedrock" - + MISTRAL = "mistral" def get_env_variable( var_name: str, default_value: str = None, required: bool = False @@ -176,6 +176,7 @@ async def dispatch(self, request, call_next): OLLAMA_BASE_URL = get_env_variable("OLLAMA_BASE_URL", "http://ollama:11434") AWS_ACCESS_KEY_ID = get_env_variable("AWS_ACCESS_KEY_ID", "") AWS_SECRET_ACCESS_KEY = get_env_variable("AWS_SECRET_ACCESS_KEY", "") +MISTRAL_API_KEY = get_env_variable("MISTRAL_API_KEY", "") ## Embeddings @@ -226,6 +227,13 @@ def init_embeddings(provider, model): model_id=model, region_name=AWS_DEFAULT_REGION, ) + elif provider == EmbeddingsProvider.MISTRAL: + from langchain_mistralai import MistralAIEmbeddings + + return MistralAIEmbeddings( + model=model, + api_key=MISTRAL_API_KEY, + ) else: raise ValueError(f"Unsupported embeddings provider: {provider}") @@ -253,6 +261,10 @@ def init_embeddings(provider, model): "EMBEDDINGS_MODEL", "amazon.titan-embed-text-v1" ) AWS_DEFAULT_REGION = get_env_variable("AWS_DEFAULT_REGION", "us-east-1") +elif EMBEDDINGS_PROVIDER == EmbeddingsProvider.MISTRAL: + EMBEDDINGS_MODEL = get_env_variable( + "EMBEDDINGS_MODEL", "mistral-embed" + ) else: raise ValueError(f"Unsupported embeddings provider: {EMBEDDINGS_PROVIDER}") From 241370be2a42bcd9348f6df6fec3b451b4c149d2 Mon Sep 17 00:00:00 2001 From: Thomas Menard Date: Tue, 12 Nov 2024 07:45:37 +0000 Subject: [PATCH 2/3] add doc --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 37bdcdf8..a658f71b 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ The following environment variables are required to run the application: - `PDF_EXTRACT_IMAGES`: (Optional) A boolean value indicating whether to extract images from PDF files. Default value is "False". - `DEBUG_RAG_API`: (Optional) Set to "True" to show more verbose logging output in the server console, and to enable postgresql database routes - `CONSOLE_JSON`: (Optional) Set to "True" to log as json for Cloud Logging aggregations -- `EMBEDDINGS_PROVIDER`: (Optional) either "openai", "bedrock", "azure", "huggingface", "huggingfacetei" or "ollama", where "huggingface" uses sentence_transformers; defaults to "openai" +- `EMBEDDINGS_PROVIDER`: (Optional) either "openai", "bedrock", "azure", "huggingface", "huggingfacetei", "ollama" or "mistral", where "huggingface" uses sentence_transformers; defaults to "openai" - `EMBEDDINGS_MODEL`: (Optional) Set a valid embeddings model to use from the configured provider. - **Defaults** - openai: "text-embedding-3-small" @@ -70,6 +70,7 @@ The following environment variables are required to run the application: - huggingfacetei: "http://huggingfacetei:3000". Hugging Face TEI uses model defined on TEI service launch. - ollama: "nomic-embed-text" - bedrock: "amazon.titan-embed-text-v1" + - mistral: "mistral-embed" - `RAG_AZURE_OPENAI_API_VERSION`: (Optional) Default is `2023-05-15`. The version of the Azure OpenAI API. - `RAG_AZURE_OPENAI_API_KEY`: (Optional) The API key for Azure OpenAI service. - Note: `AZURE_OPENAI_API_KEY` will work but `RAG_AZURE_OPENAI_API_KEY` will override it in order to not conflict with LibreChat setting. @@ -83,6 +84,7 @@ The following environment variables are required to run the application: - `AWS_DEFAULT_REGION`: (Optional) defaults to `us-east-1` - `AWS_ACCESS_KEY_ID`: (Optional) needed for bedrock embeddings - `AWS_SECRET_ACCESS_KEY`: (Optional) needed for bedrock embeddings +- `MISTRAL_API_KEY`: (Optional) needed for mistral embeddings Make sure to set these environment variables before running the application. You can set them in a `.env` file or as system environment variables. From a602a6755609793e8a4435386d1b8e437abea396 Mon Sep 17 00:00:00 2001 From: Thomas Menard Date: Fri, 25 Apr 2025 19:16:36 +0000 Subject: [PATCH 3/3] add langchain-mistralai in requirements --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index ef964e02..3a578535 100644 --- a/requirements.txt +++ b/requirements.txt @@ -30,6 +30,7 @@ pymongo==4.6.3 langchain-mongodb==0.2.0 langchain-ollama==0.2.0 langchain-huggingface==0.1.0 +langchain-mistralai==0.2.1 cryptography==44.0.1 python-magic==0.4.27 python-pptx==0.6.23