Dela via


Datakälla – Azure AI Search

De konfigurerbara alternativen för Azure AI Search när du använder Azure OpenAI på dina data. Den här datakällan stöds i API-versionen 2024-02-01.

Namn Typ Obligatoriskt Beskrivning
parameters Parameters Sant De parametrar som ska användas när du konfigurerar Azure Search.
type sträng Sant Måste vara azure_search.

Parameters

Namn Typ Obligatoriskt Beskrivning
endpoint sträng Sant Den absoluta slutpunktssökvägen som Azure Search-resursen ska använda.
index_name sträng Sant Namnet på indexet som ska användas i den refererade Azure Search-resursen.
authentication En av ApiKeyAuthenticationOptions, SystemAssignedManagedIdentityAuthenticationOptions, UserAssignedManagedIdentityAuthenticationOptions, onYourDataAccessTokenAuthenticationOptions Sant Den autentiseringsmetod som ska användas vid åtkomst till den definierade datakällan.
embedding_dependency En av DeploymentNameVectorizationSource, EndpointVectorizationSource Falsk Inbäddningsberoendet för vektorsökning. Krävs när query_type är vector, vector_simple_hybrideller vector_semantic_hybrid.
fields_mapping FieldsMappingOptions Falsk Anpassat fältmappningsbeteende som ska användas när du interagerar med sökindexet.
filter sträng Falsk Sökfilter.
in_scope boolean 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 Azure Search. Standardvärdet är simple
role_information sträng 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.
semantic_configuration sträng Falsk Den semantiska konfigurationen för frågan. Krävs när query_type är semantic eller vector_semantic_hybrid.
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.
max_search_queries integer Falsk Det maximala antalet omskrivna frågor ska skickas till sökprovidern för ett användarmeddelande. Om det inte anges bestämmer systemet hur många frågor som ska skickas.
allow_partial_result integer Falsk Om det anges som sant tillåter systemet att partiella sökresultat används och begäran misslyckas om alla frågor misslyckas. Om det inte anges eller anges som falskt misslyckas begäran om någon sökfråga misslyckas.
include_contexts matris Falsk De inkluderade egenskaperna för utdatakontexten. Om det inte anges är citations standardvärdet och intent. Värden kan vara citations,intent, all_retrieved_documents.

Alternativ för API-nyckelautentisering

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

Namn Typ Obligatoriskt Beskrivning
key sträng Sant API-nyckeln som ska användas för autentisering.
type sträng Sant Måste vara api_key.

Systemtilldelade autentiseringsalternativ för hanterad identitet

Autentiseringsalternativen för Azure OpenAI På dina data när du använder en systemtilldelad hanterad identitet.

Namn Typ Obligatoriskt Beskrivning
type sträng Sant Måste vara system_assigned_managed_identity.

Autentiseringsalternativ för användartilldelad hanterad identitet

Autentiseringsalternativen för Azure OpenAI På dina data när du använder en användartilldelad hanterad identitet.

Namn Typ Obligatoriskt Beskrivning
managed_identity_resource_id sträng Sant Resurs-ID för den användartilldelade hanterade identitet som ska användas för autentisering.
type sträng Sant Måste vara user_assigned_managed_identity.

Autentiseringsalternativ för åtkomsttoken

Autentiseringsalternativen för Azure OpenAI På dina data när du använder åtkomsttoken.

Namn Typ Obligatoriskt Beskrivning
access_token sträng Sant Åtkomsttoken som ska användas för autentisering.
type sträng Sant Måste vara access_token.

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 Obligatoriskt Beskrivning
deployment_name sträng Sant Distributionsnamnet för inbäddningsmodellen i samma Azure OpenAI-resurs.
type sträng Sant Måste vara deployment_name.
dimensions integer Falsk Antalet dimensioner som inbäddningarna ska ha. Stöds endast i text-embedding-3 och senare modeller.

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 Obligatoriskt Beskrivning
endpoint sträng Sant 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 Sant Anger de autentiseringsalternativ som ska användas vid hämtning av inbäddningar från den angivna slutpunkten.
type sträng Sant Måste vara endpoint.
dimensions integer Falsk Antalet dimensioner som inbäddningarna ska ha. Stöds endast i text-embedding-3 och senare modeller.

Mappningsalternativ för fält

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

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

Frågetyp

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

Uppräkningsvärde beskrivning
simple Representerar standard, enkel frågeparser.
semantic Representerar den semantiska frågeparsern för avancerad semantisk modellering.
vector Representerar vektorsökning över beräknade data.
vector_simple_hybrid Representerar en kombination av den enkla frågestrategin med vektordata.
vector_semantic_hybrid Representerar en kombination av semantisk sökning och vektordatafrågor.

Exempel

Förutsättningar:

  • Konfigurera rolltilldelningarna från Azure OpenAI-systemet som tilldelats hanterad identitet till Azure Search-tjänsten. Nödvändiga roller: Search Index Data Reader, Search Service Contributor.
  • 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, SearchIndex.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index

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