Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Note
Azure AI Search è disponibile tramite il portale di Azure, le API REST e Azure SDK. È inoltre alla base di Foundry IQ, il livello di conoscenza gestito che trasforma il contenuto aziendale in knowledge base riutilizzabili e con riconoscimento delle autorizzazioni per gli agenti nel portale di Microsoft Foundry.
Il vettorizzatore dell'API Web personalizzata consente di configurare le query di ricerca per chiamare un endpoint dell'API Web che genera vettori durante l'esecuzione della query. La struttura del payload JSON necessaria per l'endpoint è descritta più avanti in questo articolo. I dati vengono elaborati nel geography in cui viene distribuito il modello.
Anche se i vettorizzatori vengono usati in fase di query, è possibile specificarli nelle definizioni di indice e farvi riferimento sui campi vettoriali tramite un profilo vettoriale. Per altre informazioni, vedere Configurare un vettore in un indice di ricerca.
Il vettore dell'API Web personalizzato viene chiamato WebApiVectorizer nell'API REST. Usare la versione stabile più recente di Indexes - Creare (API REST) o un pacchetto SDK Azure che fornisce la funzionalità.
Parametri del vettorizzatore
I parametri sono sensibili alle lettere maiuscole e minuscole.
| Nome parametro | Descrizione |
|---|---|
uri |
URI dell'API Web a cui verrà inviato il payload JSON. È consentito solo lo schema URI https. Quando si recupera l'indice con GET, il servizio restituisce il valore del parametro di query ?code= come ?code=<redacted> per evitare l'esposizione delle chiavi di funzione. Per aggiornare il vettorizzatore senza modificare l'URI archiviato, impostare uri su <unchanged>. |
httpMethod |
Metodo utilizzato per inviare il payload. I metodi consentiti sono PUT o POST. |
httpHeaders |
Raccolta di coppie chiave-valore in cui le chiavi sono nomi di intestazione e valori vengono inviati all'API Web. Le intestazioni seguenti non sono consentite: Accept, Accept-Charset, , Accept-EncodingContent-Length, , Content-TypeCookieHostTEe Upgrade. Via GET restituisce il valore <redacted> sentinel per ogni valore di intestazione. Per i requisiti di aggiornamento, vedere Aggiornare i valori di intestazione dopo GET. |
authResourceId |
(Facoltativo) Stringa che, se impostata, indica che questo vettore usa un'identità gestita per la connessione alla funzione o all'app che ospita il codice. Questa proprietà accetta un ID applicazione (client) o una registrazione dell'app in Microsoft Entra ID in uno dei formati seguenti: api://<appId>, <appId>/.default, api://<appId>/.default. Questo valore definisce l'ambito del token di autenticazione recuperato dalla pipeline di query e inviato con la richiesta dell'API Web personalizzata alla funzione o all'app. L'impostazione di questa proprietà richiede che il search service sia configurato per l'identità gestita e che l'app per le funzioni Azure sia configurata per l'accesso a Microsoft Entra. |
authIdentity |
(Facoltativo) Identità gestita dall'utente usata dal search service per connettersi alla funzione o all'app che ospita il codice. È possibile usare un'identità gestita dal sistema o gestita dall'utente. Per usare un'identità gestita dal sistema, lasciare authIdentity vuoto. |
timeout |
(Facoltativo) Il timeout per il client HTTP che effettua la chiamata API. Deve essere formattato come valore XSD dayTimeDuration (un subset limitato di un valore di durata ISO 8601 ). Ad esempio, PT60S significa 60 secondi. Se non è impostato, il valore predefinito è 30 secondi. Il timeout può essere compreso tra 1 e 230 secondi. |
Tipi di query vettoriali supportati
Il vettorizzatore di API Web personalizzata supporta le query vettoriali text, imageUrl e imageBinary.
Definizione di esempio
"vectorizers": [
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "<your-header-value>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
]
Aggiornare i valori dell'intestazione dopo GET
Quando si recupera una definizione di indice, il servizio restituisce il sentinel <redacted> per ogni httpHeaders valore in un vettore dell'API Web personalizzata. Per esempio:
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "<redacted>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
Per riutilizzare il valore archiviato api-key , aggiornare lo stesso vettore esistente con lo stesso name e kind, lasciarne uri invariato e inviare nuovamente sentinel per il nome dell'intestazione corrispondente:
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "<redacted>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
Con un oggetto non modificato uri, è possibile combinare <redacted> i valori di intestazione conservati con i valori effettivi di sostituzione per altre intestazioni esistenti. Specificare un valore effettivo per ogni intestazione aggiunta o rinominata perché sentinel si applica solo a un'intestazione esistente con lo stesso nome nello stesso vettore.
Se si modifica uri, specificare i valori effettivi per ogni httpHeaders voce nello stesso aggiornamento. Il servizio non riutilizza i valori archiviati per un oggetto diverso uri:
{
"name": "my-custom-web-api-vectorizer",
"kind": "customWebApi",
"customWebApiParameters": {
"uri": "https://new.contoso.embeddings.com",
"httpMethod": "POST",
"httpHeaders": {
"api-key": "<new-header-value>"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
}
}
Se le credenziali non sono disponibili ed è necessario modificare , uriruotarle o rigenerarle nell'endpoint esterno. Inviare quindi i valori di intestazione e nuovi uri insieme.
Il <redacted> valore è un servizio sentinel, non una credenziale. Non può creare un vettore o recuperare o riutilizzare un valore di intestazione archiviato per un altro vettore.
Struttura del payload JSON
La struttura del payload JSON richiesta per un endpoint usato con il vettorizzatore API Web personalizzato è la stessa di quella usata dalla competenza API Web personalizzata. Per altre informazioni, vedere la documentazione sulle competenze.
Quando si implementa un endpoint API Web per il vettore dell'API Web personalizzato, tenere presenti le considerazioni seguenti:
Il vettorizzatore invia un solo record alla volta nell'
valuesarray quando si effettua una richiesta all'endpoint.Il vettorizzatore passa i dati da vettorizzare in una chiave specifica nell'
dataoggetto JSON nel payload della richiesta. Tale chiave ètext,imageUrloimageBinary, a seconda del tipo di query vettoriale richiesta.Il vettorizzatore prevede che l'incorporamento risultante sia sotto la chiave
vectornell'oggetto JSONdatanel payload della risposta.Il vettorizzatore ignora eventuali errori o avvisi restituiti dall'endpoint. Questi errori e avvisi non sono disponibili per il debug in fase di query.
Se è stata richiesta una query vettoriale
imageBinary, il payload della richiesta inviato all'endpoint è il seguente:{ "values": [ { "recordId": "0", "data": { "imageBinary": { "data": "<base 64 encoded image binary data>" } } } ] }