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 semanticSearchlauten.
direction Muss inlauten.
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.