Fonte de dados - vCore do Azure Cosmos DB for MongoDB

As opções configuráveis do Azure Cosmos DB for MongoDB vCore ao usar o Azure OpenAI On You Data. Essa fonte de dados tem suporte na versão 2024-02-01 da API.

Nome Digitar Obrigatória Descrição
parameters Parâmetros Verdadeiro Os parâmetros a serem usados ao configurar o Azure Cosmos DB for MongoDB vCore.
type string Verdadeiro Deve ser azure_cosmos_db.

Parâmetros

Nome Digitar Obrigatória Descrição
database_name string Verdadeiro O nome do banco de dados MongoDB vCore a ser usado com o Azure Cosmos DB.
container_name string Verdadeiro O nome do contêiner de recursos do Azure Cosmos DB.
index_name string Verdadeiro O nome do índice do MongoDB vCore a ser usado com o Azure Cosmos DB.
fields_mapping FieldsMappingOptions Verdadeiro O comportamento personalizado de mapeamento de campo a ser usado ao interagir com o índice de pesquisa.
authentication ConnectionStringAuthenticationOptions Verdadeiro O método de autenticação a ser usado ao acessar a fonte de dados definida.
embedding_dependency Uma opção entre DeploymentNameVectorizationSource, EndpointVectorizationSource Verdadeiro A dependência de inserção para a busca em vetores.
in_scope boolean Falso Se as consultas devem ser restritas ao uso de dados indexados. O padrão é True.
role_information string Falso Forneça ao modelo instruções sobre como ele deve se comportar e qualquer contexto que ele deve referenciar ao gerar uma resposta. Você pode descrever a personalidade do assistente e como formatar as respostas.
strictness Número inteiro Falso A rigorosidade configurada da filtragem de relevância da pesquisa. Quanto maior a rigorosidade, maior a precisão, mas menor a recuperação da resposta. O padrão é 3.
top_n_documents Número inteiro Falso O número máximo de documentos configurados a serem apresentados para a consulta configurada. O padrão é 5.

Opções de autenticação de cadeia de conexão

As opções de autenticação do Azure OpenAI On Your Data ao usar uma cadeia de conexão.

Nome Digitar Obrigatória Descrição
connection_string string Verdadeiro A cadeia de conexão a ser usada para autenticação.
type string Verdadeiro Deve ser connection_string.

Origem da vetorização do nome da implantação

Os detalhes da fonte de vetorização, usada pelo OpenAI do Azure em seus dados ao aplicar a busca em vetores. Essa fonte de vetorização baseia-se em um nome de implantação de modelo de incorporação interno no mesmo recurso do OpenAI do Azure. A fonte de vetorização permite que você use a busca em vetores sem uma chave de API do OpenAI do Azure e sem acesso à rede pública do OpenAI do Azure.

Nome Digitar Obrigatória Descrição
deployment_name string Verdadeiro O nome de implantação do modelo de inserção no mesmo recurso do Azure OpenAI.
type string Verdadeiro Deve ser deployment_name.

A fonte da vetorização do ponto de extremidade

Os detalhes da fonte de vetorização, usada pelo OpenAI do Azure em seus dados ao aplicar a busca em vetores. Essa fonte de vetorização baseia-se no ponto de extremidade da API de incorporação do OpenAI do Azure.

Nome Digitar Obrigatória Descrição
endpoint string Verdadeiro Especifica a URL do ponto de extremidade do recurso da qual as incorporações devem ser recuperadas. O número da porta deve estar no formato https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. O parâmetro de consulta api-version não é permitido.
authentication ApiKeyAuthenticationOptions Verdadeiro Especifica as opções de autenticação a serem usadas ao recuperar incorporações do ponto de extremidade especificado.
type string Verdadeiro Deve ser endpoint.

Opções de autenticação da chave de API

As opções de autenticação do Azure OpenAI On Your Data ao usar uma chave de API.

Nome Digitar Obrigatória Descrição
key string Verdadeiro A chave de API a ser usada para autenticação.
type string Verdadeiro Deve ser api_key.

Opções de mapeamento de campos

As configurações para controlar como os campos são processados.

Nome Digitar Obrigatória Descrição
content_fields string[] Verdadeiro Os nomes dos campos de índice que devem ser tratados como conteúdo.
vector_fields string[] Verdadeiro Os nomes dos campos que representam dados vetoriais.
content_fields_separator string Falso O padrão separador que os campos de conteúdo devem usar. O padrão é \n.
filepath_field string Falso O nome do campo de índice a ser utilizado como um caminho de arquivo.
title_field string Falso O nome do campo de índice a ser utilizado como título.
url_field string Falso O nome do campo de índice a ser utilizado como URL.

Exemplos

Pré-requisitos:

  • Configure as atribuições de função do usuário para o recurso de OpenAI do Azure. Função necessária: Cognitive Services OpenAI User.
  • Instale Az CLI e execute az login.
  • Defina as seguintes variáveis de ambiente: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, ConnectionString, Database, Container, Index e EmbeddingDeploymentName.

Observação

O seguinte é apenas um exemplo. Se você usar uma cadeia de conexão, armazene-a com segurança em outro lugar, como no Azure Key Vault. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.

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

Instale os pacotes pip openai e azure-identity mais recentes.


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