Sdílet prostřednictvím


Zdroj dat – Azure AI Search

Konfigurovatelné možnosti služby Azure AI Search při použití Azure OpenAI ve vašich datech Tento zdroj dat je podporován ve verzi 2024-02-01rozhraní API .

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

Parametry

Název Type Požadováno Popis
endpoint string True Absolutní cesta ke koncovému bodu pro prostředek Azure Search, který se má použít.
index_name string True Název indexu, který se má použít v odkazovaném prostředku služby Azure Search.
authentication Jeden z ApiKeyAuthenticationOptions, SystemAssignedManagedIdentityAuthenticationOptions, UserAssignedManagedIdentityAuthenticationOptions, onYourDataAccessTokenAuthenticationOptions 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 False Závislost vkládání pro vektorové vyhledávání. Požadováno, pokud query_type je vector, vector_simple_hybridnebo vector_semantic_hybrid.
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í.
filter string False Filtr hledá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 se službou Azure Search. 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.
semantic_configuration string False Sémantická konfigurace dotazu. Vyžaduje se, pokud query_type je semantic nebo vector_semantic_hybrid.
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.
max_search_queries integer False Maximální počet přepsaných dotazů by měl být odeslán poskytovateli vyhledávání pro jednu zprávu uživatele. Pokud není zadaný, systém rozhodne počet dotazů, které se mají odeslat.
allow_partial_result integer False Pokud je zadána hodnota true, systém povolí použití částečných výsledků hledání a požadavek selže, pokud všechny dotazy selžou. Pokud není zadaný nebo zadaný jako false, požadavek selže, pokud některý vyhledávací dotaz selže.
include_contexts pole False Zahrnuté vlastnosti výstupního kontextu. Pokud není zadána, výchozí hodnota je citations a intent. Hodnoty mohou být citations,intent, all_retrieved_documents.

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 ověřování spravované identity přiřazené systémem

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití spravované identity přiřazené systémem

Name Type Požadováno Popis
type string True Musí být system_assigned_managed_identity.

Možnosti ověřování spravované identity přiřazené uživatelem

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití spravované identity přiřazené uživatelem.

Name Type Požadováno Popis
managed_identity_resource_id string True ID prostředku spravované identity přiřazené uživatelem, které se má použít k ověřování.
type string True Musí být user_assigned_managed_identity.

Možnosti ověřování přístupového tokenu

Možnosti ověřování pro Azure OpenAI Ve vašich datech při použití přístupového tokenu.

Name Type Požadováno Popis
access_token string True Přístupový token, který se má použít k ověřování.
type string True Musí být access_token.

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.
dimensions integer False Počet dimenzí, které by měly mít vložené hodnoty. Podporováno pouze v text-embedding-3 novějších modelech.

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.
dimensions integer False Počet dimenzí, které by měly mít vložené hodnoty. Podporováno pouze v text-embedding-3 novějších modelech.

Možnosti mapování polí

Volitelná nastavení pro řízení způsobu zpracování polí při použití nakonfigurovaného prostředku Služby Azure Search

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 vyhledávacího dotazu Služby Azure Search, který by se měl spustit při použití jako Azure OpenAI ve vašich datech.

Výčtová hodnota Popis
simple Představuje výchozí jednoduchý analyzátor dotazů.
semantic Představuje sémantický analyzátor dotazů pro pokročilé sémantické modelování.
vector Představuje vektorové vyhledávání vypočítaných dat.
vector_simple_hybrid Představuje kombinaci jednoduché strategie dotazu s vektorovými daty.
vector_semantic_hybrid Představuje kombinaci sémantického vyhledávání a dotazování vektorových dat.

Příklady

Požadavky:

  • Nakonfigurujte přiřazení rolí ze systému Azure OpenAI přiřazené spravované identitě ke službě Azure Search. Požadované role: Search Index Data Reader, Search Service Contributor.
  • 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 loginpříkaz .
  • Definujte následující proměnné prostředí: AzureOpenAIEndpoint, ChatCompletionsDeploymentName,SearchEndpoint , SearchIndex.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index

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")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")

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-01",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "azure_search",
                "parameters": {
                    "endpoint": search_endpoint,
                    "index_name": search_index,
                    "authentication": {
                        "type": "system_assigned_managed_identity"
                    }
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))