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.