Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
A extensão do Azure OpenAI para o Funções do Azure 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 Funções do Azure. 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
O suporte Go não está atualmente disponível para esta ligação.
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.
/**
* 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);
}
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.
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))
}
})
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 | Descrição |
|---|---|
| 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. |
Anotações
A AssistantSkillTrigger anotação permite definir um gatilho de assistente, que suporta estes parâmetros:
| Elemento | Descrição |
|---|---|
| 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. |
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 | Descrição |
|---|---|
| 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. |
Configuração
A associação suporta essas propriedades de configuração definidas no arquivo function.json.
| Propriedade | Descrição |
|---|---|
| tipo | 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 modelo de linguagem. |
| 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. |
Configuração
A associação suporta estas propriedades, que são definidas no seu código:
| Propriedade | Descrição |
|---|---|
| tipo | 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. |
Consulte a seção Exemplo para obter exemplos completos.
Utilização
Quando parameterDescriptionJson o valor JSON não é fornecido, ele é gerado automaticamente. Para mais informações sobre a sintaxe deste objeto, consulte a documentação de chamadas de função OpenAI.