Как создать индекс векторного поиска в поиске Azure AI с помощью версии 11.4.0Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как создать индекс векторного поиска в поиске Azure AI с помощью версии 11.4.0

Сообщение Anonymous »


Я хочу создать индекс поиска Azure AI с векторным полем, используя последнюю версию azure-search-documents v11.4.0.

Вот мой код:

из azure.core.credentials import AzureKeyCredential из azure.search.documents импортировать SearchClient из azure.search.documents.indexes импортировать SearchIndexClient из langchain.embeddings импортировать AzureOpenAIEmbeddings из langchain.text_splitter импортировать TokenTextSplitter из импорта azure.search.documents.indexes.models ( Индекс Поиска, Поле поиска, ТипДанныхПолеПоиска, ПростоеПоле, Поле для поиска, Индекс Поиска, Семантическая конфигурация, СемантическоеПоле, Поле поиска, СемантическийПоиск, ВекторПоиск, Конфигурация векторного алгоритма поиска, HnswAlgorithmConfiguration ) имя_индекса = AZURE_COGNITIVE_SEARCH_INDEX_NAME ключ = AZURE_COGNITIVE_SEARCH_KEY учетные данные = AzureKeyCredential (ключ) защита create_index(): # Определим поля индекса клиент = SearchIndexClient(service_endpoint, credential) поля = [ SimpleField(name="chunk_id", type=SearchFieldDataType.String, key=True, sortable=True, filterable=True, facetable=True), SimpleField(name="file_name", type=SearchFieldDataType.String), SimpleField(name="url_name", type=SearchFieldDataType.String), SimpleField(name="origin", type=SearchFieldDataType.String, sortable=True, filterable=True, facetable=True), SearchableField(name="content", type=SearchFieldDataType.String), SearchField(name="content_vector", type=SearchFieldDataType.Collection(SearchFieldDataType.Single), searchable = True, вектор_search_dimensions = 1536, вектор_search_configuration = "мой-вектор-конфигурация"), ] вектор_поиск = Поиск вектора ( алгоритмы=[ HnswAlgorithmConfiguration( name="мой-вектор-конфигурация", вид="hnsw", параметры={ «м»: 4, "efConstruction":400, "efSearch":500, "метрика":"косинус" } ) ] ) # Создаём поисковый индекс с семантическими настройками индекс = SearchIndex(имя=имя_индекса, поля=поля, вектор_поиск=вектор_поиск) вернуть клиента, индекс search_client, search_index = create_index() результат = search_client.create_or_update_index(search_index) print(f"{result.name} создан") Это дает мне следующую ошибку:

Сообщение: запрос недействителен. Подробности: определение: векторное поле «content_vector» должно иметь установленное свойство «vectorSearchConfiguration». Сведения об исключении: (InvalidField) Для векторного поля «content_vector» должно быть установлено свойство «vectorSearchConfiguration». Параметры: определение Код: ИнвалидФилд Сообщение: векторное поле «content_vector» должно иметь установленное свойство «vectorSearchConfiguration». Параметры: определение Я попытался скопировать точное решение, представленное здесь: https://learn.microsoft.com/en-us/answe ... on-for-a-s. что дает мне ту же ошибку, что и выше.

Я также попробовал этот образец, который является частью официальной документации (ссылка на странице pypi): https://github.com/Azure/azure-sdk-for-python/blob/ main/sdk/search/azure-search-documents/samples/sample_vector_search.py Но здесь я получаю эту ошибку:

Код: InvalidRequestParameter Сообщение: Запрос недействителен. Подробности: определение: Поле «contentVector» использует конфигурацию алгоритма векторного поиска «my-algorithms-config», которая не определена. Сведения об исключении: (UnknownVectorAlgorithmConfiguration) Поле «contentVector» использует конфигурацию алгоритма векторного поиска «my-algorithms-config», которая не определена. Параметры: определение Код: UnknownVectorAlgorithmConfiguration Сообщение: Поле «contentVector» использует конфигурацию алгоритма векторного поиска «my-algorithms-config», которая не определена. Параметры: определение И я также нашел еще один пример блокнотов от Microsoft об AI-Search: https://github.com/Azure/azure-search-v ... re-search- пользовательская-векторизация-sample.ipynb Этот код также дал мне ту же ошибку, что и мой исходный код.

Я пытаюсь заставить это работать уже 2 дня и собираюсь сдаться. В разных местах есть несколько разных документов/примеров, и каждый код выглядит по-разному. Судя по всему, Microsoft постоянно меняет имена функций почти при каждом обновлении пакета, поэтому большинство примеров, вероятно, уже устарели. Я понятия не имею, где найти «последнюю» документацию, которая действительно предоставляет рабочий код, поскольку все протестированные мной примеры у меня не работали. Должно быть, это худшая документация по Python, которую я когда-либо видел в своей жизни. Даже документация Langchain великолепна по сравнению с этим...

РЕДАКТИРОВАТЬ: Я только что проверил исходный код «SearchField». Он принимает следующие аргументы:

def __init__(self, **kwargs): super(SearchField, self).__init__(**kwargs) self.name = kwargs["имя"] self.type = kwargs["тип"] self.key = kwargs.get("ключ", нет) self.hidden = kwargs.get("скрытый", нет) self.searchable = kwargs.get("доступен для поиска", нет) self.filterable = kwargs.get("фильтруемый", нет) self.sortable = kwargs.get("сортируемый", нет) self.facetable = kwargs.get("facetable", нет) self.analyzer_name = kwargs.get("analyzer_name", None) self.search_analyzer_name = kwargs.get("search_analyzer_name", None) self.index_analyzer_name = kwargs.get("index_analyzer_name", None) self.synonym_map_names = kwargs.get("synonym_map_names", Нет) self.fields = kwargs.get("поля", нет) self.vector_search_dimensions = kwargs.get("vector_search_dimensions", нет) self.vector_search_profile_name = kwargs.get("vector_search_profile_name", None) Вы можете видеть, что нет аргумента «vector_search_configuration» или «vectorSearchConfiguration». Я думаю, они по какой-то причине переименовали его в «vector_search_profile_name». Поэтому я предполагаю, что образец в официальной документации правильный, а два других действительно устарели. Но даже в этом случае я все еще получаю сообщение об ошибке, поскольку «my-algorithms-config» не определен.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»