我正在尝试使用 Azure 认知搜索进行矢量搜索。尝试使用 python sdk,我收到一条错误,提示 ImportError: Cannot import name 'Vector' from 'azure.search.documents.models'.
我确实使用 pip 安装了 azure-search-documents,它是最新版本。关于我在这里缺少什么的任何指示。
使用 github 示例在 Azure 认知搜索中创建矢量存储
我想补充一下黑客的答案。较新的预览版本也可以使用。因此,以下命令也应该可以解决您的问题:
pip install azure-search-documents==11.4.0b6
矢量搜索的 Azure 认知搜索仅适用于私人预览。如果你想使用它,你需要安装特定的版本。 azure-搜索文档==11.4.0a20230509004
如果您已经选择了其他版本,但它不起作用。尝试更改 kernel,在尝试了 azure-search-documents 的所有版本后,它对我有用,但仍然不起作用。
上面提供的链接有答案。您面临的问题是因为最新版本
azure-search-documents==11.4.0
不再有 Vector 类,而是我们必须使用上面共享链接中提供的 VectorizedQuery。
早期的预览版本有这个 Vector 类。 例如:
azure-search-documents==11.4.0b8
因此,您必须更新到最新版本,这总是更好,并更新代码以使用 VectorizedQuery 而不是 Vector。 search_client 还采用新参数 vector_queries 而不是之前的 vectors
from azure.search.documents.models import VectorizedQuery
...
vector_query = VectorizedQuery(vector=get_embeddings(query), k_nearest_neighbors=3, fields="descriptionVector")
results = search_client.search(
vector_queries=[vector_query],
select=["hotelId", "hotelName"],
)