Источник данных - Azure Cosmos DB for MongoDB vCore (classic)

Применяется только к:Портал 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 базу знаний.

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

Имя. Тип Обязательный Описание
parameters Параметры True Параметры для использования при конфигурировании Azure Cosmos DB for MongoDB vCore.
type string True Должно быть azure_cosmos_db.

Parameters

Имя. Тип Обязательный Описание
database_name string True Имя базы данных MongoDB vCore для использования с Azure Cosmos DB.
container_name string True Название контейнера ресурсов Azure Cosmos DB.
index_name string True Имя индекса MongoDB vCore для использования с Azure Cosmos DB.
fields_mapping FieldsMappingOptions True Персонализированное поведение при отображении полей при взаимодействии с индексом поиска.
authentication ConnectionStringAuthenticationOptions True Метод аутентификации при доступе к определённому источнику данных.
embedding_dependency Один из DeploymentNameVectorizationSource, EndpointVectorizationSource True Зависимость от вложения векторного поиска.
in_scope boolean Неправда Следует ли ограничивать запросы использованием индексированных данных. По умолчанию .True
role_information string Неправда Дайте модели инструкции о том, как она должна вести себя и какой контекст должна ссылаться при генерации ответа. Вы можете описать характер ассистента и объяснить, как правильно оформлять ответы.
strictness integer Неправда Настроенная строгость фильтрации релевантности поиска. Чем выше строгость, тем выше точность, но меньше запоминания ответа. По умолчанию .3
top_n_documents integer Неправда Настроенное максимальное количество документов для настроенного запроса. По умолчанию .5

Опции аутентификации строк соединения

Опции аутентификации для Azure OpenAI On Your Data при использовании строка подключения.

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

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

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

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

Настройки для управления обработкой полей.

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

Примеры

Prerequisites:

  • Настройте назначение ролей от пользователя к ресурсу Azure OpenAI. Обязательная роль: Cognitive Services OpenAI User.
  • Установите Az CLI и запустите az login.
  • Определим следующие переменные среды: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, ConnectionStringDatabaseContainerIndexEmbeddingDeploymentName.

Note

Следующее, например, только это. Если вы используете строка подключения, храните его в другом месте, например, в Azure Key Vault. Не включайте ключ API непосредственно в код и никогда не публикуйте его.

export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export ConnectionString='<db-connection-string>'
export Database=testdb
export Container=testcontainer
export Index=testindex
export EmbeddingDeploymentName=ada

Установите последние 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")
connection_string = os.environ.get("ConnectionString")
database = os.environ.get("Database")
container = os.environ.get("Container")
index = os.environ.get("Index")
embedding_deployment_name = os.environ.get("EmbeddingDeploymentName")

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_cosmos_db",
                "parameters": {
                    "authentication": {
                        "type": "connection_string",
                        "connection_string": connection_string
                    },
                    "database_name": database,
                    "container_name": container,
                    "index_name": index,
                    "fields_mapping": {
                        "content_fields": [
                            "content"
                        ],
                        "vector_fields": [
                            "contentvector"
                        ]
                    },
                    "embedding_dependency": {
                        "type": "deployment_name",
                        "deployment_name": embedding_deployment_name
                    }
                }
            }
        ],
    }
)

print(completion.model_dump_json(indent=2))