如何使用Python API创建VectorSearchAlgorithmConfiguration类型变量?
问题背景
在使用Azure搜索Python API构建向量搜索算法配置时,遇到了参数传递无效和类导入失败的问题,最终通过调整使用的类解决了编译问题。
初始代码与报错
最初尝试通过VectorSearchAlgorithmConfiguration类结合HnswParameters配置HNSW算法,代码如下:
hnswParameters = HnswParameters(m=4, ef_construction=400, ef_search=500, metric="cosine") vectorSearchAlgorithm = VectorSearchAlgorithmConfiguration(name="my-hnsw-vector-config-1", kind="hnsw", hnswParameters=hnswParameters)
执行后收到错误提示:
hnswParameters is not a known attribute of class <class 'azure.search.documents.indexes._generated.models._models_py3.VectorSearchAlgorithmConfiguration'> and will be ignored
导入类失败的尝试
为解决参数问题,尝试导入HnswVectorSearchAlgorithmConfiguration类:
from azure.search.documents.indexes.models import ( ..., HnswVectorSearchAlgorithmConfiguration )
但出现导入错误:
ImportError: cannot import name 'HnswVectorSearchAlgorithmConfiguration' from 'azure.search.documents.indexes.models' (c:\Users\manuchadha\...\demo-data\aoai-openai\aoai-code\.venv\Lib\site-packages\azure\search\documents\indexes\models\__init__.py)
可行代码(编译通过)
改用HnswAlgorithmConfiguration类后,代码成功编译(尚未测试功能):
hnswParameters = HnswParameters(m=4, ef_construction=400, ef_search=500, metric="cosine") vectorSearchAlgorithm = HnswAlgorithmConfiguration(name="my-hnsw-vector-config-1", parameters=hnswParameters) vectorSearchProfile = VectorSearchProfile(name="my-vector-profile", algorithm_configuration_name="my-hnsw-vector-config-1")
内容的提问来源于stack exchange,提问作者Manu Chadha

