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


Источник данных — Azure Cosmos DB для виртуального ядра MongoDB

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

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

Параметры

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

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

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

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

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

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

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

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

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

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

Параметры для управления обработкой полей.

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

Примеры

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

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

Примечание.

Ниже приведены только примеры. Если вы используете строка подключения, сохраните его в другом месте, например в 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

Установите последние пакеты 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")
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://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_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))