当我执行下面的代码时,我的代码崩溃了,我必须说我已经在ES中索引了文档
db = ElasticVectorSearch(
elasticsearch_url=url, # it is fine, I didnt change it
index_name=os.environ["ELASTICSEARCH_INDEX_NAME"],
embedding=OpenAIEmbeddings(openai_api_key=os.environ["OPENAI_API_KEY"],
deployment=os.environ["AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT"]),
ssl_verify={"ca_certs": os.environ["APP_LANGCHAIN_CERT_PATH"]})
docs = db.similarity_search(query="my query",
k=10)
谢谢你
它是工作之前,我删除了索引,我创建他们与
client.options(ignore_status=400).indices.create(index=os.environ["ELASTICSEARCH_INDEX"])
1条答案
按热度按时间xytpbqjk1#
您需要创建一个索引,其Map包含
dense_vector
类型的vector
字段,正如您在langchain创建的默认Map中所看到的那样。这可能是你以前的索引中的情况。你可以模仿langchain代码的功能,并像这样做(确保
dims
匹配OpenAI创建的维数,通常是1536):请注意,从源代码判断,我不确定为什么langchain不创建索引,如果它不存在。