Datenquelle – Elasticsearch (Vorschau)

Die konfigurierbaren Optionen für Elasticsearch bei Verwendung von Azure OpenAI on Your Data Diese Datenquelle wird in der API-Version 2024-02-15-preview unterstützt.

Name Type Erforderlich Beschreibung
parameters Parameter True Die Parameter, die beim Konfigurieren von Elasticsearch verwendet werden sollen
type Zeichenfolge True Muss elasticsearchlauten.

Parameter

Name Type Erforderlich Beschreibung
endpoint Zeichenfolge True Der absolute Endpunktpfad für die zu verwendende Elasticsearch-Ressource
index_name Zeichenfolge True Der Name des in der referenzierten Elasticsearch-Ressource zu verwendenden Indexes
authentication Entweder KeyAndKeyIdAuthenticationOptions oder EncodedApiKeyAuthenticationOptions True Die Authentifizierungsmethode, die beim Zugriff auf die definierte Datenquelle verwendet werden soll.
embedding_dependency Entweder DeploymentNameVectorizationSource, EndpointVectorizationSource oder ModelIdVectorizationSource False Die Einbettungsabhängigkeit für die Vektorsuche Erforderlich, wenn query_type gleich vector ist.
fields_mapping FieldsMappingOptions False Angepasstes Feldzuordnungsverhalten, das beim Interagieren mit dem Suchindex verwendet werden soll.
in_scope boolean False Gibt an, ob Abfragen auf die Verwendung von indizierten Daten beschränkt werden sollen. Der Standardwert ist True.
query_type QueryType False Der mit Elasticsearch zu verwendende Abfragetyp Der Standardwert ist simple
role_information Zeichenfolge False Gibt dem Modell Anweisungen dazu, wie es sich verhalten soll und auf welchen Kontext es beim Generieren einer Antwort verweisen soll. Sie können die Persönlichkeit des Assistenten beschreiben und ihm mitteilen, wie Antworten formatiert werden sollen.
strictness integer False Die konfigurierte Strenge der Suchrelevanzfilterung. Je höher die Strenge, desto höher der Genauigkeit, aber desto der niedrigerer Antwortabruf. Der Standardwert ist 3.
top_n_documents integer False Die konfigurierte maximale Anzahl von Dokumenten, die für die konfigurierte Abfrage bereitgestellt werden sollen. Der Standardwert ist 5.

Schlüssel- und Schlüssel-ID-Authentifizierungsoptionen

Die Authentifizierungsoptionen für Azure OpenAI On Your Data bei Verwendung eines API-Schlüssels.

Name Type Erforderlich Beschreibung
key Zeichenfolge True Der für die Authentifizierung zu verwendende Elasticsearch-Schlüssel
key_id Zeichenfolge True Die für die Authentifizierung zu verwendende Elasticsearch-Schlüssel-ID
type Zeichenfolge True Muss key_and_key_idlauten.

Codierte API-Schlüsselauthentifizierungsoptionen

Die Authentifizierungsoptionen für Azure OpenAI On Your Data bei Verwendung eines elasticsearch-codierten API-Schlüssels

Name Type Erforderlich Beschreibung
encoded_api_key Zeichenfolge True Der für die Authentifizierung zu verwendende elasticsearch-codierte API-Schlüssel
type Zeichenfolge True Muss encoded_api_keylauten.

Quelle für die Bereitstellungsnamenvektorisierung

Die Details der Vektorisierungsquelle, die von Azure OpenAI On Your Data beim Anwenden der Vektorsuche verwendet wird. Diese Vektorisierungsquelle basiert auf einem internen Namen der Einbettung der Modellimplementierung in derselben Azure OpenAI-Ressource. Mit dieser Vektorisierungsquelle können Sie die Vektorsuche ohne Azure OpenAI-API-Schlüssel und ohne öffentlichen Azure OpenAI-Netzwerkzugriff verwenden.

Name Type Erforderlich Beschreibung
deployment_name Zeichenfolge True Der Name der Einbettung der Modellimplementierung innerhalb derselben Azure OpenAI-Ressource.
type Zeichenfolge True Muss deployment_namelauten.

Endpunktvektorisierungsquelle

Die Details der Vektorisierungsquelle, die von Azure OpenAI On Your Data beim Anwenden der Vektorsuche verwendet wird. Diese Vektorisierungsquelle basiert auf dem Azure OpenAI-API-Endpunkt zur Einbettung.

Name Type Erforderlich Beschreibung
endpoint Zeichenfolge True Gibt die Ressourcenendpunkt-URL an, aus der Einbettungen abgerufen werden sollen. Sie sollte im Format https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings sein. Der Abfrageparameter der API-Version ist nicht zulässig.
authentication ApiKeyAuthenticationOptions True Gibt die Authentifizierungsoptionen an, die beim Abrufen von Einbettungen vom angegebenen Endpunkt verwendet werden sollen.
type Zeichenfolge True Muss endpointlauten.

Modell-ID-Vektorisierungsquelle

Die Details der Vektorisierungsquelle, die von Azure OpenAI On Your Data beim Anwenden der Vektorsuche verwendet wird. Diese Vektorisierungsquelle basiert auf der Elasticsearch-Modell-ID.

Name Type Erforderlich Beschreibung
model_id Zeichenfolge True Gibt die Modell-ID an, die für die Vektorisierung verwendet werden soll. Diese Modell-ID muss in Elasticsearch definiert werden.
type Zeichenfolge True Muss model_idlauten.

API-Schlüsselauthentifizierungsoptionen

Die Authentifizierungsoptionen für Azure OpenAI On Your Data bei Verwendung eines API-Schlüssels.

Name Type Erforderlich Beschreibung
key Zeichenfolge True Der für die Authentifizierung zu verwendende API-Schlüssel.
type Zeichenfolge True Muss api_keylauten.

Feldzuordnungsoptionen

Optionale Einstellungen zum Steuern der Verarbeitung von Feldern bei Verwendung einer konfigurierten Elasticsearch-Ressource.

Name Type Erforderlich Beschreibung
content_fields string[] False Die Namen von Indexfeldern, die als Inhalt behandelt werden sollen.
vector_fields string[] False Die Namen von Feldern, die Vektordaten darstellen.
content_fields_separator Zeichenfolge False Das Trennmuster, das Inhaltsfelder verwenden sollen. Der Standardwert ist \n.
filepath_field Zeichenfolge False Der Name des Indexfelds, das als Dateipfad verwendet werden soll.
title_field Zeichenfolge False Der Name des Indexfelds, das als Titel verwendet werden soll
url_field Zeichenfolge False Der Name des Indexfelds, das als URL verwendet werden soll

Abfragetyp

Der Typ der Elasticsearch-Abrufabfrage, die bei Verwendung in Verbindung mit Azure OpenAI On Your Data ausgeführt werden soll

Enumerationswert Beschreibung
simple Stellt den standardmäßigen einfachen Abfrageparser dar.
vector Stellt die Vektorsuche über berechnete Daten dar.

Beispiele

Voraussetzungen:

  • Konfigurieren Sie die Rollenzuweisungen vom Benutzer zur Azure OpenAI-Ressource. Erforderliche Rolle: Cognitive Services OpenAI User.
  • Installieren Sie Az CLI und führen Sie az login aus.
  • Definieren Sie die folgenden Umgebungsvariablen: 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='***'

Installieren Sie die neuesten pip-Pakete 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))