Fonte de dados – Elasticsearch (versão prévia)

As opções configuráveis do Elasticsearch ao usar o Azure OpenAI em seus dados. Essa fonte de dados tem suporte na versão da API 2024-02-15-preview.

Nome Digitar Obrigatória Descrição
parameters Parâmetros Verdadeiro Os parâmetros a serem usados ao configurar o Elasticsearch.
type string Verdadeiro Deve ser elasticsearch.

Parâmetros

Nome Digitar Obrigatória Descrição
endpoint string Verdadeiro O caminho absoluto do ponto de extremidade a ser usado pelo recurso Elasticsearch.
index_name string Verdadeiro O nome do índice a ser usado no Elasticsearch referenciado.
authentication Um dos KeyAndKeyIdAuthenticationOptions, EncodedApiKeyAuthenticationOptions Verdadeiro O método de autenticação a ser usado ao acessar a fonte de dados definida.
embedding_dependency Um dos DeploymentNameVectorizationSource, EndpointVectorizationSource, ModelIdVectorizationSource Falso A dependência de inserção para a busca em vetores. Obrigatório quando query_type é vector.
fields_mapping FieldsMappingOptions Falso Comportamento personalizado de mapeamento de campo a ser usado ao interagir com o índice de pesquisa.
in_scope boolean Falso Se as consultas devem ser restritas ao uso de dados indexados. O padrão é True.
query_type QueryType Falso O tipo de consulta a ser usado com o Elasticsearch. O padrão é simple
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 chave e ID de chave

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 Elasticsearch a ser usada para autenticação.
key_id string Verdadeiro O ID da chave do Elasticsearch a ser usado para autenticação.
type string Verdadeiro Deve ser key_and_key_id.

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

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

Nome Digitar Obrigatória Descrição
encoded_api_key string Verdadeiro A chave de API codificada do Elasticsearch a ser usada para autenticação.
type string Verdadeiro Deve ser encoded_api_key.

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.

Fonte de vetorização do ID do modelo

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 é baseada no ID do modelo Elasticsearch.

Nome Digitar Obrigatória Descrição
model_id string Verdadeiro Especifica o ID do modelo a ser usado para vetorização. Esse ID de modelo deve ser definido no Elasticsearch.
type string Verdadeiro Deve ser model_id.

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

Configurações opcionais para controlar como os campos são processados ao usar um recurso Elasticsearch configurado.

Nome Digitar Obrigatória Descrição
content_fields string[] Falso Os nomes dos campos de índice que devem ser tratados como conteúdo.
vector_fields string[] Falso 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.

Tipo de consulta

O tipo de consulta de recuperação do Elasticsearch que deve ser executada ao usá-la com o Azure OpenAI On Your Data.

Valor de enumeração Descrição
simple Representa o analisador de consulta simples e padrão.
vector Representa a busca em vetores em relação aos dados computados.

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, SearchEndpoint, IndexName, Key, KeyId.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint='https://example.eastus.azurecontainer.io'
export IndexName=testindex
export Key='***'
export KeyId='***'

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")
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://cognitiveservices.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))