Partager via


Source de données : Elasticsearch (préversion)

Options configurables d’Elasticsearch lors de l’utilisation d’Azure OpenAI sur vos données. Cette source de données est prise en charge dans la version 2024-02-15-previewde l’API.

Nom Type Requise Description
parameters Paramètres True Paramètres à utiliser lors de la configuration d’Elasticsearch.
type string True Doit être elasticsearch.

Paramètres

Nom Type Requise Description
endpoint string True Chemin d’accès du point de terminaison absolu de la ressource Elasticsearch à utiliser.
index_name string True Nom de l’index à utiliser dans l’Elasticsearch référencée.
authentication L’un parmi KeyAndKeyIdAuthenticationOptions, EncodedApiKeyAuthenticationOptions True Méthode d’authentification à utiliser lors de l’accès à la source de données définie.
embedding_dependency L’un parmi DeploymentNameVectorizationSource, EndpointVectorizationSource, ModelIdVectorizationSource False Dépendance d’incorporation pour la recherche vectorielle. Obligatoire quand query_type est vector.
fields_mapping FieldsMappingOptions False Comportement de mappage de champs personnalisé à utiliser lors de l’interaction avec l’index de recherche.
in_scope booléen False Indique si les requêtes doivent être limitées à l’utilisation des données indexées. La valeur par défaut est True.
query_type QueryType False Type de requête à utiliser avec Elasticsearch. La valeur par défaut est simple
role_information string False Fournissez au modèle des instructions sur son comportement et sur tout contexte qu’il doit référencer en générant une réponse. Vous pouvez décrire la personnalité de l’assistant et lui indiquer comment mettre en forme les réponses.
strictness entier False Rigueur configurée du filtrage de pertinence de la recherche. Plus la rigueur est élevée, plus la précision est élevée mais le rappel de la réponse est plus faible. La valeur par défaut est 3.
top_n_documents entier False Nombre maximal configuré de documents à proposer pour la requête configurée. La valeur par défaut est 5.

Options d’authentification de clé et d’ID de clé

Options d’authentification pour Azure OpenAI sur vos données lors de l’utilisation d’une clé API.

Nom Type Requise Description
key string True Clé Elasticsearch à utiliser pour l’authentification.
key_id string True ID de clé Elasticsearch à utiliser pour l’authentification.
type string True Doit être key_and_key_id.

Options d’authentification de clé API encodées

Les options d’authentification d’Azure OpenAI sur vos données lors de l’utilisation d’une clé API encodée Elasticsearch.

Nom Type Requise Description
encoded_api_key string True Clé API encodée Elasticsearch à utiliser pour l’authentification.
type string True Doit être encoded_api_key.

Source de vectorisation du nom de déploiement

Détails de la source de vectorisation, utilisée par Azure OpenAI sur vos données lors de l’application de la recherche vectorielle. Cette source de vectorisation est basée sur un nom de modèle de déploiement d’incorporations interne dans la même ressource Azure OpenAI. Cela vous permet d’utiliser la recherche vectorielle sans clé API Azure OpenAI et sans accès au réseau public Azure OpenAI.

Nom Type Requise Description
deployment_name string True Nom de modèle de déploiement d’incorporation dans la même ressource Azure OpenAI.
type string True Doit être deployment_name.

Source de vectorisation de point de terminaison

Détails de la source de vectorisation, utilisée par Azure OpenAI sur vos données lors de l’application de la recherche vectorielle. Cette source de vectorisation est basée sur le point de terminaison de l’API d’incorporation Azure OpenAI.

Nom Type Requise Description
endpoint string True Spécifie l’URL du point de terminaison de la ressource à partir de laquelle les incorporations doivent être récupérées. Son format doit être https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Le paramètre de requête api-version n’est pas autorisé.
authentication ApiKeyAuthenticationOptions True Spécifie les options d’authentification à utiliser lors de la récupération d’incorporations depuis le point de terminaison spécifié.
type string True Doit être endpoint.

Source de vectorisation de l’ID de modèle

Détails de la source de vectorisation, utilisée par Azure OpenAI sur vos données lors de l’application de la recherche vectorielle. Cette source de vectorisation est basée sur l’ID de modèle Elasticsearch.

Nom Type Requise Description
model_id string True Spécifie l’ID de modèle à utiliser pour la vectorisation. Cet ID de modèle doit être défini dans Elasticsearch.
type string True Doit être model_id.

Options d’authentification par clé API

Options d’authentification pour Azure OpenAI sur vos données lors de l’utilisation d’une clé API.

Nom Type Requise Description
key string True Clé API à utiliser pour l’authentification.
type string True Doit être api_key.

Options de mappage de champs

Paramètres facultatifs pour contrôler le traitement des champs lors de l’utilisation d’une ressource Elasticsearch configurée.

Nom Type Requise Description
content_fields string[] False Nom des champs d’index qui doivent être traités comme du contenu.
vector_fields string[] False Noms de champs qui représentent des données vectorielles.
content_fields_separator string False Modèle de séparation que les champs de contenu doivent utiliser. La valeur par défaut est \n.
filepath_field string False Nom du champ d’index à utiliser comme chemin d’accès au fichier.
title_field string False Nom du champ d’index à utiliser comme titre.
url_field string False Nom du champ d’index à utiliser comme URL.

Type de requête

Type de requête de récupération Elasticsearch qui doit être exécuté lors de son utilisation avec Azure OpenAI sur vos données.

Valeur Enum Description
simple Représente l’analyseur de requête par défaut simple.
vector Représente la recherche vectorielle sur les données calculées.

Exemples

Configuration requise :

  • Configurez les attributions de rôles de l’utilisateur vers la ressource Azure OpenAI. Rôle nécessaire : Cognitive Services OpenAI User.
  • Installez Az CLI et exécutez az login.
  • Définissez les variables d’environnement suivantes : 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='***'

Installez le dernier package 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")
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))