Dela via


Azure OpenAI-assistentens frågeindatabindning för Azure Functions

Viktigt!

Azure OpenAI-tillägget för Azure Functions är för närvarande i förhandsversion.

Med frågeindatabindningen för Azure OpenAI-assistenten kan du integrera API-frågor för assistenter i dina kodkörningar.

Information om konfiguration och konfigurationsinformation för Azure OpenAI-tillägget finns i Azure OpenAI-tillägg för Azure Functions. Mer information om Azure OpenAI-assistenter finns i API för Azure OpenAI Assistants.

Kommentar

Referenser och exempel tillhandahålls endast för modellen Node.js v4.

Kommentar

Referenser och exempel tillhandahålls endast för Python v2-modellen.

Kommentar

Båda C#-processmodellerna stöds, men endast exempel på isolerade arbetsmodeller tillhandahålls.

Exempel

Det här exemplet visar skapandeprocessen, där funktionen HTTP GET som frågar konversationshistoriken för chattroboten för assistenten. Svaret på uppmaningen returneras i HTTP-svaret.

    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);
    }
}

Det här exemplet visar skapandeprocessen, där funktionen HTTP GET som frågar konversationshistoriken för chattroboten för assistenten. Svaret på uppmaningen returneras i HTTP-svaret.

                "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();    
}

Exempel är ännu inte tillgängliga.

Det här exemplet visar skapandeprocessen, där funktionen HTTP GET som frågar konversationshistoriken för chattroboten för assistenten. Svaret på uppmaningen returneras i HTTP-svaret.

            }
        };
    }
})


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

Det här exemplet visar skapandeprocessen, där funktionen HTTP GET som frågar konversationshistoriken för chattroboten för assistenten. Svaret på uppmaningen returneras i HTTP-svaret.

Här är function.json-filen för Hämta chatttillstånd:

{
  "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"
    }
  ]
}

Mer information om function.json filegenskaper finns i avsnittet 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"
    }
})

Det här exemplet visar skapandeprocessen, där funktionen HTTP GET som frågar konversationshistoriken för chattroboten för assistenten. Svaret på uppmaningen returneras i HTTP-svaret.

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


@apis.function_name("GetChatState")

Attribut

AssistantQuery Använd attributet för att definiera en assisterande frågeindatabindning, som stöder följande parametrar:

Parameter Description
ID Hämtar ID:t för assistenten att fråga.
TimeStampUtc Valfritt. Hämtar eller anger tidsstämpeln för det tidigaste meddelandet i chatthistoriken som ska hämtas. Tidsstämpeln ska vara i ISO 8601-format – till exempel 2023-08-01T00:00:00Z.

Kommentarer

Med anteckningen assistantQuery kan du definiera en assisterande frågeindatabindning som stöder följande parametrar:

Element Description
Namn Hämtar eller anger namnet på indatabindningen.
id Hämtar ID:t för assistenten att fråga.
timeStampUtc Valfritt. Hämtar eller anger tidsstämpeln för det tidigaste meddelandet i chatthistoriken som ska hämtas. Tidsstämpeln ska vara i ISO 8601-format – till exempel 2023-08-01T00:00:00Z.

Dekoratörer

Under förhandsversionen definierar du indatabindningen som en generic_input_binding bindning av typen assistantQuery, som stöder följande parametrar:

Parameter Description
arg_name Namnet på variabeln som representerar bindningsparametern.
id Hämtar ID:t för assistenten att fråga.
time_stamp_utc Valfritt. Hämtar eller anger tidsstämpeln för det tidigaste meddelandet i chatthistoriken som ska hämtas. Tidsstämpeln ska vara i ISO 8601-format – till exempel 2023-08-01T00:00:00Z.

Konfiguration

Bindningen stöder de konfigurationsegenskaper som du anger i filen function.json.

Property Beskrivning
typ Måste vara assistantQuery.
riktning Måste vara in.
Namn Namnet på indatabindningen.
id Hämtar ID:t för assistenten att fråga.
timeStampUtc Valfritt. Hämtar eller anger tidsstämpeln för det tidigaste meddelandet i chatthistoriken som ska hämtas. Tidsstämpeln ska vara i ISO 8601-format – till exempel 2023-08-01T00:00:00Z.

Konfiguration

Bindningen stöder dessa egenskaper, som definieras i koden:

Property Beskrivning
id Hämtar ID:t för assistenten att fråga.
timeStampUtc Valfritt. Hämtar eller anger tidsstämpeln för det tidigaste meddelandet i chatthistoriken som ska hämtas. Tidsstämpeln ska vara i ISO 8601-format – till exempel 2023-08-01T00:00:00Z.

Förbrukning

Se avsnittet Exempel för fullständiga exempel.