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_hybrid eller 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))