Megosztás a következőn keresztül:


Azure OpenAI assistant lekérdezésbemeneti kötés az Azure Functionshez

Fontos

Az Azure Functions Azure OpenAI bővítménye jelenleg előzetes verzióban érhető el.

Az Azure OpenAI Assistant lekérdezésbemeneti kötése lehetővé teszi, hogy integrálja az Assistants API-lekérdezéseket a kódvégrehajtásokba.

Az Azure OpenAI-bővítmény beállítási és konfigurációs részleteiről további információt az Azure Functions Azure OpenAI-bővítményeivel kapcsolatban talál. További információ az Azure OpenAI-asszisztensekről: Azure OpenAI Assistants API.

Feljegyzés

A referenciák és példák csak a Node.js v4-modellhez vannak megadva.

Feljegyzés

A hivatkozások és példák csak a Python v2-modellhez vannak megadva.

Feljegyzés

Bár mindkét C#-folyamatmodell támogatott, csak izolált feldolgozómodell-példák állnak rendelkezésre.

Példa

Ez a példa bemutatja a létrehozási folyamatot, ahol a HTTP GET függvény lekérdezi az asszisztens csevegőrobot beszélgetési előzményeit. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

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

Ez a példa bemutatja a létrehozási folyamatot, ahol a HTTP GET függvény lekérdezi az asszisztens csevegőrobot beszélgetési előzményeit. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

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

Ez a példa bemutatja a létrehozási folyamatot, ahol a HTTP GET függvény lekérdezi az asszisztens csevegőrobot beszélgetési előzményeit. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

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

Ez a példa bemutatja a létrehozási folyamatot, ahol a HTTP GET függvény lekérdezi az asszisztens csevegőrobot beszélgetési előzményeit. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

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

Ez a példa bemutatja a létrehozási folyamatot, ahol a HTTP GET függvény lekérdezi az asszisztens csevegőrobot beszélgetési előzményeit. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

Az alábbi function.json fájl a csevegési állapot lekéréséhez:

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

A function.json fájltulajdonságokról a Konfiguráció szakaszban talál további információt.

using namespace System.Net

param($Request, $TriggerMetadata, $State)

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

Ez a példa bemutatja a létrehozási folyamatot, ahol a HTTP GET függvény lekérdezi az asszisztens csevegőrobot beszélgetési előzményeit. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

@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")

Attribútumok

Alkalmazza az AssistantQuery attribútumot egy segéd lekérdezés bemeneti kötésének meghatározására, amely támogatja az alábbi paramétereket:

Paraméter Leírás
Azonosító Lekéri a lekérdezendő asszisztens azonosítóját.
TimeStampUtc Választható. Lekéri vagy beállítja a csevegési előzményekben szereplő legkorábbi üzenet időbélyegét. Az időbélyegnek ISO 8601 formátumban kell lennie – például 2023-08-01T00:00:00Z formátumban.

Jegyzetek

A assistantQuery széljegyzet lehetővé teszi egy segéd lekérdezés bemeneti kötésének definiálását, amely az alábbi paramétereket támogatja:

Elem Leírás
név Lekéri vagy beállítja a bemeneti kötés nevét.
azonosító Lekéri a lekérdezendő asszisztens azonosítóját.
timeStampUtc Választható. Lekéri vagy beállítja a csevegési előzményekben szereplő legkorábbi üzenet időbélyegét. Az időbélyegnek ISO 8601 formátumban kell lennie – például 2023-08-01T00:00:00Z formátumban.

Dekorátorok

Az előzetes verzióban adja meg a bemeneti kötést típuskötésként generic_input_bindingassistantQuery, amely támogatja az alábbi paramétereket:

Paraméter Leírás
arg_name A kötési paramétert képviselő változó neve.
azonosító Lekéri a lekérdezendő asszisztens azonosítóját.
time_stamp_utc Választható. Lekéri vagy beállítja a csevegési előzményekben szereplő legkorábbi üzenet időbélyegét. Az időbélyegnek ISO 8601 formátumban kell lennie – például 2023-08-01T00:00:00Z formátumban.

Konfiguráció

A kötés támogatja a function.json fájlban beállított konfigurációs tulajdonságokat.

Tulajdonság Leírás
típus Kell lennie assistantQuery.
irány Kell lennie in.
név A bemeneti kötés neve.
azonosító Lekéri a lekérdezendő asszisztens azonosítóját.
timeStampUtc Választható. Lekéri vagy beállítja a csevegési előzményekben szereplő legkorábbi üzenet időbélyegét. Az időbélyegnek ISO 8601 formátumban kell lennie – például 2023-08-01T00:00:00Z formátumban.

Konfiguráció

A kötés támogatja ezeket a tulajdonságokat, amelyek a kódban vannak definiálva:

Tulajdonság Leírás
azonosító Lekéri a lekérdezendő asszisztens azonosítóját.
timeStampUtc Választható. Lekéri vagy beállítja a csevegési előzményekben szereplő legkorábbi üzenet időbélyegét. Az időbélyegnek ISO 8601 formátumban kell lennie – például 2023-08-01T00:00:00Z formátumban.

Használat

A teljes példákért tekintse meg a Példa szakaszt .