Azure OpenAI Semantic Search Input Binding für Azure-Funktionen
Wichtig
Die Azure OpenAI-Erweiterung für Azure Functions befindet sich derzeit in der Vorschau.
Mit der Eingabebindung für die semantische Azure OpenAI-Suche können Sie die semantische Suche für Ihre Einbettungen verwenden.
Informationen zu Einrichtungs- und Konfigurationsdetails der Azure OpenAI-Erweiterung finden Sie unter Azure OpenAI-Erweiterungen für Azure Functions. Weitere Informationen zur semantischen Rangfolge in der Azure KI-Suche finden Sie unter Semantische Rangfolge in der Azure KI-Suche.
Hinweis
Referenzen und Beispiele werden nur für das Node.js v4-Modell bereitgestellt.
Hinweis
Referenzen und Beispiele werden nur für das Python v2-Modell bereitgestellt.
Hinweis
Während beide C#-Prozessmodelle unterstützt werden, werden nur Isolierte Arbeitsmodellbeispiele bereitgestellt.
Beispiel
In diesem Beispiel wird gezeigt, wie Sie eine semantische Suche für eine Datei ausführen.
public class EmbeddingsStoreOutputResponse
{
[EmbeddingsStoreOutput("{url}", InputType.Url, "AISearchEndpoint", "openai-index", Model = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")]
public required SearchableDocument SearchableDocument { get; init; }
public IActionResult? HttpResponse { get; set; }
}
In diesem Beispiel wird gezeigt, wie Sie eine semantische Suche für eine Datei ausführen.
return searchableDocument;
}
}
@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<SemanticSearchRequest> request,
@SemanticSearch(name = "search", connectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%" ) String semanticSearchContext,
final ExecutionContext context) {
String response = new JSONObject(semanticSearchContext).getString("Response");
Beispiele sind noch nicht verfügbar.
In diesem Beispiel wird gezeigt, wie Sie eine semantische Suche für eine Datei ausführen.
type: 'embeddings',
maxChunkLength: 512,
model: '%EMBEDDING_MODEL_DEPLOYMENT_NAME%'
})
app.http('getEmbeddingsFilePath', {
methods: ['POST'],
route: 'embeddings-from-file',
authLevel: 'function',
extraInputs: [embeddingsFilePathInput],
handler: async (request, context) => {
let requestBody: EmbeddingsFilePath = await request.json();
let response: any = context.extraInputs.get(embeddingsFilePathInput);
context.log(
`Received ${response.count} embedding(s) for input file ${requestBody.FilePath}.`
);
// TODO: Store the embeddings into a database or other storage.
In diesem Beispiel wird gezeigt, wie Sie eine semantische Suche für eine Datei ausführen.
Dies ist die function.json Datei zum Anfordern einer Datei:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "SemanticSearchInput",
"type": "semanticSearch",
"direction": "in",
"connectionName": "AISearchEndpoint",
"collection": "openai-index",
"query": "{prompt}",
"chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
"embeddingsModel": "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
}
]
}
Weitere Informationen zu den Dateieigenschaften von function.json finden Sie im Abschnitt Konfiguration.
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
Beispiele sind noch nicht verfügbar.
Attribute
Wenden Sie das Attribut SemanticSearchInput
an, um eine semantische Suche zum Senden einer Nachricht an den Assistenten zu definieren, die diese Parameter unterstützt:
Parameter | Beschreibung |
---|---|
ConnectionName | Den Namen einer App-Einstellung oder Umgebungsvariable, die den Wert der Verbindungszeichenfolge enthält. Diese Eigenschaft unterstützt Bindungsausdrücke. |
Sammlung | Den Name der zu durchsuchenden Sammlung oder Tabelle oder des Indexes. Diese Eigenschaft unterstützt Bindungsausdrücke. |
Abfrage | Den für die Suche zu verwendenden Semantikabfragetext. Diese Eigenschaft unterstützt Bindungsausdrücke. |
EmbeddingsModel | Die ID des Modells, das für Einbettungen verwendet werden soll. Der Standardwert ist text-embedding-3-small . Diese Eigenschaft unterstützt Bindungsausdrücke. |
ChatModel | Liest oder definiert den Namen des großen Sprachmodells, das für Chatantworten aufgerufen wird. Der Standardwert ist gpt-3.5-turbo . Diese Eigenschaft unterstützt Bindungsausdrücke. |
SystemPrompt | Optional. Liest oder definiert den Systemprompt, der für die Abfrage des großen Sprachmodells verwendet wird. Der Systemprompt wird mit dem Wissen ergänzt, das durch die Query abgerufen wird. Der kombinierte Prompt wird an die OpenAI Chat-API gesendet. Diese Eigenschaft unterstützt Bindungsausdrücke. |
MaxKnowledgeCount | Optional. Liest oder definiert die Anzahl der Wissenselemente, die in den SystemPrompt injiziert werden sollen. |
Anmerkungen
Mit der Anmerkung SemanticSearchInput
können Sie eine Eingabebindung für die semantische Suche definieren, die diese Parameter unterstützt:
Element | BESCHREIBUNG |
---|---|
name | Liest oder definiert den Namen der Eingabebindung. |
connectionName | Den Namen einer App-Einstellung oder Umgebungsvariable, die den Wert der Verbindungszeichenfolge enthält. Diese Eigenschaft unterstützt Bindungsausdrücke. |
collection | Den Name der zu durchsuchenden Sammlung oder Tabelle oder des Indexes. Diese Eigenschaft unterstützt Bindungsausdrücke. |
query | Den für die Suche zu verwendenden Semantikabfragetext. Diese Eigenschaft unterstützt Bindungsausdrücke. |
embeddingsModel | Die ID des Modells, das für Einbettungen verwendet werden soll. Der Standardwert ist text-embedding-3-small . Diese Eigenschaft unterstützt Bindungsausdrücke. |
chatModel | Liest oder definiert den Namen des großen Sprachmodells, das für Chatantworten aufgerufen wird. Der Standardwert ist gpt-3.5-turbo . Diese Eigenschaft unterstützt Bindungsausdrücke. |
systemPrompt | Optional. Liest oder definiert den Systemprompt, der für die Abfrage des großen Sprachmodells verwendet wird. Der Systemprompt wird mit dem Wissen ergänzt, das durch die Query abgerufen wird. Der kombinierte Prompt wird an die OpenAI Chat-API gesendet. Diese Eigenschaft unterstützt Bindungsausdrücke. |
maxKnowledgeCount | Optional. Liest oder definiert die Anzahl der Wissenselemente, die in den SystemPrompt injiziert werden sollen. |
Decorator-Elemente
Definieren Sie während der Vorschau die Eingabebindung als generic_input_binding
-Bindung vom Typ semanticSearch
, die diese Parameter unterstützt:
Parameter | Beschreibung |
---|---|
arg_name | Der Name der Variablen, die den Bindungsparameter darstellt. |
connection_name | Den Namen einer App-Einstellung oder Umgebungsvariable, die den Wert der Verbindungszeichenfolge enthält. Diese Eigenschaft unterstützt Bindungsausdrücke. |
collection | Den Name der zu durchsuchenden Sammlung oder Tabelle oder des Indexes. Diese Eigenschaft unterstützt Bindungsausdrücke. |
query | Den für die Suche zu verwendenden Semantikabfragetext. Diese Eigenschaft unterstützt Bindungsausdrücke. |
embeddings_model | Die ID des Modells, das für Einbettungen verwendet werden soll. Der Standardwert ist text-embedding-3-small . Diese Eigenschaft unterstützt Bindungsausdrücke. |
chat_model | Liest oder definiert den Namen des großen Sprachmodells, das für Chatantworten aufgerufen wird. Der Standardwert ist gpt-3.5-turbo . Diese Eigenschaft unterstützt Bindungsausdrücke. |
system_prompt | Optional. Liest oder definiert den Systemprompt, der für die Abfrage des großen Sprachmodells verwendet wird. Der Systemprompt wird mit dem Wissen ergänzt, das durch die Query abgerufen wird. Der kombinierte Prompt wird an die OpenAI Chat-API gesendet. Diese Eigenschaft unterstützt Bindungsausdrücke. |
max_knowledge_count | Optional. Liest oder definiert die Anzahl der Wissenselemente, die in den SystemPrompt injiziert werden sollen. |
Konfiguration
Die Bindung unterstützt diese Konfigurationseigenschaften, die Sie in der Datei „function.json“ festlegen.
Eigenschaft | Beschreibung des Dataflows |
---|---|
type | Muss semanticSearch lauten. |
direction | Muss in lauten. |
name | Der Name der Eingabebindung. |
connectionName | Liest oder definiert den Namen einer App-Einstellung oder Umgebungsvariable, die einen Wert für eine Verbindungszeichenfolge enthält. Diese Eigenschaft unterstützt Bindungsausdrücke. |
collection | Den Name der zu durchsuchenden Sammlung oder Tabelle oder des Indexes. Diese Eigenschaft unterstützt Bindungsausdrücke. |
query | Den für die Suche zu verwendenden Semantikabfragetext. Diese Eigenschaft unterstützt Bindungsausdrücke. |
embeddingsModel | Die ID des Modells, das für Einbettungen verwendet werden soll. Der Standardwert ist text-embedding-3-small . Diese Eigenschaft unterstützt Bindungsausdrücke. |
chatModel | Liest oder definiert den Namen des großen Sprachmodells, das für Chatantworten aufgerufen wird. Der Standardwert ist gpt-3.5-turbo . Diese Eigenschaft unterstützt Bindungsausdrücke. |
systemPrompt | Optional. Liest oder definiert den Systemprompt, der für die Abfrage des großen Sprachmodells verwendet wird. Der Systemprompt wird mit dem Wissen ergänzt, das durch die Query abgerufen wird. Der kombinierte Prompt wird an die OpenAI Chat-API gesendet. Diese Eigenschaft unterstützt Bindungsausdrücke. |
maxKnowledgeCount | Optional. Liest oder definiert die Anzahl der Wissenselemente, die in den SystemPrompt injiziert werden sollen. |
Konfiguration
Die Bindung unterstützt diese Eigenschaften, die in Ihrem Code definiert sind:
Eigenschaft | Beschreibung |
---|---|
connectionName | Den Namen einer App-Einstellung oder Umgebungsvariable, die den Wert der Verbindungszeichenfolge enthält. Diese Eigenschaft unterstützt Bindungsausdrücke. |
collection | Den Name der zu durchsuchenden Sammlung oder Tabelle oder des Indexes. Diese Eigenschaft unterstützt Bindungsausdrücke. |
query | Den für die Suche zu verwendenden Semantikabfragetext. Diese Eigenschaft unterstützt Bindungsausdrücke. |
embeddingsModel | Die ID des Modells, das für Einbettungen verwendet werden soll. Der Standardwert ist text-embedding-3-small . Diese Eigenschaft unterstützt Bindungsausdrücke. |
chatModel | Liest oder definiert den Namen des großen Sprachmodells, das für Chatantworten aufgerufen wird. Der Standardwert ist gpt-3.5-turbo . Diese Eigenschaft unterstützt Bindungsausdrücke. |
systemPrompt | Optional. Liest oder definiert den Systemprompt, der für die Abfrage des großen Sprachmodells verwendet wird. Der Systemprompt wird mit dem Wissen ergänzt, das durch die Query abgerufen wird. Der kombinierte Prompt wird an die OpenAI Chat-API gesendet. Diese Eigenschaft unterstützt Bindungsausdrücke. |
maxKnowledgeCount | Optional. Liest oder definiert die Anzahl der Wissenselemente, die in den SystemPrompt injiziert werden sollen. |
Verbrauch
Vollständige Beispiele finden Sie im Abschnitt Beispiele.