Dela via


Datakälla – Elasticsearch (förhandsversion)

De konfigurerbara alternativen för Elasticsearch när du använder Azure OpenAI på dina data. Den här datakällan stöds från och med API-versionen 2024-02-15-preview.

Namn Typ Krävs Beskrivning
parameters Parametrar Sann De parametrar som ska användas när elasticsearch konfigureras.
type snöre Sann Måste vara elasticsearch.

Parameterar

Namn Typ Krävs Beskrivning
endpoint snöre Sann Den absoluta slutpunktssökvägen som Elasticsearch-resursen ska använda.
index_name snöre Sann Namnet på indexet som ska användas i den refererade Elasticsearch.
authentication En av KeyAndKeyIdAuthenticationOptions, EncodedApiKeyAuthenticationOptions Sann Den autentiseringsmetod som ska användas vid åtkomst till den definierade datakällan.
embedding_dependency En av DeploymentNameVectorizationSource, EndpointVectorizationSource, ModelIdVectorizationSource Falsk Inbäddningsberoendet för vektorsökning. Krävs när query_type är vector.
fields_mapping FieldsMappingOptions Falsk Anpassat fältmappningsbeteende som ska användas när du interagerar med sökindexet.
in_scope booleskt Falsk Om frågor ska begränsas till användning av indexerade data. Standard är True.
query_type QueryType Falsk Frågetypen som ska användas med Elasticsearch. Standardvärdet är simple
role_information snöre Falsk Ge modellinstruktionerna om hur den ska bete sig och vilken kontext den ska referera till när du genererar ett svar. Du kan beskriva assistentens personlighet och berätta hur du formaterar svar.
strictness integer Falsk Den konfigurerade strängheten för sökrelevansfiltreringen. Ju högre strikthet, desto högre precision men lägre återkallande av svaret. Standard är 3.
top_n_documents integer Falsk Det konfigurerade högsta antalet dokument som ska användas för den konfigurerade frågan. Standard är 5.

Autentiseringsalternativ

Azure OpenAI På dina data stöder flera autentiseringstyper:

Autentiseringsalternativ för nyckel- och nyckel-ID

Autentiseringsalternativen för Azure OpenAI På dina data när du använder en API-nyckel.

Namn Typ Krävs Beskrivning
key snöre Sann Elasticsearch-nyckeln som ska användas för autentisering.
key_id snöre Sann Elasticsearch-nyckel-ID:t som ska användas för autentisering.
type snöre Sann Måste vara key_and_key_id.

Autentiseringsalternativ för kodad API-nyckel

Autentiseringsalternativen för Azure OpenAI På dina data när du använder en Elasticsearch-kodad API-nyckel.

Namn Typ Krävs Beskrivning
encoded_api_key snöre Sann Elasticsearch-kodad API-nyckel som ska användas för autentisering.
type snöre Sann Måste vara encoded_api_key.

Distributionsnamnvektoriseringskälla

Information om vektoriseringskällan som används av Azure OpenAI På dina data när du tillämpar vektorsökning. Den här vektoriseringskällan baseras på ett internt distributionsnamn för inbäddningsmodellen i samma Azure OpenAI-resurs. Med den här vektoriseringskällan kan du använda vektorsökning utan Api-nyckel för Azure OpenAI och utan offentlig nätverksåtkomst i Azure OpenAI.

Namn Typ Krävs Beskrivning
deployment_name snöre Sann Distributionsnamnet för inbäddningsmodellen i samma Azure OpenAI-resurs.
type snöre Sann Måste vara deployment_name.

Slutpunktsvektoriseringskälla

Information om vektoriseringskällan som används av Azure OpenAI På dina data när du tillämpar vektorsökning. Den här vektoriseringskällan baseras på Azure OpenAI-inbäddnings-API-slutpunkten.

Namn Typ Krävs Beskrivning
endpoint snöre Sann Anger resursslutpunkts-URL:en som inbäddningar ska hämtas från. Den ska vara i formatet https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Frågeparametern api-version är inte tillåten.
authentication ApiKeyAuthenticationOptions Sann Anger de autentiseringsalternativ som ska användas vid hämtning av inbäddningar från den angivna slutpunkten.
type snöre Sann Måste vara endpoint.

Alternativ för API-nyckelautentisering

Autentiseringsalternativen för Azure OpenAI På dina data när du använder en API-nyckel.

Namn Typ Krävs Beskrivning
key snöre Sann API-nyckeln som ska användas för autentisering.
type snöre Sann Måste vara api_key.

Modell-ID-vektoriseringskälla

Information om vektoriseringskällan som används av Azure OpenAI På dina data när du tillämpar vektorsökning. Den här vektoriseringskällan baseras på Elasticsearch-modell-ID.

Namn Typ Krävs Beskrivning
model_id snöre Sann Anger det modell-ID som ska användas för vektorisering. Det här modell-ID:t måste definieras i Elasticsearch.
type snöre Sann Måste vara model_id.

Mappningsalternativ för fält

Valfria inställningar för att styra hur fält bearbetas när du använder en konfigurerad Elasticsearch-resurs.

Namn Typ Krävs Beskrivning
content_fields sträng[] Falsk Namnen på indexfält som ska behandlas som innehåll.
vector_fields sträng[] Falsk Namnen på fält som representerar vektordata.
content_fields_separator snöre Falsk Det avgränsarmönster som innehållsfält ska använda. Standard är \n.
filepath_field snöre Falsk Namnet på det indexfält som ska användas som en filsökväg.
title_field snöre Falsk Namnet på det indexfält som ska användas som rubrik.
url_field snöre Falsk Namnet på det indexfält som ska användas som en URL.

Frågetyp

Den typ av Elasticsearch-hämtningsfråga som ska köras när du använder den med Azure OpenAI På dina data.

Uppräkningsvärde Beskrivning
simple Representerar standard, enkel frågeparser.
vector Representerar vektorsökning över beräknade data.

Exempel

Förutsättningar:

  • Konfigurera rolltilldelningarna från användaren till Azure OpenAI-resursen. Obligatorisk roll: Cognitive Services OpenAI User.
  • Installera Az CLI och kör az login.
  • Definiera följande miljövariabler: 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='***'

Installera de senaste pip-paketen 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))