Fonte de dados - Elasticsearch (visualização)

As opções configuráveis para o Elasticsearch ao usar o Azure OpenAI On Your Data. Esta fonte de dados é suportada na versão 2024-02-15-previewda API.

Nome Type Obrigatório Description
parameters Parâmetros True Os parâmetros a serem usados ao configurar o Elasticsearch.
type string True Deve ser elasticsearch.

Parâmetros

Nome Type Obrigatório Description
endpoint string True O caminho absoluto do ponto de extremidade para o recurso Elasticsearch usar.
index_name string True O nome do índice a ser usado no Elasticsearch referenciado.
authentication Um dos KeyAndKeyIdAuthenticationOptions, EncodedApiKeyAuthenticationOptions True O método de autenticação a ser usado ao acessar a fonte de dados definida.
embedding_dependency Um de DeploymentNameVectorizationSource, EndpointVectorizationSource, ModelIdVectorizationSource False A dependência de incorporação para pesquisa vetorial. Obrigatório quando query_type é vector.
fields_mapping CamposMapeamentoOpções False Comportamento de mapeamento de campo personalizado para usar ao interagir com o índice de pesquisa.
in_scope boolean False Se as consultas devem ser restritas ao uso de dados indexados. A predefinição é True.
query_type Tipo de consulta False O tipo de consulta a ser usado com o Elasticsearch. O padrão é simple
role_information string False Dê instruções ao modelo sobre como ele deve se comportar e qualquer contexto que ele deve referenciar ao gerar uma resposta. Pode descrever a personalidade do assistente e dizer-lhe como formatar as respostas.
strictness integer False O rigor configurado da filtragem de relevância da pesquisa. Quanto maior o rigor, maior a precisão, mas menor a recordação da resposta. A predefinição é 3.
top_n_documents integer False O número superior configurado de documentos a serem apresentados para a consulta configurada. A predefinição é 5.

Opções de autenticação de chave e ID de chave

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

Nome Type Obrigatório Description
key string True A chave Elasticsearch a ser usada para autenticação.
key_id string True O ID da chave do Elasticsearch a ser usado para autenticação.
type string True Deve ser key_and_key_id.

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

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

Nome Type Obrigatório Description
encoded_api_key string True A chave de API codificada do Elasticsearch a ser usada para autenticação.
type string True Deve ser encoded_api_key.

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

Os detalhes da fonte de vetorização, usada pelo Azure OpenAI On Your Data ao aplicar a pesquisa vetorial. Essa fonte de vetorização é baseada em um nome de implantação de modelo de incorporação interna no mesmo recurso do Azure OpenAI. Essa fonte de vetorização permite que você use a pesquisa vetorial sem a chave de api do Azure OpenAI e sem o acesso à rede pública do Azure OpenAI.

Nome Type Obrigatório Description
deployment_name string True O nome da implantação do modelo de incorporação no mesmo recurso do Azure OpenAI.
type string True Deve ser deployment_name.

Origem da vetorização do ponto final

Os detalhes da fonte de vetorização, usada pelo Azure OpenAI On Your Data ao aplicar a pesquisa vetorial. Essa fonte de vetorização é baseada no ponto de extremidade da API de incorporação do Azure OpenAI.

Nome Type Obrigatório Description
endpoint string True Especifica a URL do ponto de extremidade do recurso a partir da qual as incorporações devem ser recuperadas. Deve ser no formato de 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 True Especifica as opções de autenticação a serem usadas ao recuperar incorporações do ponto de extremidade especificado.
type string True Deve ser endpoint.

Origem de vetorização do ID do modelo

Os detalhes da fonte de vetorização, usada pelo Azure OpenAI On Your Data ao aplicar a pesquisa vetorial. Essa fonte de vetorização é baseada no ID do modelo do Elasticsearch.

Nome Type Obrigatório Description
model_id string True Especifica o ID do modelo a ser usado para vetorização. Esse ID de modelo deve ser definido no Elasticsearch.
type string True Deve ser model_id.

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

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

Nome Type Obrigatório Description
key string True A chave de API a ser usada para autenticação.
type string True 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 Type Obrigatório Description
content_fields string[] False Os nomes dos campos de índice que devem ser tratados como conteúdo.
vector_fields string[] False Os nomes dos campos que representam dados vetoriais.
content_fields_separator string False O padrão separador que os campos de conteúdo devem usar. A predefinição é \n.
filepath_field string False O nome do campo de índice a ser usado como um caminho de arquivo.
title_field string False O nome do campo de índice a ser usado como título.
url_field string False O nome do campo de índice a ser usado 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 do Enum Description
simple Representa o analisador de consulta simples padrão.
vector Representa a pesquisa vetorial sobre dados computados.

Exemplos

Pré-requisitos:

  • Configure as atribuições de função do usuário para o recurso do Azure OpenAI. Função requerida: Cognitive Services OpenAI User.
  • Instale o Az CLI e execute az logino .
  • 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 openaipip mais recentes, 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")
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))