Freigeben über


Datenquelle – Elasticsearch (Vorschau)

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

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

Parameter

Name Typ Erforderlich Beschreibung
endpoint Zeichenfolge Richtig Der absolute Endpunktpfad für die zu verwendende Elasticsearch-Ressource
index_name Zeichenfolge Richtig Der Name des in der referenzierten Elasticsearch-Ressource zu verwendenden Indexes
authentication Entweder KeyAndKeyIdAuthenticationOptions oder EncodedApiKeyAuthenticationOptions Richtig Die Authentifizierungsmethode, die beim Zugriff auf die definierte Datenquelle verwendet werden soll.
embedding_dependency Entweder DeploymentNameVectorizationSource, EndpointVectorizationSource oder ModelIdVectorizationSource Falsch Die Einbettungsabhängigkeit für die Vektorsuche Erforderlich, wenn query_type gleich vector ist.
fields_mapping FieldsMappingOptions Falsch Angepasstes Feldzuordnungsverhalten, das beim Interagieren mit dem Suchindex verwendet werden soll.
in_scope Boolescher Wert Falsch Gibt an, ob Abfragen auf die Verwendung von indizierten Daten beschränkt werden sollen. Der Standardwert ist True.
query_type QueryType- Falsch Der mit Elasticsearch zu verwendende Abfragetyp Der Standardwert ist simple
role_information Zeichenfolge Falsch 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 Falsch 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 Falsch Die konfigurierte maximale Anzahl von Dokumenten, die für die konfigurierte Abfrage bereitgestellt werden sollen. Der Standardwert ist 5.

Authentifizierungsoptionen

Azure OpenAI On Your Data unterstützt mehrere Authentifizierungstypen:

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

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

Name Typ Erforderlich Beschreibung
key Zeichenfolge Richtig Der für die Authentifizierung zu verwendende Elasticsearch-Schlüssel
key_id Zeichenfolge Richtig Die für die Authentifizierung zu verwendende Elasticsearch-Schlüssel-ID
type Zeichenfolge Richtig 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 Typ Erforderlich Beschreibung
encoded_api_key Zeichenfolge Richtig Der für die Authentifizierung zu verwendende elasticsearch-codierte API-Schlüssel
type Zeichenfolge Richtig 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 Typ Erforderlich Beschreibung
deployment_name Zeichenfolge Richtig Der Name der Einbettung der Modellimplementierung innerhalb derselben Azure OpenAI-Ressource.
type Zeichenfolge Richtig 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 Typ Erforderlich Beschreibung
endpoint Zeichenfolge Richtig 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 Richtig Gibt die Authentifizierungsoptionen an, die beim Abrufen von Einbettungen vom angegebenen Endpunkt verwendet werden sollen.
type Zeichenfolge Richtig Muss endpointlauten.

API-Schlüsselauthentifizierungsoptionen

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

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

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 Typ Erforderlich Beschreibung
model_id Zeichenfolge Richtig Gibt die Modell-ID an, die für die Vektorisierung verwendet werden soll. Diese Modell-ID muss in Elasticsearch definiert werden.
type Zeichenfolge Richtig Muss model_idlauten.

Feldzuordnungsoptionen

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

Name Typ Erforderlich Beschreibung
content_fields string[] Falsch Die Namen von Indexfeldern, die als Inhalt behandelt werden sollen.
vector_fields string[] Falsch Die Namen von Feldern, die Vektordaten darstellen.
content_fields_separator Zeichenfolge Falsch Das Trennmuster, das Inhaltsfelder verwenden sollen. Der Standardwert ist \n.
filepath_field Zeichenfolge Falsch Der Name des Indexfelds, das als Dateipfad verwendet werden soll.
title_field Zeichenfolge Falsch Der Name des Indexfelds, das als Titel verwendet werden soll
url_field Zeichenfolge Falsch 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))