Поделиться через


Источник данных — поиск по искусственному интеллекту Azure

Настраиваемые параметры поиска ИИ Azure при использовании Azure OpenAI в данных. Этот источник данных поддерживается в версии 2024-02-01API.

Имя. Type Обязательно Описание
parameters Параметры Истина Параметры, используемые при настройке службы "Поиск Azure".
type строка Истина Этот параметр должен содержать значение azure_search.

Параметры

Имя (название) Type Обязательно Описание
endpoint строка Истина Абсолютный путь конечной точки для используемого ресурса поиска Azure.
index_name строка Истина Имя индекса, используемого в ресурсе поиска Azure.
authentication Один из ApiKeyAuthenticationOptions, SystemAssignedManagedIdentityAuthenticationOptions, UserAssignedManagedIdentityAuthenticationOptions, onYourDataAccessTokenAuthenticationOptions Истина Метод проверки подлинности, используемый при доступе к определенному источнику данных.
embedding_dependency Один из DeploymentNameVectorizationSource, EndpointVectorizationSource False Зависимость внедрения для поиска векторов. Обязательный параметр, если query_type имеет значение vector, vector_simple_hybridили vector_semantic_hybrid.
fields_mapping FieldsMappingOptions False Настраиваемое поведение сопоставления полей, используемое при взаимодействии с индексом поиска.
filter строка False Фильтр поиска.
in_scope boolean False Следует ли ограничить запросы использованием индексированных данных. По умолчанию — True.
query_type QueryType False Тип запроса, используемый с поиском Azure. Значение по умолчанию: simple.
role_information строка False Дайте модели инструкции о том, как он должен вести себя и какой-либо контекст, на который он должен ссылаться при создании ответа. Вы можете описать личность помощника и рассказать о том, как отформатировать ответы.
semantic_configuration строка False Семантическая конфигурация для запроса. Обязательный при query_type использовании semantic или vector_semantic_hybrid.
strictness integer False Настроенная строгость фильтрации релевантности поиска. Чем выше строгость, тем выше точность, но более низкий отзыв ответа. По умолчанию — 3.
top_n_documents integer False Настроено первое число документов для функции настроенного запроса. По умолчанию — 5.
max_search_queries integer False Максимальное количество перезаписных запросов должно отправляться в поставщик поиска для одного сообщения пользователя. Если это не указано, система решит количество запросов для отправки.
allow_partial_result integer False Если задано значение true, система позволит использовать частичные результаты поиска, и запрос завершается ошибкой, если все запросы завершаются ошибкой. Если запрос не указан или указан как false, запрос завершится ошибкой, если какой-либо поисковый запрос завершается ошибкой.
include_contexts array False Включенные свойства контекста вывода. Если не указано, значение по умолчанию равно citations и intent. Значения могут быть citations,intent, all_retrieved_documents.

Параметры проверки подлинности ключа API

Параметры проверки подлинности Azure OpenAI On Your Data при использовании ключа API.

Имя. Type Обязательно Описание
key строка Истина Ключ API, используемый для проверки подлинности.
type строка Истина Этот параметр должен содержать значение api_key.

Параметры проверки подлинности назначаемого системой управляемого удостоверения

Параметры проверки подлинности Azure OpenAI On Your Data при использовании управляемого удостоверения, назначаемого системой.

Имя. Type Обязательно Описание
type строка Истина Этот параметр должен содержать значение system_assigned_managed_identity.

Параметры проверки подлинности назначаемого пользователем управляемого удостоверения

Параметры проверки подлинности Azure OpenAI On Your Data при использовании управляемого удостоверения, назначаемого пользователем.

Имя. Type Обязательно Описание
managed_identity_resource_id строка Истина Идентификатор ресурса управляемого удостоверения, назначаемого пользователем, который будет использоваться для проверки подлинности.
type строка Истина Этот параметр должен содержать значение user_assigned_managed_identity.

Параметры проверки подлинности маркера доступа

Параметры проверки подлинности Azure OpenAI On Your Data при использовании маркера доступа.

Имя. Type Обязательно Описание
access_token строка Истина Маркер доступа, используемый для проверки подлинности.
type строка Истина Этот параметр должен содержать значение access_token.

Источник векторизации имен развертывания

Сведения о источнике векторизации, используемом Azure OpenAI On Your Data при применении векторного поиска. Этот источник векторизации основан на имени развертывания модели внутреннего внедрения в том же ресурсе Azure OpenAI. Этот источник векторизации позволяет использовать векторный поиск без ключа API-ключа Azure OpenAI и без доступа к общедоступной сети Azure OpenAI.

Имя. Type Обязательно Описание
deployment_name строка Истина Имя развертывания модели внедрения в одном ресурсе Azure OpenAI.
type строка Истина Этот параметр должен содержать значение deployment_name.
dimensions integer False Количество измерений, которые должны быть внедренными. Поддерживается только в text-embedding-3 и более поздних моделях.

Источник векторизации конечных точек

Сведения о источнике векторизации, используемом Azure OpenAI On Your Data при применении векторного поиска. Этот источник векторизации основан на конечной точке API внедрения Azure OpenAI.

Имя. Type Обязательно Описание
endpoint строка Истина Указывает URL-адрес конечной точки ресурса, из которого должны быть получены внедренные модули. Он должен быть в формате https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Параметр запроса версии API не разрешен.
authentication ApiKeyAuthenticationOptions Истина Указывает параметры проверки подлинности, используемые при получении внедрения из указанной конечной точки.
type строка Истина Этот параметр должен содержать значение endpoint.
dimensions integer False Количество измерений, которые должны быть внедренными. Поддерживается только в text-embedding-3 и более поздних моделях.

Параметры сопоставления полей

Необязательные параметры для управления обработкой полей при использовании настроенного ресурса поиска Azure.

Имя. Type Обязательно Описание
content_fields string[] False Имена полей индекса, которые следует рассматривать как содержимое.
vector_fields string[] False Имена полей, представляющих векторные данные.
content_fields_separator строка False Шаблон разделителя, который должны использовать поля содержимого. По умолчанию — \n.
filepath_field строка False Имя поля индекса, используемого в качестве файлового пути.
title_field строка False Имя поля индекса, используемого в качестве заголовка.
url_field строка False Имя поля индекса, используемого в качестве URL-адреса.

Тип запроса

Тип запроса поиска Azure, который должен выполняться при его использовании в качестве Azure OpenAI в данных.

Значение перечисления Description
simple Представляет средство синтаксического анализа простых запросов по умолчанию.
semantic Представляет средство синтаксического анализа семантического запроса для расширенного семантического моделирования.
vector Представляет векторный поиск по вычисляемых данных.
vector_simple_hybrid Представляет сочетание простой стратегии запроса с векторными данными.
vector_semantic_hybrid Представляет сочетание семантического поиска и запросов к векторным данным.

Примеры

Необходимые условия:

  • Настройте назначения ролей из назначаемого системой Azure OpenAI управляемого удостоверения в службу поиска Azure. Обязательные роли: Search Index Data Reader, Search Service Contributor.
  • Настройте назначения ролей от пользователя к ресурсу Azure OpenAI. Требуемая роль: Cognitive Services OpenAI User.
  • Установите Az CLI и запустите az login.
  • Определите следующие переменные среды: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, SearchIndexSearchEndpoint.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index

Установите последние пакеты openaipip , azure-identity.

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")

token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-01",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "azure_search",
                "parameters": {
                    "endpoint": search_endpoint,
                    "index_name": search_index,
                    "authentication": {
                        "type": "system_assigned_managed_identity"
                    }
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))