Delen via


Queryinvoerbinding voor Azure OpenAI-assistent voor Azure Functions

Belangrijk

De Azure OpenAI-extensie voor Azure Functions is momenteel in preview.

Met de queryinvoerbinding van de Azure OpenAI-assistent kunt u API-query's voor assistenten integreren in uw code-uitvoeringen.

Zie Azure OpenAI-extensies voor Azure Functions voor informatie over de installatie en configuratie van de Azure OpenAI-extensie. Zie de Api voor Azure OpenAI-assistenten voor meer informatie over Azure OpenAI-assistenten.

Notitie

Verwijzingen en voorbeelden worden alleen verstrekt voor het Node.js v4-model.

Notitie

Verwijzingen en voorbeelden worden alleen verstrekt voor het Python v2-model.

Notitie

Hoewel beide C#-procesmodellen worden ondersteund, worden alleen geïsoleerde werkrolmodelvoorbeelden gegeven.

Opmerking

In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.

/// <summary>
/// HTTP GET function that queries the conversation history of the assistant chat bot.
/// </summary>
[Function(nameof(GetChatState))]
public static 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 dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.

/*
 * HTTP GET function that queries the conversation history of the assistant chat bot.
 */   
@FunctionName("GetChatState")
public HttpResponseMessage getChatState(
    @HttpTrigger(
        name = "req",
        methods = {HttpMethod.GET}, 
        authLevel = AuthorizationLevel.ANONYMOUS,
        route = "assistants/{assistantId}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("assistantId") String assistantId,        
    @AssistantQuery(name = "AssistantState", id = "{assistantId}", timestampUtc = "{Query.timestampUTC}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
    final ExecutionContext context) {
        return request.createResponseBuilder(HttpStatus.OK)
            .header("Content-Type", "application/json")
            .body(state)
            .build();
}

In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.

const { app, input, output } = require("@azure/functions");

const chatBotQueryInput = input.generic({
    type: 'assistantQuery',
    id: '{assistantId}',
    timestampUtc: '{Query.timestampUTC}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
    methods: ['GET'],
    route: 'assistants/{assistantId}',
    authLevel: 'anonymous',
    extraInputs: [chatBotQueryInput],
    handler: async (_, context) => {
        const state = context.extraInputs.get(chatBotQueryInput)
        return { status: 200, jsonBody: state }
    }
})

In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.

import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"

const chatBotQueryInput = input.generic({
    type: 'assistantQuery',
    id: '{assistantId}',
    timestampUtc: '{Query.timestampUTC}',
    chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
    collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
    methods: ['GET'],
    route: 'assistants/{assistantId}',
    authLevel: 'anonymous',
    extraInputs: [chatBotQueryInput],
    handler: async (_, context) => {
        const state: any = context.extraInputs.get(chatBotQueryInput)
        return { status: 200, jsonBody: state }
    }
})

In dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.

Dit is het bestand function.json voor chatstatus ophalen:

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

Zie de sectie Configuratie voor meer informatie over function.json bestandseigenschappen.

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 dit voorbeeld ziet u het aanmaakproces, waarbij de HTTP GET-functie die de gespreksgeschiedenis van de chatbot van de assistent opvraagt. Het antwoord op de prompt wordt geretourneerd in het HTTP-antwoord.

@apis.function_name("GetChatState")
@apis.route(route="assistants/{assistantId}", methods=["GET"])
@apis.assistant_query_input(
    arg_name="state",
    id="{assistantId}",
    timestamp_utc="{Query.timestampUTC}",
    chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
    collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def get_chat_state(req: func.HttpRequest, state: str) -> func.HttpResponse:
    return func.HttpResponse(state, status_code=200, mimetype="application/json")

Kenmerken

Pas het AssistantQuery kenmerk toe om een assistentquery-invoerbinding te definiëren, die ondersteuning biedt voor deze parameters:

Kenmerk Beschrijving
Legitimatiebewijs Hiermee haalt u de id van de assistent op om een query uit te voeren.
TimeStampUtc Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z.

Aantekeningen

Met de assistantQuery aantekening kunt u een assistentquery-invoerbinding definiëren, die ondersteuning biedt voor deze parameters:

Onderdeel Beschrijving
naam Hiermee haalt u de naam van de invoerbinding op of stelt u deze in.
ID Hiermee haalt u de id van de assistent op om een query uit te voeren.
timeStampUtc Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z.

Decorateurs

Definieer tijdens de preview de invoerbinding als een generic_input_binding binding van het type assistantQuery, die ondersteuning biedt voor deze parameters:

Kenmerk Beschrijving
arg_name De naam van de variabele die de bindingsparameter vertegenwoordigt.
ID Hiermee haalt u de id van de assistent op om een query uit te voeren.
time_stamp_utc Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z.

Configuratie

De binding ondersteunt deze configuratie-eigenschappen die u in het function.json-bestand hebt ingesteld.

Eigenschappen Beschrijving
soort Moet assistantQuery zijn.
richting Moet in zijn.
naam De naam van de invoerbinding.
ID Hiermee haalt u de id van de assistent op om een query uit te voeren.
timeStampUtc Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z.

Configuratie

De binding ondersteunt deze eigenschappen, die zijn gedefinieerd in uw code:

Eigenschappen Beschrijving
ID Hiermee haalt u de id van de assistent op om een query uit te voeren.
timeStampUtc Optioneel. Hiermee wordt de tijdstempel van het vroegste bericht in de chatgeschiedenis opgehaald of ingesteld. De tijdstempel moet een ISO 8601-indeling hebben, bijvoorbeeld 2023-08-01T00:00:00Z.

Gebruik

Zie de sectie Voorbeeld voor volledige voorbeelden.