Freigeben über


Abfrageeingabebindung des Azure OpenAI-Assistenten für Azure Functions

Wichtig

Die Azure OpenAI-Erweiterung für Azure Functions befindet sich derzeit in der Vorschau.

Mit der Abfrageeingabebindung des Azure OpenAI-Assistenten können Sie Assistenten-API-Abfragen in Ihre Codeausführungen integrieren.

Informationen zu Einrichtungs- und Konfigurationsdetails der Azure OpenAI-Erweiterung finden Sie unter Azure OpenAI-Erweiterungen für Azure Functions. Weitere Informationen zu Azure OpenAI-Assistenten finden Sie unter API für Azure OpenAI-Assistenten.

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 der Erstellungsprozess veranschaulicht, bei dem die HTTP GET-Funktion den Unterhaltungsverlauf des Assistenten-Chatbots abfragt. Die Antwort auf den Prompt wird in der HTTP-Antwort zurückgegeben.

    public static async Task<IActionResult> GetChatState(
       [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "assistants/{assistantId}")] HttpRequestData req,
       string assistantId,
       [AssistantQueryInput("{assistantId}", TimestampUtc = "{Query.timestampUTC}", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
    {
        return new OkObjectResult(state);
    }
}

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP GET-Funktion den Unterhaltungsverlauf des Assistenten-Chatbots abfragt. Die Antwort auf den Prompt wird in der HTTP-Antwort zurückgegeben.

                "Ask for clarification if a user request is ambiguous.";

        AssistantCreateRequest assistantCreateRequest = new AssistantCreateRequest(assistantId, instructions);
        assistantCreateRequest.setChatStorageConnectionSetting(DEFAULT_CHATSTORAGE);
        assistantCreateRequest.setCollectionName(DEFAULT_COLLECTION);

        message.setValue(assistantCreateRequest);
        JSONObject response = new JSONObject();
        response.put("assistantId", assistantId);
        
        return request.createResponseBuilder(HttpStatus.CREATED)
            .header("Content-Type", "application/json")
            .body(response.toString())
            .build();    
}

Beispiele sind noch nicht verfügbar.

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP GET-Funktion den Unterhaltungsverlauf des Assistenten-Chatbots abfragt. Die Antwort auf den Prompt wird in der HTTP-Antwort zurückgegeben.

            }
        };
    }
})


const chatBotQueryInput = input.generic({
    type: 'assistantQuery',
    id: '{assistantId}',
    timestampUtc: '{Query.timestampUTC}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
    methods: ['GET'],

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP GET-Funktion den Unterhaltungsverlauf des Assistenten-Chatbots abfragt. Die Antwort auf den Prompt wird in der HTTP-Antwort zurückgegeben.

Dies ist die function.json Datei für "Chatstatus abrufen":

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "assistants/{assistantId}",
      "methods": [
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "name": "State",
      "type": "assistantQuery",
      "direction": "in",
      "dataType": "string",
      "id": "{assistantId}",
      "timestampUtc": "{Query.timestampUTC}",
      "chatStorageConnectionSetting": "AzureWebJobsStorage",
      "collectionName": "ChatState"
    }
  ]
}

Weitere Informationen zu den Dateieigenschaften von function.json finden Sie im Abschnitt Konfiguration.

using namespace System.Net

param($Request, $TriggerMetadata, $State)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body       = $State
    Headers    = @{
        "Content-Type" = "application/json"
    }
})

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP GET-Funktion den Unterhaltungsverlauf des Assistenten-Chatbots abfragt. Die Antwort auf den Prompt wird in der HTTP-Antwort zurückgegeben.

    recent_message_content = data['recentMessages'][0]['content']
    return func.HttpResponse(recent_message_content, status_code=200, mimetype="text/plain")


@apis.function_name("GetChatState")

Attribute

Wenden Sie das Attribut AssistantQuery an, um eine Abfrageeingabebindung für den Assistenten zu definieren, die diese Parameter unterstützt:

Parameter Beschreibung
Id Ruft die ID des Assistenten ab, der abgefragt werden soll.
TimeStampUtc Optional. Ruft den Zeitstempel der frühesten Nachricht im Chatverlauf ab, die abgerufen werden soll, oder legt diesen Zeitstempel fest. Der Zeitstempel muss im ISO 8601-Format vorliegen, z. B. 2023-08-01T00:00:00Z.

Anmerkungen

Mit der Anmerkung assistantQuery können Sie eine Abfrageeingabebindung für den Assistenten definieren, die diese Parameter unterstützt:

Element BESCHREIBUNG
name Ruft den Namen der Eingabebindung ab oder legt ihn fest.
id Ruft die ID des Assistenten ab, der abgefragt werden soll.
timeStampUtc Optional. Ruft den Zeitstempel der frühesten Nachricht im Chatverlauf ab, die abgerufen werden soll, oder legt diesen Zeitstempel fest. Der Zeitstempel muss im ISO 8601-Format vorliegen, z. B. 2023-08-01T00:00:00Z.

Decorator-Elemente

Definieren Sie während der Vorschau die Eingabebindung als generic_input_binding-Bindung vom Typ assistantQuery, die diese Parameter unterstützt:

Parameter Beschreibung
arg_name Der Name der Variablen, die den Bindungsparameter darstellt.
id Ruft die ID des Assistenten ab, der abgefragt werden soll.
time_stamp_utc Optional. Ruft den Zeitstempel der frühesten Nachricht im Chatverlauf ab, die abgerufen werden soll, oder legt diesen Zeitstempel fest. Der Zeitstempel muss im ISO 8601-Format vorliegen, z. B. 2023-08-01T00:00:00Z.

Konfiguration

Die Bindung unterstützt diese Konfigurationseigenschaften, die Sie in der Datei „function.json“ festlegen.

Eigenschaft Beschreibung des Dataflows
type Muss assistantQuerylauten.
direction Muss inlauten.
name Der Name der Eingabebindung.
id Ruft die ID des Assistenten ab, der abgefragt werden soll.
timeStampUtc Optional. Ruft den Zeitstempel der frühesten Nachricht im Chatverlauf ab, die abgerufen werden soll, oder legt diesen Zeitstempel fest. Der Zeitstempel muss im ISO 8601-Format vorliegen, z. B. 2023-08-01T00:00:00Z.

Konfiguration

Die Bindung unterstützt diese Eigenschaften, die in Ihrem Code definiert sind:

Eigenschaft BESCHREIBUNG
id Ruft die ID des Assistenten ab, der abgefragt werden soll.
timeStampUtc Optional. Ruft den Zeitstempel der frühesten Nachricht im Chatverlauf ab, die abgerufen werden soll, oder legt diesen Zeitstempel fest. Der Zeitstempel muss im ISO 8601-Format vorliegen, z. B. 2023-08-01T00:00:00Z.

Verbrauch

Vollständige Beispiele finden Sie im Abschnitt Beispiele.