Sdílet prostřednictvím


Trigger pomocníka Azure OpenAI pro Azure Functions

Důležité

Rozšíření Azure OpenAI pro Azure Functions je aktuálně ve verzi Preview.

Trigger pomocníka Azure OpenAI umožňuje spustit kód na základě vlastního chatovacího robota nebo žádosti o dovednosti vytvořené asistentem.

Informace o nastavení a konfiguraci rozšíření Azure OpenAI najdete v tématu Rozšíření Azure OpenAI pro Azure Functions. Další informace o asistentech Azure OpenAI najdete v tématu Rozhraní API pomocníků Azure OpenAI.

Poznámka:

Odkazy a příklady jsou k dispozici pouze pro model Node.js v4.

Poznámka:

Odkazy a příklady jsou k dispozici pouze pro model Pythonu v2.

Poznámka:

I když jsou podporovány oba modely procesu jazyka C#, jsou k dispozici pouze příklady izolovaného modelu pracovního procesu .

Příklad

Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.

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

Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.

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

Příklady ještě nejsou k dispozici.

Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.


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

Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.

Tady je soubor function.json pro přidání todo:

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

Další informace o function.json vlastnosti souboru naleznete v části Konfigurace .

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

Tento příklad ukazuje, jak vytvořit asistenta, který do databáze přidá nový úkol úkolů. Trigger má statický popis Create a new todo task používaný modelem. Samotná funkce přebírá řetězec, který představuje nový úkol, který se má přidat. Po spuštění funkce přidá úkol jako novou položku úkolu do vlastního úložiště položek a vrátí odpověď z úložiště.

@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

Atributy

Pomocí atributu AssistantSkillTrigger definujte trigger asistenta, který podporuje tyto parametry:

Parametr Popis
FunctionDescription Získá popis funkce asistenta, která je poskytována modelu.
FunctionName Volitelné. Získá nebo nastaví název funkce volaného asistentem.
ParametrDescriptionJson Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití.
Model Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo.

Poznámky

Poznámka AssistantSkillTrigger umožňuje definovat trigger pomocníka, který podporuje tyto parametry:

Element (Prvek) Popis
Jméno Získá nebo nastaví název vstupní vazby.
functionDescription Získá popis funkce asistenta, která je poskytována modelu.
functionName Volitelné. Získá nebo nastaví název funkce volaného asistentem.
parameterDescriptionJson Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití.
model Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo.

Dekoratéry

Během náhledu definujte vstupní vazbu jako generic_trigger vazbu typu assistantSkillTrigger, která podporuje tyto parametry:

Parametr Popis
function_description Získá popis funkce asistenta, která je poskytována modelu.
function_name Volitelné. Získá nebo nastaví název funkce volanou asistentem.
parameterDescriptionJson Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití.
model Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo.

Konfigurace

Vazba podporuje tyto vlastnosti konfigurace, které jste nastavili v souboru function.json.

Vlastnost Popis
type Musí být AssistantSkillTrigger.
direction Musí být in.
Jméno Název triggeru.
functionName Získá nebo nastaví název funkce volaného asistentem.
functionDescription Získá popis funkce asistenta, která je poskytována LLM
parameterDescriptionJson Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití.
model Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo.

Konfigurace

Vazba podporuje tyto vlastnosti, které jsou definovány v kódu:

Vlastnost Popis
type Musí být AssistantSkillTrigger.
Jméno Název triggeru.
functionName Získá nebo nastaví název funkce volaného asistentem.
functionDescription Získá popis funkce asistenta, která je poskytována LLM
parameterDescriptionJson Volitelné. Získá nebo nastaví json popis parametru funkce, který je poskytnut modelu. Další informace najdete v tématu Využití.
model Volitelné. Získá nebo nastaví nasazení modelu chatu OpenAI pro použití s výchozí hodnotou gpt-3.5-turbo.

Kompletní příklady najdete v části Příklad.

Využití

Pokud parameterDescriptionJson není zadaná hodnota JSON, automaticky se vygeneruje. Další informace o syntaxi tohoto objektu najdete v dokumentaci k rozhraní OpenAI API.