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


Источник данных — Elasticsearch (предварительная версия)

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

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

Параметры

Имя (название) Type Обязательно Описание
endpoint строка Истина Абсолютный путь конечной точки для используемого ресурса Elasticsearch.
index_name строка Истина Имя индекса, используемого в упоминаемом Elasticsearch.
authentication Один из KeyAndKeyIdAuthenticationOptions, EncodedApiKeyAuthenticationOptions Истина Метод проверки подлинности, используемый при доступе к определенному источнику данных.
embedding_dependency Один из DeploymentNameVectorizationSource, EndpointVectorizationSource, ModelIdVectorizationSource False Зависимость внедрения для поиска векторов. Обязательный, если query_type имеет значение vector.
fields_mapping FieldsMappingOptions False Настраиваемое поведение сопоставления полей, используемое при взаимодействии с индексом поиска.
in_scope boolean False Следует ли ограничить запросы использованием индексированных данных. По умолчанию — True.
query_type QueryType False Тип запроса, используемый с Elasticsearch. Значение по умолчанию: simple.
role_information строка False Дайте модели инструкции о том, как он должен вести себя и какой-либо контекст, на который он должен ссылаться при создании ответа. Вы можете описать личность помощника и рассказать о том, как отформатировать ответы.
strictness integer False Настроенная строгость фильтрации релевантности поиска. Чем выше строгость, тем выше точность, но более низкий отзыв ответа. По умолчанию — 3.
top_n_documents integer False Настроено первое число документов для функции настроенного запроса. По умолчанию — 5.

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

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

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

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

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

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

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

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

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

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

Сведения о источнике векторизации, используемом 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.

Источник векторизации идентификатора модели

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

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

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

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

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

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

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

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

Тип запроса

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

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

Примеры

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

  • Настройте назначения ролей от пользователя к ресурсу Azure OpenAI. Требуемая роль: Cognitive Services OpenAI User.
  • Установите Az CLI и запустите az login.
  • Определите следующие переменные среды: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, SearchEndpoint, IndexName, Key. KeyId
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint='https://example.eastus.azurecontainer.io'
export IndexName=testindex
export Key='***'
export KeyId='***'

Установите последние пакеты 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")
index_name = os.environ.get("IndexName")
search_endpoint = os.environ.get("SearchEndpoint")
key = os.environ.get("Key")
key_id = os.environ.get("KeyId")

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-15-preview",
)

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

print(completion.model_dump_json(indent=2))