Condividi tramite


Trigger dell'assistente Azure OpenAI per Funzioni di Azure

Importante

L'estensione Azure OpenAI per Funzioni di Azure è attualmente in anteprima.

Il trigger assistente Azure OpenAI consente di eseguire il codice in base a un chatbot personalizzato o a una richiesta di competenza effettuata a un assistente.

Per informazioni sull'installazione e la configurazione dell'estensione Azure OpenAI, vedere Estensioni Azure OpenAI per Funzioni di Azure. Per altre informazioni sugli assistenti OpenAI di Azure, vedere API Assistenti OpenAI di Azure.

Nota

I riferimenti e gli esempi vengono forniti solo per il modello Node.js v4.

Nota

I riferimenti e gli esempi vengono forniti solo per il modello Python v2.

Nota

Anche se sono supportati entrambi i modelli di processo C#, vengono forniti solo esempi di modelli di lavoro isolati.

Esempio

In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.

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

In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.

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

Gli esempi non sono ancora disponibili.

In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.


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

In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.

Ecco il file function.json per Aggiungi todo:

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

Per altre informazioni sulle proprietà dei file function.json, vedere la sezione configurazione.

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

In questo esempio viene illustrato come creare un assistente che aggiunge una nuova attività todo a un database. Il trigger ha una descrizione statica di Create a new todo task utilizzata dal modello. La funzione stessa accetta una stringa, che rappresenta una nuova attività da aggiungere. Quando viene eseguita, la funzione aggiunge l'attività come nuovo elemento todo in un archivio di elementi personalizzato e restituisce una risposta dall'archivio.

@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

Attributi

Applicare l'attributo AssistantSkillTrigger per definire un trigger assistente, che supporta questi parametri:

Parametro Descrizione
FunctionDescription Ottiene la descrizione della funzione assistente, fornita al modello.
FunctionName Facoltativo. Ottiene o imposta il nome della funzione chiamata dall'assistente.
ParameterDescriptionJson Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo.
Modello Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo.

Annotazioni

L'annotazione AssistantSkillTrigger consente di definire un trigger assistente, che supporta questi parametri:

Elemento Descrizione
name Ottiene o imposta il nome del binding di input.
functionDescription Ottiene la descrizione della funzione assistente, fornita al modello.
functionName Facoltativo. Ottiene o imposta il nome della funzione chiamata dall'assistente.
parameterDescriptionJson Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo.
model Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo.

Elementi Decorator

Durante l'anteprima, definire l'associazione di input come associazione generic_trigger di tipo assistantSkillTrigger, che supporta questi parametri:

Parametro Descrizione
function_description Ottiene la descrizione della funzione assistente, fornita al modello.
function_name Facoltativo. Ottiene o imposta il nome di una funzione chiamata dall'assistente.
parameterDescriptionJson Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo.
model Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo.

Impostazione

L'associazione supporta queste proprietà di configurazione impostate nel file function.json.

Proprietà Descrizione
type Deve essere AssistantSkillTrigger.
direction Deve essere in.
name Nome del trigger.
functionName Ottiene o imposta il nome della funzione chiamata dall'assistente.
functionDescription Ottiene la descrizione della funzione assistente, fornita all'LLM
parameterDescriptionJson Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo.
model Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo.

Impostazione

Il binding supporta queste proprietà, definite nel codice:

Proprietà Descrizione
type Deve essere AssistantSkillTrigger.
name Nome del trigger.
functionName Ottiene o imposta il nome della funzione chiamata dall'assistente.
functionDescription Ottiene la descrizione della funzione assistente, fornita all'LLM
parameterDescriptionJson Facoltativo. Ottiene o imposta una descrizione JSON del parametro della funzione, che viene fornita al modello. Per altre informazioni, vedere Utilizzo.
model Facoltativo. Ottiene o imposta la distribuzione del modello di chat OpenAI da usare, con il valore predefinito di gpt-3.5-turbo.

Per esempi completi, vedere la sezione di esempio.

Utilizzo

Quando il valore JSON parameterDescriptionJson non viene specificato, viene generato automaticamente. Per altre informazioni sulla sintassi di questo oggetto, vedere la documentazione dell'API OpenAI.