11# config.py
22import os
33import json
4- import logging
54import boto3
5+ import logging
66from enum import Enum
77from datetime import datetime
88from dotenv import find_dotenv , load_dotenv
9- from langchain_ollama import OllamaEmbeddings
10- from langchain_huggingface import HuggingFaceEmbeddings , HuggingFaceEndpointEmbeddings
11- from langchain_aws import BedrockEmbeddings
12- from langchain_openai import AzureOpenAIEmbeddings , OpenAIEmbeddings
139from starlette .middleware .base import BaseHTTPMiddleware
1410from store_factory import get_vector_store
1511
@@ -179,28 +175,40 @@ async def dispatch(self, request, call_next):
179175
180176def init_embeddings (provider , model ):
181177 if provider == EmbeddingsProvider .OPENAI :
178+ from langchain_openai import OpenAIEmbeddings
179+
182180 return OpenAIEmbeddings (
183181 model = model ,
184182 api_key = RAG_OPENAI_API_KEY ,
185183 openai_api_base = RAG_OPENAI_BASEURL ,
186184 openai_proxy = RAG_OPENAI_PROXY ,
187185 )
188186 elif provider == EmbeddingsProvider .AZURE :
187+ from langchain_openai import AzureOpenAIEmbeddings
188+
189189 return AzureOpenAIEmbeddings (
190190 azure_deployment = model ,
191191 api_key = RAG_AZURE_OPENAI_API_KEY ,
192192 azure_endpoint = RAG_AZURE_OPENAI_ENDPOINT ,
193193 api_version = RAG_AZURE_OPENAI_API_VERSION ,
194194 )
195195 elif provider == EmbeddingsProvider .HUGGINGFACE :
196+ from langchain_huggingface import HuggingFaceEmbeddings
197+
196198 return HuggingFaceEmbeddings (
197199 model_name = model , encode_kwargs = {"normalize_embeddings" : True }
198200 )
199201 elif provider == EmbeddingsProvider .HUGGINGFACETEI :
202+ from langchain_huggingface import HuggingFaceEndpointEmbeddings
203+
200204 return HuggingFaceEndpointEmbeddings (model = model )
201205 elif provider == EmbeddingsProvider .OLLAMA :
206+ from langchain_ollama import OllamaEmbeddings
207+
202208 return OllamaEmbeddings (model = model , base_url = OLLAMA_BASE_URL )
203209 elif provider == EmbeddingsProvider .BEDROCK :
210+ from langchain_aws import BedrockEmbeddings
211+
204212 session = boto3 .Session (
205213 aws_access_key_id = AWS_ACCESS_KEY_ID ,
206214 aws_secret_access_key = AWS_SECRET_ACCESS_KEY ,
@@ -237,9 +245,7 @@ def init_embeddings(provider, model):
237245 EMBEDDINGS_MODEL = get_env_variable (
238246 "EMBEDDINGS_MODEL" , "amazon.titan-embed-text-v1"
239247 )
240- AWS_DEFAULT_REGION = get_env_variable (
241- "AWS_DEFAULT_REGION" , "us-east-1"
242- )
248+ AWS_DEFAULT_REGION = get_env_variable ("AWS_DEFAULT_REGION" , "us-east-1" )
243249else :
244250 raise ValueError (f"Unsupported embeddings provider: { EMBEDDINGS_PROVIDER } " )
245251
@@ -258,7 +264,9 @@ def init_embeddings(provider, model):
258264elif VECTOR_DB_TYPE == VectorDBType .ATLAS_MONGO :
259265 # Backward compatability check
260266 if MONGO_VECTOR_COLLECTION :
261- logger .info (f"DEPRECATED: Please remove env var MONGO_VECTOR_COLLECTION and instead use COLLECTION_NAME and ATLAS_SEARCH_INDEX. You can set both as same, but not neccessary. See README for more information." )
267+ logger .info (
268+ f"DEPRECATED: Please remove env var MONGO_VECTOR_COLLECTION and instead use COLLECTION_NAME and ATLAS_SEARCH_INDEX. You can set both as same, but not neccessary. See README for more information."
269+ )
262270 ATLAS_SEARCH_INDEX = MONGO_VECTOR_COLLECTION
263271 COLLECTION_NAME = MONGO_VECTOR_COLLECTION
264272 vector_store = get_vector_store (
0 commit comments