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


Azure OpenAI-asszisztens eseményindítója az Azure Functionshez

Fontos

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

Az Azure OpenAI-asszisztens eseményindítója lehetővé teszi a kód futtatását az asszisztensnek küldött egyéni csevegőrobot vagy képességkérés alapján.

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, hogyan hozhat létre egy segédet, amely új teendőfeladatot ad hozzá egy adatbázishoz. Az eseményindító a modell által használt statikus leírással Create a new todo task rendelkezik. Maga a függvény egy sztringet vesz fel, amely egy új hozzáadandó feladatot jelöl. A végrehajtáskor a függvény új teendőelemként adja hozzá a feladatot egy egyéni elemtárolóban, és választ ad vissza az áruházból.

[Function(nameof(AddTodo))]
public Task AddTodo([AssistantSkillTrigger("Create a new todo task")] string taskDescription)
{
    if (string.IsNullOrEmpty(taskDescription))
    {
        throw new ArgumentException("Task description cannot be empty");
    }

    this.logger.LogInformation("Adding todo: {task}", taskDescription);

    string todoId = Guid.NewGuid().ToString()[..6];
    return this.todoManager.AddTodoAsync(new TodoItem(todoId, taskDescription));
}

Ez a példa bemutatja, hogyan hozhat létre egy segédet, amely új teendőfeladatot ad hozzá egy adatbázishoz. Az eseményindító a modell által használt statikus leírással Create a new todo task rendelkezik. Maga a függvény egy sztringet vesz fel, amely egy új hozzáadandó feladatot jelöl. A végrehajtáskor a függvény új teendőelemként adja hozzá a feladatot egy egyéni elemtárolóban, és választ ad vissza az áruházból.

/**
 * Called by the assistant to create new todo tasks.
 */
@FunctionName("AddTodo")
public void addTodo(
    @AssistantSkillTrigger(
            name = "assistantSkillCreateTodo",
            functionDescription = "Create a new todo task"
    ) String taskDescription,
    final ExecutionContext context) {

    if (taskDescription == null || taskDescription.isEmpty()) {
        throw new IllegalArgumentException("Task description cannot be empty");
    }
    context.getLogger().info("Adding todo: " + taskDescription);

    String todoId = UUID.randomUUID().toString().substring(0, 6);
    TodoItem todoItem = new TodoItem(todoId, taskDescription);
    todoManager.addTodo(todoItem);
}

Ez a példa bemutatja, hogyan hozhat létre egy segédet, amely új teendőfeladatot ad hozzá egy adatbázishoz. Az eseményindító a modell által használt statikus leírással Create a new todo task rendelkezik. Maga a függvény egy sztringet vesz fel, amely egy új hozzáadandó feladatot jelöl. A végrehajtáskor a függvény új teendőelemként adja hozzá a feladatot egy egyéni elemtárolóban, és választ ad vissza az áruházból.

const { app, trigger } = require("@azure/functions");
const { TodoItem, CreateTodoManager } = require("../services/todoManager");
const { randomUUID } = require('crypto');

const todoManager = CreateTodoManager()

app.generic('AddTodo', {
    trigger: trigger.generic({
        type: 'assistantSkillTrigger',
        functionDescription: 'Create a new todo task'
    }),
    handler: async (taskDescription, context) => {
        if (!taskDescription) {
            throw new Error('Task description cannot be empty')
        }

        context.log(`Adding todo: ${taskDescription}`)

        const todoId = randomUUID().substring(0, 6)
        return todoManager.AddTodo(new TodoItem(todoId, taskDescription))
    }
})
import { InvocationContext, app, trigger } from "@azure/functions"
import { TodoItem, ITodoManager, CreateTodoManager } from "../services/todoManager"
import { randomUUID } from 'crypto';

const todoManager: ITodoManager = CreateTodoManager()

app.generic('AddTodo', {
    trigger: trigger.generic({
        type: 'assistantSkillTrigger',
        functionDescription: 'Create a new todo task'
    }),
    handler: async (taskDescription: string, context: InvocationContext) => {
        if (!taskDescription) {
            throw new Error('Task description cannot be empty')
        }

        context.log(`Adding todo: ${taskDescription}`)

        const todoId = randomUUID().substring(0, 6)
        return todoManager.AddTodo(new TodoItem(todoId, taskDescription))
    }
})

