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 elasticsearch lauten. |
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_id lauten. |
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_key lauten. |
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_name lauten. |
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 endpoint lauten. |
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_id lauten. |
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_key lauten. |
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))