Partilhar via


Gatilho do assistente do Azure OpenAI para o Azure Functions

Importante

A extensão do Azure OpenAI para o Azure Functions está atualmente em visualização.

O gatilho do assistente do Azure OpenAI permite executar seu código com base no bot de chat personalizado ou na solicitação de habilidade feita a um assistente.

Para obter informações sobre detalhes de instalação e configuração da extensão do Azure OpenAI, consulte Extensões do Azure OpenAI para Azure Functions. Para saber mais sobre os assistentes do Azure OpenAI, consulte Azure OpenAI Assistants API.

Nota

Referências e exemplos são fornecidos apenas para o modelo Node.js v4.

Nota

Referências e exemplos são fornecidos apenas para o modelo Python v2.

Nota

Embora ambos os modelos de processo C# sejam suportados, apenas exemplos de modelos de trabalho isolados são fornecidos.

Exemplo

Este exemplo demonstra como criar um assistente que adiciona uma nova tarefa todo a um banco de dados. O gatilho tem uma descrição estática do Create a new todo task usado pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa para adicionar. Quando executada, a função adiciona a tarefa como um novo item todo em um repositório de itens personalizado e retorna uma resposta do armazenamento.

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

Este exemplo demonstra como criar um assistente que adiciona uma nova tarefa todo a um banco de dados. O gatilho tem uma descrição estática do Create a new todo task usado pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa para adicionar. Quando executada, a função adiciona a tarefa como um novo item todo em um repositório de itens personalizado e retorna uma resposta do armazenamento.

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

Os exemplos ainda não estão disponíveis.

Este exemplo demonstra como criar um assistente que adiciona uma nova tarefa todo a um banco de dados. O gatilho tem uma descrição estática do Create a new todo task usado pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa para adicionar. Quando executada, a função adiciona a tarefa como um novo item todo em um repositório de itens personalizado e retorna uma resposta do armazenamento.


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

Este exemplo demonstra como criar um assistente que adiciona uma nova tarefa todo a um banco de dados. O gatilho tem uma descrição estática do Create a new todo task usado pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa para adicionar. Quando executada, a função adiciona a tarefa como um novo item todo em um repositório de itens personalizado e retorna uma resposta do armazenamento.

Aqui está o arquivo function.json para Add Todo:

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

Para obter mais informações sobre function.json propriedades do arquivo, consulte a seção Configuração .

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

Este exemplo demonstra como criar um assistente que adiciona uma nova tarefa todo a um banco de dados. O gatilho tem uma descrição estática do Create a new todo task usado pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa para adicionar. Quando executada, a função adiciona a tarefa como um novo item todo em um repositório de itens personalizado e retorna uma resposta do armazenamento.

@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

Atributos

Aplique o atributo para definir um gatilho AssistantSkillTrigger de assistente, que suporta estes parâmetros:

Parâmetro Description
FunçãoDescrição Obtém a descrição da função de assistente, que é fornecida ao modelo.
Nome da função Opcional. Obtém ou define o nome da função chamada pelo assistente.
ParâmetroDescriçãoJson Opcional. Obtém ou define uma descrição JSON do parâmetro function, que é fornecida ao modelo. Para obter mais informações, consulte Uso.
Modelo Opcional. Obtém ou define a implantação do modelo de chat OpenAI a ser usada, com um valor padrão de gpt-3.5-turbo.

Anotações

A AssistantSkillTrigger anotação permite definir um gatilho de assistente, que suporta estes parâmetros:

Elemento Description
Designação Obtém ou define o nome da ligação de entrada.
funçãoDescrição Obtém a descrição da função de assistente, que é fornecida ao modelo.
nome_da_função Opcional. Obtém ou define o nome da função chamada pelo assistente.
parâmetroDescriptionJson Opcional. Obtém ou define uma descrição JSON do parâmetro function, que é fornecida ao modelo. Para obter mais informações, consulte Uso.
modelo Opcional. Obtém ou define a implantação do modelo de chat OpenAI a ser usada, com um valor padrão de gpt-3.5-turbo.

Decoradores

Durante a visualização, defina a ligação de entrada como uma generic_trigger associação do tipo assistantSkillTrigger, que suporta estes parâmetros:

Parâmetro Description
function_description Obtém a descrição da função de assistente, que é fornecida ao modelo.
function_name Opcional. Obtém ou define o nome de uma função chamada pelo assistente.
parâmetroDescriptionJson Opcional. Obtém ou define uma descrição JSON do parâmetro function, que é fornecida ao modelo. Para obter mais informações, consulte Uso.
modelo Opcional. Obtém ou define a implantação do modelo de chat OpenAI a ser usada, com um valor padrão de gpt-3.5-turbo.

Configuração

A associação suporta essas propriedades de configuração definidas no arquivo function.json.

Property Descrição
type Deve ser AssistantSkillTrigger.
direção Deve ser in.
Designação O nome do gatilho.
nome_da_função Obtém ou define o nome da função chamada pelo assistente.
funçãoDescrição Obtém a descrição da função de assistente, que é fornecida ao LLM
parâmetroDescriptionJson Opcional. Obtém ou define uma descrição JSON do parâmetro function, que é fornecida ao modelo. Para obter mais informações, consulte Uso.
modelo Opcional. Obtém ou define a implantação do modelo de chat OpenAI a ser usada, com um valor padrão de gpt-3.5-turbo.

Configuração

A associação suporta estas propriedades, que são definidas no seu código:

Property Descrição
type Deve ser AssistantSkillTrigger.
Designação O nome do gatilho.
nome_da_função Obtém ou define o nome da função chamada pelo assistente.
funçãoDescrição Obtém a descrição da função de assistente, que é fornecida ao LLM
parâmetroDescriptionJson Opcional. Obtém ou define uma descrição JSON do parâmetro function, que é fornecida ao modelo. Para obter mais informações, consulte Uso.
modelo Opcional. Obtém ou define a implantação do modelo de chat OpenAI a ser usada, com um valor padrão de gpt-3.5-turbo.

Consulte a seção Exemplo para obter exemplos completos.

Utilização

Quando parameterDescriptionJson o valor JSON não é fornecido, ele é gerado automaticamente. Para obter mais informações sobre a sintaxe deste objeto, consulte a documentação da API OpenAI.