Ez a példa bemutatja, hogyan hozhat létre egy segédet, amely új teendőfeladatot ad hozzá egy adatbázishoz. Az eseményindító a modell által használt statikus leírással Create a new todo task rendelkezik. Maga a függvény egy sztringet vesz fel, amely egy új hozzáadandó feladatot jelöl. A végrehajtáskor a függvény új teendőelemként adja hozzá a feladatot egy egyéni elemtárolóban, és választ ad vissza az áruházból.

Itt található a Todo hozzáadása function.json fájl:

{
  "bindings": [
    {
      "name": "TaskDescription",
      "type": "assistantSkillTrigger",
      "dataType": "string",
      "direction": "in",
      "functionDescription": "Create a new todo task"
    }
  ]
}

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

using namespace System.Net

param($TaskDescription, $TriggerMetadata)
$ErrorActionPreference = "Stop"

if (-not $TaskDescription) {
    throw "Task description cannot be empty"
}

Write-Information "Adding todo: $TaskDescription"
$todoID = [Guid]::NewGuid().ToString().Substring(0, 5)
Add-Todo $todoId $TaskDescription

Ez a példa bemutatja, hogyan hozhat létre egy segédet, amely új teendőfeladatot ad hozzá egy adatbázishoz. Az eseményindító a modell által használt statikus leírással Create a new todo task rendelkezik. Maga a függvény egy sztringet vesz fel, amely egy új hozzáadandó feladatot jelöl. A végrehajtáskor a függvény új teendőelemként adja hozzá a feladatot egy egyéni elemtárolóban, és választ ad vissza az áruházból.

@skills.function_name("AddTodo")
@skills.assistant_skill_trigger(
    arg_name="taskDescription", function_description="Create a new todo task"
)
def add_todo(taskDescription: str) -> None:
    if not taskDescription:
        raise ValueError("Task description cannot be empty")

    logging.info(f"Adding todo: {taskDescription}")

    todo_id = str(uuid.uuid4())[0:6]
    todo_manager.add_todo(TodoItem(id=todo_id, task=taskDescription))
    return

Attribútumok

Alkalmazza az AssistantSkillTrigger attribútumot egy asszisztens-eseményindító definiálására, amely az alábbi paramétereket támogatja:

Paraméter Leírás
FunctionDescription Lekéri a modellnek megadott segédfüggvény leírását.
FunctionName Választható. Lekéri vagy beállítja az asszisztens által hívott függvény nevét.
ParameterDescriptionJson Választható. Lekéri vagy beállítja a modellnek megadott függvényparaméter JSON-leírását. További információ: Használat.

Jegyzetek

A AssistantSkillTrigger széljegyzet lehetővé teszi egy asszisztensi eseményindító 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.
functionDescription Lekéri a modellnek megadott segédfüggvény leírását.
functionName Választható. Lekéri vagy beállítja az asszisztens által hívott függvény nevét.
parameterDescriptionJson Választható. Lekéri vagy beállítja a modellnek megadott függvényparaméter JSON-leírását. További információ: Használat.

Dekorátorok

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

Paraméter Leírás
function_description Lekéri a modellnek megadott segédfüggvény leírását.
function_name Választható. Lekéri vagy beállítja az asszisztens által hívott függvény nevét.
parameterDescriptionJson Választható. Lekéri vagy beállítja a modellnek megadott függvényparaméter JSON-leírását. További információ: Használat.

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 AssistantSkillTrigger.
irány Kell lennie in.
név Az eseményindító neve.
functionName Lekéri vagy beállítja az asszisztens által hívott függvény nevét.
functionDescription Lekéri a nyelvi modellhez megadott segédfüggvény leírását.
parameterDescriptionJson Választható. Lekéri vagy beállítja a modellnek megadott függvényparaméter JSON-leírását. További információ: Használat.

Konfiguráció

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

Tulajdonság Leírás
típus Kell lennie AssistantSkillTrigger.
név Az eseményindító neve.
functionName Lekéri vagy beállítja az asszisztens által hívott függvény nevét.
functionDescription Lekéri a segédfüggvény leírását, amely az LLM-nek van megadva
parameterDescriptionJson Választható. Lekéri vagy beállítja a modellnek megadott függvényparaméter JSON-leírását. További információ: Használat.

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

Használat

Ha parameterDescriptionJson a JSON-érték nincs megadva, automatikusan létre lesz hozva. Az objektum szintaxisával kapcsolatos további információkért tekintse meg az OpenAI API dokumentációját.