Freigeben über


Azure OpenAI-Assistent zum Erstellen einer Ausgabebindung für Azure Functions

Wichtig

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

Mithilfe des Azure OpenAI-Assistenten zum Erstellen einer Ausgabebindung können Sie bei der Ausführung von Funktionscode einen neuen Assistenten-Chatbot erstellen.

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 PUT-Funktion einen neuen Assistenten-Chatbot mit der angegebenen ID erstellt. Die Antwort auf die Eingabeaufforderung wird in der HTTP-Antwort zurückgegeben.

/// HTTP PUT function that creates a new assistant chat bot with the specified ID.
/// </summary>
[Function(nameof(CreateAssistant))]
public static async Task<CreateChatBotOutput> CreateAssistant(
    [HttpTrigger(AuthorizationLevel.Anonymous, "put", Route = "assistants/{assistantId}")] HttpRequestData req,
    string assistantId)
{
    string instructions =
       """
        Don't make assumptions about what values to plug into functions.
        Ask for clarification if a user request is ambiguous.
        """;

    using StreamReader reader = new(req.Body);

    string request = await reader.ReadToEndAsync();


    return new CreateChatBotOutput
    {
        HttpResponse = new ObjectResult(new { assistantId }) { StatusCode = 202 },
        ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
        {
            ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
            CollectionName = DefaultCollectionName,
        },

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP PUT-Funktion einen neuen Assistenten-Chatbot mit der angegebenen ID erstellt. Die Antwort auf die Eingabeaufforderung wird in der HTTP-Antwort zurückgegeben.

 * account
 * where chat data will be stored.
 */
String DEFAULT_CHATSTORAGE = "AzureWebJobsStorage";

/**
 * The default collection name for the table storage account.
 * This constant is used to specify the collection name for the table storage
 * account
 * where chat data will be stored.
 */
String DEFAULT_COLLECTION = "ChatState";

/*
 * HTTP PUT function that creates a new assistant chat bot with the specified ID.
 */
@FunctionName("CreateAssistant")
public HttpResponseMessage createAssistant(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.PUT}, 
        authLevel = AuthorizationLevel.ANONYMOUS, 
        route = "assistants/{assistantId}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("assistantId") String assistantId,
    @AssistantCreate(name = "AssistantCreate") OutputBinding<AssistantCreateRequest> message,

Beispiele sind noch nicht verfügbar.

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP PUT-Funktion einen neuen Assistenten-Chatbot mit der angegebenen ID erstellt. Die Antwort auf die Eingabeaufforderung wird in der HTTP-Antwort zurückgegeben.

const COLLECTION_NAME = "ChatState";

const chatBotCreateOutput = output.generic({
    type: 'assistantCreate'
})
app.http('CreateAssistant', {
    methods: ['PUT'],
    route: 'assistants/{assistantId}',
    authLevel: 'anonymous',
    extraOutputs: [chatBotCreateOutput],
    handler: async (request: HttpRequest, context: InvocationContext) => {
        const assistantId = request.params.assistantId
        const instructions =
            `
            Don't make assumptions about what values to plug into functions.
            Ask for clarification if a user request is ambiguous.
            `
        const createRequest = {
            id: assistantId,
            instructions: instructions,
            chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
            collectionName: COLLECTION_NAME
        }

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP PUT-Funktion einen neuen Assistenten-Chatbot mit der angegebenen ID erstellt. Die Antwort auf die Eingabeaufforderung wird in der HTTP-Antwort zurückgegeben.

Dies ist die function.json Datei für den Assistenten zum Erstellen:

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "assistants/{assistantId}",
      "methods": [
        "put"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "type": "assistantCreate",
      "direction": "out",
      "dataType": "string",
      "name": "Requests"
    }
  ]
}

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

{{Dies stammt aus dem Beispielcodekommentar}}

using namespace System.Net

param($Request, $TriggerMetadata)

$assistantId = $Request.params.assistantId

$instructions = "Don't make assumptions about what values to plug into functions."
$instructions += "\nAsk for clarification if a user request is ambiguous."

$create_request = @{
    "id" = $assistantId
    "instructions" = $instructions
    "chatStorageConnectionSetting" = "AzureWebJobsStorage"
    "collectionName" = "ChatState"
}

Push-OutputBinding -Name Requests -Value (ConvertTo-Json $create_request)

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

In diesem Beispiel wird der Erstellungsprozess veranschaulicht, bei dem die HTTP PUT-Funktion einen neuen Assistenten-Chatbot mit der angegebenen ID erstellt. Die Antwort auf die Eingabeaufforderung wird in der HTTP-Antwort zurückgegeben.

DEFAULT_CHAT_COLLECTION_NAME = "ChatState"

@apis.function_name("CreateAssistant")
@apis.route(route="assistants/{assistantId}", methods=["PUT"])
@apis.assistant_create_output(arg_name="requests")
def create_assistant(req: func.HttpRequest, requests: func.Out[str]) -> func.HttpResponse:
    assistantId = req.route_params.get("assistantId")
    instructions = """
            Don't make assumptions about what values to plug into functions.
            Ask for clarification if a user request is ambiguous.
            """
    create_request = {
        "id": assistantId,
        "instructions": instructions,
        "chatStorageConnectionSetting": DEFAULT_CHAT_STORAGE_SETTING,
        "collectionName": DEFAULT_CHAT_COLLECTION_NAME

Attribute

Wenden Sie das Attribut CreateAssistant an, um einen Assistenten zum Erstellen einer Ausgabebindung zu definieren, der diese Parameter unterstützt:

Parameter Beschreibung
Id Der Bezeichner des Assistenten, der erstellt werden soll.
Anweisungen Optional. Die Anweisungen an den Assistenten, die befolgt werden sollen.

Anmerkungen

Mit der Anmerkung CreateAssistant können Sie einen Assistenten zum Erstellen einer Ausgabebindung definieren, der diese Parameter unterstützt:

Element BESCHREIBUNG
name Ruft den Namen der Ausgabebindung ab oder legt ihn fest.
id Der Bezeichner des Assistenten, der erstellt werden soll.
instructions Optional. Die Anweisungen an den Assistenten, die befolgt werden sollen.

Decorator-Elemente

Definieren Sie während der Vorschau die Ausgabebindung als Bindung generic_output_binding vom Typ createAssistant, die diese Parameter unterstützt:

Parameter Beschreibung
arg_name Der Name der Variablen, die den Bindungsparameter darstellt.
id Der Bezeichner des Assistenten, der erstellt werden soll.
instructions Optional. Die Anweisungen an den Assistenten, die befolgt werden sollen.

Konfiguration

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

Eigenschaft Beschreibung des Dataflows
type Muss CreateAssistantlauten.
direction Muss outlauten.
name Der Name der Ausgabebindung.
id Der Bezeichner des Assistenten, der erstellt werden soll.
instructions Optional. Die Anweisungen an den Assistenten, die befolgt werden sollen.

Konfiguration

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

Eigenschaft BESCHREIBUNG
id Der Bezeichner des Assistenten, der erstellt werden soll.
instructions Optional. Die Anweisungen an den Assistenten, die befolgt werden sollen.

Verbrauch

Vollständige Beispiele finden Sie im Abschnitt Beispiele.