Vettoruzzatore dell'API Web personalizzato
Il vettorizzatore dell'API Web personalizzato consente di configurare le query di ricerca per chiamare un endpoint API Web per generare incorporamenti in fase di query. La struttura del payload JSON da implementare nell'endpoint fornito è descritta più avanti in questo documento. I dati vengono elaborati nell'area geografica in cui viene distribuito il modello.
I vettori vengono usati in fase di query, ma specificati nelle definizioni di indice e a cui viene fatto riferimento sui campi vettoriali tramite un profilo vettoriale. Il vettore dell'API Web personalizzato viene chiamato WebApiVectorizer
nell'API.
Usare l'API REST 2024-07-01 o un pacchetto di Azure SDK aggiornato per fornire la funzionalità.
Configurare un vettore in un indicedi ricerca fornisce istruzioni sull'utilizzo.
Parametri del vettorizzatore
I parametri fanno distinzione tra maiuscole e minuscole.
Nome parametro | Descrizione |
---|---|
uri |
URI dell'API Web a cui verrà inviato il payload JSON. È consentito solo lo schema URI https. |
httpMethod |
Metodo da usare per l'invio del payload. I metodi consentiti sono PUT o POST |
httpHeaders |
Raccolta di coppie chiave-valore in cui le chiavi corrispondono ai nomi di intestazione e i valori rappresentano i valori di intestazione che sono inviati all'API Web insieme al payload. In questa raccolta è proibito l'uso delle intestazioni seguenti: Accept , Accept-Charset , Accept-Encoding , Content-Length , Content-Type , Cookie , Host , TE , Upgrade , Via . |
authResourceId |
(Facoltativo) Stringa che, se impostata, indica che questo vettorizzatore deve usare un'identità gestita nella connessione alla funzione o all'app che ospita il codice. Questa proprietà accetta un ID applicazione (client) o la registrazione dell'app in Microsoft Entra ID, in uno di questi formati: api://<appId> , <appId>/.default , api://<appId>/.default . Questo valore viene usato per definire l'ambito del token di autenticazione recuperato dall'indicizzatore e viene inviato insieme alla richiesta dell'API Web personalizzata alla funzione o all'app. L'impostazione di questa proprietà richiede che il servizio di ricerca sia configurato per l'identità gestita e che l'app per le funzioni di Azure sia configurata per l'accesso a Microsoft Entra. |
authIdentity |
(Facoltativo) Identità gestita dall'utente usata dal servizio di ricerca per la connessione alla funzione o all'app che ospita il codice. È possibile usare un'identità gestita dal sistema o dall'utente. Per usare un'identità gestita dal sistema, lasciare authIdentity vuoto. |
timeout |
(facoltativo) Se specificato, indica il timeout per il client HTTP che effettua la chiamata API. Il valore deve essere formattato come valore XSD "dayTimeDuration" (un subset limitato di un valore duration ISO 8601 ). Ad esempio, PT60S per 60 secondi. Se non impostato, viene scelto un valore predefinito di 30 secondi. Il timeout può essere impostato su un massimo di 230 secondi e un minimo di 1 secondo. |
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": "0000000000000000000000000000000000000"
},
"timeout": "PT60S",
"authResourceId": null,
"authIdentity": null
},
}
]
Struttura del payload JSON
La struttura del payload JSON necessaria prevista per un endpoint quando viene usata con il vettorizzatore dell'API Web personalizzato è identica a quella della competenza API Web personalizzata, descritta in modo più dettagliato nella documentazione per la competenza.
Quando si implementa un endpoint API Web da usare con il vettorizzatore dell'API Web personalizzato, è necessario tenere presenti le altre considerazioni seguenti.
Il vettorizzatore invia un solo record alla volta nell'
values
array quando si effettua una richiesta all'endpoint.Il vettorizzatore passa i dati da vettorizzare in una chiave specifica nell'
data
oggetto JSON nel payload della richiesta. Tale chiave ètext
,imageUrl
oimageBinary
, a seconda del tipo di query vettoriale richiesta.Il vettorizzatore prevede che l'incorporamento risultante sia sotto la chiave
vector
nell'oggetto JSONdata
nel payload della risposta.Eventuali errori o avvisi restituiti dall'endpoint vengono ignorati dal vettorizzatore e non sono recuperabili a scopo di 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>" } } } ] }