import Azure HnswVectorSearchAlgorithmConfiguration出现错误:无法导入名称“HnswVectorSearchAlgorithmConfiguration”

q9yhzks0  于 2023-10-22  发布在  Go
关注(0)|答案(3)|浏览(184)

以下是我跟随的参考文档:https://esteininger.medium.com/building-a-vector-search-engine-using-hnsw-and-cosine-similarity-753fb5268839 & https://github.com/Azure/cognitive-search-vector-pr/blob/main/demo-python/code/azure-search-vector-python-sample.ipynb

from azure.search.documents.models import Vector
from azure.search.documents.indexes.models import (  
    SearchIndex,  
    SearchField,  
    SearchFieldDataType,  
    SimpleField,  
    SearchableField,  
    SearchIndex,  
    SemanticConfiguration,  
    PrioritizedFields,  
    SemanticField,  
    SearchField,  
    SemanticSettings,  
    VectorSearch, 
    HnswVectorSearchAlgorithmConfiguration 
)

enter image description here
首先,我遇到了导入错误,这是关于导入Vector的。我在stackoverflow上看到了它的解决方案,方法是将azure.search.documents更新到版本==11.4.0b6;而HnswVectorSearchAlgorithmConfiguration将alwasy错误,无论我使用哪个版本。我已经尝试了azure.search.文档11.4.0b6和11.4.0b4
如果进口错误不解决,下面的部分也会出错。

vector_search = VectorSearch(

    algorithm_configurations=[

        HnswVectorSearchAlgorithmConfiguration(

            name="my-vector-config",

            kind="hnsw",

            parameters={

                "m": 4,

                "efConstruction": 400,
                "efSearch": 500,
                "metric": "cosine"
            }
        )
    ]
)

我也试着用import hnswlib绕一绕,但没有用... enter image description here
如果有人解决了这个问题,请让我知道。谢谢你,谢谢!

uttx8gqw

uttx8gqw1#

使用Azure Cognitive Search的Vector功能,您不必单独安装hnswlib。
你能确保你使用的是最新的azure-search-documents pip软件包吗?
试试pip install azure-search-documents --pre --upgrade
包含Vector搜索功能的最新Python SDK预发布版本可以在这里找到:https://pypi.org/project/azure-search-documents/11.4.0b8/

a9wyjsp7

a9wyjsp72#

继续Farzzy的有用回答:
我也遇到了同样的问题,对我来说,仅仅运行pip install azure-search-documents --pre --upgrade并没有解决它,所以我还运行了以下命令:

pip install azure-search --pre --upgrade
pip install azure-core --pre --upgrade

其中一个修好了。

deikduxw

deikduxw3#

这两个建议的答案对我都不起作用,但我最终在Azure示例中找到了另一个解决方案。希望这对你有帮助…
回购:https://github.com/Azure-Samples/azure-search-comparison-tool
我从 azure.search.documents.indexes.models 导入了Hnsw参数VectorSearchConfiguration,而不是Hnsw VectorSearchConfiguration

from azure.search.documents.indexes.models import (
    HnswParameters,
    PrioritizedFields,
    SearchableField,
    SearchField,
    SearchFieldDataType,
    SearchIndex,
    SemanticConfiguration,
    SemanticField,
    SemanticSettings,
    SimpleField,
    VectorSearch,
    VectorSearchAlgorithmConfiguration,
)

然后我将我的矢量搜索配置更改为:

vector_search = VectorSearch(
    algorithm_configurations=[
        VectorSearchAlgorithmConfiguration(
            name="natp-vector-config",
            kind="hnsw",
            hnsw_parameters=HnswParameters(m=4, ef_construction=400, ef_search=500, metric="cosine")
        )
    ]
)

相关问题