Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Note
Azure KI-Suche ist über das Azure Portal, REST-APIs und Azure SDKs verfügbar. Es unterstützt auch Foundry IQ, die verwaltete Wissensschicht, die Unternehmensinhalte in wiederverwendbare, berechtigungsfähige Wissensbasen für Agenten im Microsoft Foundry-Portal transformiert.
Mit dem Benutzerdefinierten Web-API-Vektorizer können Sie Suchabfragen so konfigurieren, dass ein Web-API-Endpunkt aufgerufen wird, der Einbettungen zur Abfragezeit generiert. Die erforderliche JSON-Nutzlaststruktur für den Endpunkt wird weiter unten in diesem Artikel beschrieben. Ihre Daten werden in der geographie verarbeitet, in der Ihr Modell bereitgestellt wird.
Obwohl Vektorisierer zur Abfragezeit verwendet werden, werden sie in Indexdefinitionen angegeben und über ein Vektorprofil auf Vektorfelder referenziert. Weitere Informationen finden Sie unter Konfigurieren eines Vektorizers in einem Suchindex.
Der benutzerdefinierte Web-API-Vektorisierer wird in der REST-API als WebApiVectorizer genannt. Verwenden Sie die neueste stabile Version von Indexes – Create (REST API) oder ein Azure SDK-Paket, das das Feature bereitstellt.
Vektorisierungsparameter
Bei Parametern wird die Groß-/Kleinschreibung beachtet.
| Parametername | Beschreibung |
|---|---|
uri |
Der URI der Web-API, an die das JSON-Datenpaket gesendet wird. Nur das HTTPS-URI-Schema ist zulässig. Wenn Sie den Index mit GET abrufen, gibt der Dienst den Wert des Abfrageparameters ?code= als ?code=<redacted> zurück, um die Offenlegung von Funktionsschlüsseln zu verhindern. Um den Vektorisierer zu aktualisieren, ohne den gespeicherten URI zu ändern, setzen Sie uri auf <unchanged>. |
httpMethod |
Die Methode, die zum Senden der Nutzlast verwendet wird. Zulässige Methoden sind PUT oder POST. |
httpHeaders |
Eine Sammlung von Schlüssel-Wert-Paaren, bei denen Schlüssel Headernamen und Werte an Ihre Web-API gesendet werden. Die folgenden Kopfzeilen sind verboten: Accept, , Accept-Charset, Accept-EncodingContent-Length, , Content-Type, , CookieHost, , TE, , und UpgradeVia. GET gibt den Sentinelwert <redacted> für jeden Headerwert zurück. Informationen zu Updateanforderungen finden Sie unter Aktualisieren von Headerwerten nach GET. |
authResourceId |
(Optional) Eine Zeichenfolge, die, falls festgelegt, angibt, dass dieser Vektorizer eine verwaltete Identität für die Verbindung mit der Funktion oder App verwendet, die den Code hostet. Diese Eigenschaft verwendet eine Anwendungs-ID (Client-ID) oder App-Registrierung in Microsoft Entra ID in einem der folgenden Formate: api://<appId>, <appId>/.default, api://<appId>/.default. Dieser Wert bezieht sich auf das Authentifizierungstoken, das von der Abfragepipeline abgerufen und mit der benutzerdefinierten Web-API-Anforderung an die Funktion oder App gesendet wird. Das Festlegen dieser Eigenschaft erfordert, dass Ihr Search Service für verwaltete Identitäten konfiguriert ist und Ihre Azure-Funktions-App für die Microsoft Entra-Anmeldung konfiguriert ist. |
authIdentity |
(Optional) Eine vom Benutzer verwaltete Identität, die vom search service zum Herstellen einer Verbindung mit der Funktion oder App verwendet wird, die den Code hosten soll. Sie können entweder eine vom System verwaltete oder vom Benutzer verwaltete Identität verwenden. Wenn Sie eine vom System verwaltete Identität verwenden möchten, lassen Sie sie authIdentity leer. |
timeout |
(Optional) Das Timeout für den HTTP-Client, der den API-Aufruf vornimmt. Sie muss als XSD-Wert dayTimeDuration formatiert werden (eine eingeschränkte Teilmenge eines ISO 8601-Dauerwerts ). Bedeutet beispielsweise PT60S 60 Sekunden. Wenn sie nicht festgelegt ist, beträgt der Standardwert 30 Sekunden. Das Timeout kann zwischen 1 und 230 Sekunden betragen. |
Unterstützte Vektorabfragetypen
Die benutzerdefinierte Web-API-Vektorisierung unterstützt text-, imageUrl- und imageBinary-Vektorabfragen.
Beispieldefinition
"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
}
}
]
Aktualisieren von Headerwerten nach GET
Wenn Sie eine Indexdefinition abrufen, gibt der Dienst den Sentinel <redacted> für jeden httpHeaders Wert in einem benutzerdefinierten Web-API-Vektorizer zurück. Beispiel:
{
"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
}
}
Um den gespeicherten api-key Wert wiederzuverwenden, aktualisieren Sie denselben vorhandenen Vektorizer mit demselben namekindund lassen sie unverändert uri , und übermitteln Sie den Sentinel erneut für den entsprechenden Headernamen:
{
"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
}
}
Bei unverändertem uriFormat können Sie für beibehaltene Kopfzeilenwerte mit tatsächlichen Ersetzungswerten für andere vorhandene Kopfzeilen mischen <redacted> . Geben Sie einen tatsächlichen Wert für jeden hinzugefügten oder umbenannten Header an, da der Sentinel nur für eine vorhandene Kopfzeile mit demselben Namen auf demselben Vektorizer gilt.
Wenn Sie den uriWert ändern, geben Sie tatsächliche Werte für jeden httpHeaders Eintrag in derselben Aktualisierung an. Der Dienst verwendet keine gespeicherten Werte für einen anderen 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
}
}
Wenn die Anmeldeinformationen nicht verfügbar sind und Sie die uriAnmeldeinformationen ändern, sie am externen Endpunkt drehen oder neu generieren müssen. Übermitteln Sie dann die neuen uri Werte und Die Kopfzeilenwerte zusammen.
Der <redacted> Wert ist ein Dienst-Sentinel, keine Anmeldeinformationen. Sie kann keinen Vektorisierer erstellen oder einen für einen anderen Vektorisierer gespeicherten Headerwert abrufen oder wiederverwenden.
Struktur der JSON-Nutzdaten
Die erforderliche JSON-Nutzlaststruktur für einen Endpunkt, der mit dem Benutzerdefinierten Web-API-Vektorizer verwendet wird, entspricht der Struktur, die von der Benutzerdefinierten Web-API-Fähigkeit verwendet wird. Weitere Informationen finden Sie in der Qualifikationsdokumentation.
Beachten Sie beim Implementieren eines Web-API-Endpunkts für den benutzerdefinierten Web-API-Vektorizer die folgenden Überlegungen:
Die Vektorisierung sendet beim Übermitteln einer Anforderung an den Endpunkt jeweils nur einen Datensatz im
values-Array.Die Vektorisierung übergibt die Daten, die in einem bestimmten Schlüssel im
data-JSON-Objekt in den Anforderungsnutzdaten vektorisiert werden sollen. Dieser Schlüssel isttext,imageUrloderimageBinary, je nachdem, welche Art von Vektorabfrage angefordert wurde.Die Vektorisierung erwartet, dass sich die resultierende Einbettung unter dem
vector-Schlüssel imdata-JSON-Objekt in den Antwortnutzdaten befindet.Der Vektorizer ignoriert alle Fehler oder Warnungen, die vom Endpunkt zurückgegeben werden. Diese Fehler und Warnungen sind für das Abfragezeitdebugging nicht verfügbar.
Wenn eine
imageBinary-Vektorabfrage angefordert wurde, lauten die an den Endpunkt gesandten Anforderungsnutzdaten wie folgt:{ "values": [ { "recordId": "0", "data": { "imageBinary": { "data": "<base 64 encoded image binary data>" } } } ] }