I’m trying to use Azure openai deployment to generate embeddings and store them in Redis vectorDB. I created the embeddings model as follow and pass the model_config (like embedding_ctx_length
, generation_max_tokens
, allowed_special
, model_kwargs
) parameters as values
:
from langchain_openai import AzureOpenAIEmbeddings
embeddings_model = AzureOpenAIEmbeddings(
deployment=<'deployment_name'>
model='gpt_35_turbo',
openai_api_type="azure",
values=model_config,
)
Then I call Redis.from_documents()
to generate embeddings as follow:
from langchain_community.vectorstores.redis import Redis
Redis.from_documents(
docs, # a list of Document objects from loaders or created
embeddings_model,
redis_url=redis_url,
index_name=redis_index_name,
)
It fails with the following error:
TypeError: Embeddings.create() got an unexpected keyword argument 'values'
On my second try to fix this issue, I tried to create the embedding model as follow:
from langchain_openai import AzureOpenAIEmbeddings
"model_config": {
"allowed_special": "",
"chunk_size": 50,
"disallowed_special": "all",
"embedding_ctx_length": 8191,
"generation_max_tokens": 8000,
"model_kwargs": ""
}
embeddings_model = AzureOpenAIEmbeddings(
deployment=<'deployment_name'>
model='gpt_35_turbo',
openai_api_type="azure",
**self.__model_config,
)
then it doesn’t handle the cases if model_kwargs
is not set:
> invalid_model_kwargs = all_required_field_names.intersection(extra.keys())
E AttributeError: 'str' object has no attribute 'keys'
.venv/lib/python3.12/site-packages/langchain_openai/embeddings/base.py:219: AttributeError
Any suggestion on how to fix the issue? Here are the packages version I’m using:
langchain 0.2.3
langchain-community 0.2.4
langchain-core 0.2.5
langchain-openai 0.1.14
langchain-text-splitters 0.2.1