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

Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry. Дополнительные сведения о новом портале.

Note

Ссылки в этой статье могут открывать содержимое в новой документации Microsoft Foundry вместо документации по Foundry (классической) сейчас.

Important

Azure OpenAI On Your Data устарел и приближается к выходу из эксплуатации. Служба будет прекращена 14 октября 2026 г.

Microsoft прекратила адаптацию новых моделей в Azure OpenAI On Your Data. Эта функция поддерживает только следующие модели:

  • GPT-4o (версии 2024-05-13, 2024-08-06 и 2024-11-20)
  • GPT-4o-mini (версия 2024-07-18)

Рекомендуем перенести Azure OpenAI On Your Data в Foundry Agent Service с Foundry IQ чтобы получать контент и получать обоснованные ответы из ваших данных. Чтобы начать, смотрите Connect a Foundry IQ базу знаний.

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

Имя. Тип Обязательный Описание
parameters Параметры True Параметры для настройки Elasticsearch.
type string True Должно быть elasticsearch.

Parameters

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

Параметры аутентификации

Azure OpenAI On Your Data поддерживает несколько типов аутентификации:

Опции аутентификации по ключу и идентификатору ключа

Опции аутентификации для Azure OpenAI на ваших данных при использовании ключа API.

Имя. Тип Обязательный Описание
key string True Ключ Elasticsearch для аутентификации.
key_id string True ID ключа Elasticsearch для аутентификации.
type string True Должно быть key_and_key_id.

Варианты аутентификации ключей API с кодированным кодом

Опции аутентификации для Azure OpenAI на ваших данных при использовании ключа API, закодированного Elasticsearch.

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

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

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

Имя. Тип Обязательный Описание
deployment_name string True Имя развертывания модели встраивания внутри того же ресурса Azure OpenAI.
type string True Должно быть deployment_name.

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

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

Имя. Тип Обязательный Описание
endpoint string True Указывает URL конечной точки ресурса, с которого следует получать эмбеддинги. Он должен быть в формате https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Параметр запроса версии API не разрешен.
authentication ApiKeyAuthenticationOptions True Задаёт опции аутентификации для получения вложений с указанной конечной точки.
type string True Должно быть endpoint.

Опции аутентификации ключей API

Опции аутентификации для Azure OpenAI на ваших данных при использовании ключа API.

Имя. Тип Обязательный Описание
key string True Ключ API для аутентификации.
type string True Должно быть api_key.

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

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

Имя. Тип Обязательный Описание
model_id string True Указывает идентификатор модели для векторизации. Этот идентификатор модели должен быть определен в Elasticsearch.
type string True Должно быть model_id.

Опции отображения полей

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

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

Тип запроса

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

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

Примеры

Prerequisites:

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

Установите последние PIP-пакеты openai, 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://ai.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))