Sdílet prostřednictvím


Zdroj dat – Elasticsearch (Preview)

Konfigurovatelné možnosti elasticsearch při použití Azure OpenAI ve vašich datech Tento zdroj dat je podporován ve verzi 2024-02-15-previewrozhraní API .

Name Type Požadováno Popis
parameters Parametry True Parametry, které se mají použít při konfiguraci Elasticsearch.
type string True Musí být elasticsearch.

Parametry

Název Type Požadováno Popis
endpoint string True Absolutní cesta koncového bodu pro prostředek Elasticsearch, který se má použít.
index_name string True Název indexu, který se má použít v odkazovaném Elasticsearch.
authentication Jeden z KeyAndKeyIdAuthenticationOptions, EncodedApiAuthenticationOptions True Metoda ověřování, která se má použít při přístupu k definovanému zdroji dat.
embedding_dependency Jeden z DeploymentNameVectorizationSource, EndpointVectorizationSource, ModelIdVectorizationSource False Závislost vkládání pro vektorové vyhledávání. Vyžaduje se, pokud query_type je vector.
fields_mapping FieldsMappingOptions False Přizpůsobené chování mapování polí, které se má použít při interakci s indexem vyhledávání.
in_scope boolean False Určuje, jestli se dotazy mají omezit na použití indexovaných dat. Výchozí hodnota je True.
query_type QueryType False Typ dotazu, který se má použít s Elasticsearch. Výchozí hodnota je simple
role_information string False Poskytněte modelu pokyny, jak by se měl chovat, a jakýkoli kontext, na který by měl odkazovat při generování odpovědi. Můžete popsat osobnost asistenta a říct jí, jak formátovat odpovědi.
strictness integer False Nakonfigurovaná striktnost filtrování relevance vyhledávání. Čím vyšší je striktnost, tím vyšší přesnost, ale nižší úplnost odpovědi. Výchozí hodnota je 3.
top_n_documents integer False Nakonfigurovaný nejvyšší počet dokumentů, které se mají použít pro nakonfigurovaný dotaz. Výchozí hodnota je 5.

Možnosti ověřování pomocí klíče a ID klíče

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití klíče rozhraní API

Name Type Požadováno Popis
key string True Klíč Elasticsearch, který se má použít k ověřování.
key_id string True ID klíče Elasticsearch, které se má použít k ověřování.
type string True Musí být key_and_key_id.

Možnosti ověřování kódovaného klíče rozhraní API

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití klíče rozhraní API s kódováním Elasticsearch.

Name Type Požadováno Popis
encoded_api_key string True Kódovaný klíč rozhraní API Elasticsearch, který se má použít k ověřování.
type string True Musí být encoded_api_key.

Zdroj vektorizace názvu nasazení

Podrobnosti o vektorizačním zdroji, který používá Azure OpenAI ve vašich datech při použití vektorového vyhledávání. Tento zdroj vektorizace je založený na interním názvu nasazení modelu vkládání ve stejném prostředku Azure OpenAI. Tento zdroj vektorizace umožňuje používat vektorové vyhledávání bez klíče api-key Azure OpenAI a bez přístupu k veřejné síti Azure OpenAI.

Name Type Požadováno Popis
deployment_name string True Název nasazení modelu vložení v rámci stejného prostředku Azure OpenAI.
type string True Musí být deployment_name.

Zdroj vektorizace koncového bodu

Podrobnosti o vektorizačním zdroji, který používá Azure OpenAI ve vašich datech při použití vektorového vyhledávání. Tento zdroj vektorizace je založený na koncovém bodu rozhraní API pro vkládání Azure OpenAI.

Name Type Požadováno Popis
endpoint string True Určuje adresu URL koncového bodu prostředku, ze které se mají načíst vkládání. Měl by být ve formátu https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings. Parametr dotazu api-version není povolený.
authentication ApiKeyAuthenticationOptions True Určuje možnosti ověřování, které se mají použít při načítání vkládání ze zadaného koncového bodu.
type string True Musí být endpoint.

Zdroj vektorizace ID modelu

Podrobnosti o vektorizačním zdroji, který používá Azure OpenAI ve vašich datech při použití vektorového vyhledávání. Tento zdroj vektorizace je založen na ID modelu Elasticsearch.

Name Type Požadováno Popis
model_id string True Určuje ID modelu, které se má použít pro vektorizaci. Toto ID modelu musí být definováno v Elasticsearch.
type string True Musí být model_id.

Možnosti ověřování klíčů rozhraní API

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití klíče rozhraní API

Name Type Požadováno Popis
key string True Klíč rozhraní API, který se má použít k ověřování.
type string True Musí být api_key.

Možnosti mapování polí

Volitelná nastavení pro řízení způsobu zpracování polí při použití nakonfigurovaného prostředku Elasticsearch.

Name Type Požadováno Popis
content_fields string[] False Názvy polí indexu, která by se měla považovat za obsah.
vector_fields string[] False Názvy polí, která představují vektorová data.
content_fields_separator string False Vzor oddělovače, který mají pole obsahu používat. Výchozí hodnota je \n.
filepath_field string False Název pole indexu, které se má použít jako cesta k souboru.
title_field string False Název pole indexu, které se má použít jako název.
url_field string False Název pole indexu, které se má použít jako adresa URL.

Typ dotazu

Typ dotazu načítání Elasticsearch, který by se měl spustit při použití s Azure OpenAI ve vašich datech.

Výčtová hodnota Popis
simple Představuje výchozí jednoduchý analyzátor dotazů.
vector Představuje vektorové vyhledávání vypočítaných dat.

Příklady

Požadavky:

  • Nakonfigurujte přiřazení rolí od uživatele k prostředku Azure OpenAI. Požadovaná role: Cognitive Services OpenAI User.
  • Nainstalujte Az CLI a spusťte az login.
  • Definujte následující proměnné prostředí: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, SearchEndpointIndexName, , 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='***'

Nainstalujte nejnovější balíčky openaipip , 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))