При импорте Azure HnswVectorSearchAlgorithmConfiguration возникает ошибка: невозможно импортировать имя «HnswVectorSearchAlgorithmConfiguration».

Вот справочный документ, которому я следую: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 
)

введите сюда описание изображения

Сначала я столкнулся с ошибкой импорта, связанной с импортом Vector. Я видел это решение в stackoverflow, обновив azure.search.documents до версии ==11.4.0b6; Хотя HnswVectorSearchAlgorithmConfiguration всегда будет ошибкой, независимо от того, какую версию я использовал. Я пробовал azure.search.documents 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, но это не сработало... введите сюда описание изображения

Если кто-то справился с этой проблемой, пожалуйста, дайте мне знать. Спасибо!

3 ответа

Используя функцию Vector Когнитивного поиска Azure, вам не нужно устанавливать hnswlib отдельно.

Можете ли вы убедиться, что используете последнюю версию пакета pip azure-search-documents?

Пытатьсяpip install azure-search-documents --pre --upgrade.

Последнюю предварительную версию Python SDK, включающую возможности векторного поиска, можно найти здесь: https://pypi.org/project/azure-search-documents/11.4.0b8/

Продолжаем полезный ответ Фарззи:

У меня была такая же проблема, я просто бежалpip install azure-search-documents --pre --upgradeэто не исправило, поэтому я также выполнил следующие команды:

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

И один из них это исправил.

Ни один из предложенных ответов мне не помог, но в итоге я нашел другое решение в Azure Samples. Надеюсь это поможет...

репозиторий: https://github.com/Azure-Samples/azure-search-comparison-tool .

Я импортировал HnswParameters и VectorSearchAlgorithmConfiguration из azure.search.documents.indexes.models вместо HnswVectorSearchAlgorithmConfiguration:

      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")
        )
    ]
)
Другие вопросы по тегам