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

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

Note

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

Important

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

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

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

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

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

Parameters

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

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

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

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

Системные опции управляемой аутентификации личности

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

Имя. Тип Обязательный Описание
type string True Должно быть system_assigned_managed_identity.

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

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

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

Варианты аутентификации с помощью токенов доступа

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

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

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

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

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

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

Детали источника векторизации, используемого 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.
dimensions integer Неправда Количество размеров, которые должны иметь вложения. Поддерживается только в text-embedding-3 и более поздних моделях. Это поддерживается в версии API 2024-10-21.

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

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

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

Тип запроса

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

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

Примеры

Prerequisites:

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

Установите последние 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")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")

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-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))