Gatilho do assistente do OpenAI do Azure para Azure Functions
Importante
Atualmente, a extensão do OpenAI do Azure para Azure Functions está em versão prévia.
O gatilho do assistente do OpenAI do Azure permite que você execute seu código com base na solicitação de habilidade ou de chatbot personalizado feita a um assistente.
Para obter informações sobre os detalhes de configuração da extensão do OpenAI do Azure, confira Extensões do OpenAI do Azure para Azure Functions. Para saber mais sobre os assistentes do OpenAI do Azure, consulte API de Assistentes do OpenAI do Azure.
Observação
Referências e exemplos só são fornecidos para o modelo do Node.js v4.
Observação
Referências e exemplos só são fornecidos para o modelo do Python v2.
Observação
Embora haja suporte para ambos os modelos de processo C#, apenas exemplos de modelo de trabalho isolados são fornecidos.
Exemplo
Este exemplo demonstra como criar um assistente que adiciona uma nova tarefa pendente a um banco de dados. O gatilho tem uma descrição estática de Create a new todo task
usada pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa a ser adicionada. Quando executada, a função adiciona a tarefa como um novo item pendente em um repositório de itens personalizado e retorna uma resposta do repositório.
[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 pendente a um banco de dados. O gatilho tem uma descrição estática de Create a new todo task
usada pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa a ser adicionada. Quando executada, a função adiciona a tarefa como um novo item pendente em um repositório de itens personalizado e retorna uma resposta do repositório.
@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);
}
Ainda não há exemplos disponíveis.
Este exemplo demonstra como criar um assistente que adiciona uma nova tarefa pendente a um banco de dados. O gatilho tem uma descrição estática de Create a new todo task
usada pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa a ser adicionada. Quando executada, a função adiciona a tarefa como um novo item pendente em um repositório de itens personalizado e retorna uma resposta do repositório.
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 pendente a um banco de dados. O gatilho tem uma descrição estática de Create a new todo task
usada pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa a ser adicionada. Quando executada, a função adiciona a tarefa como um novo item pendente em um repositório de itens personalizado e retorna uma resposta do repositório.
Aqui está o arquivo function.json para Adicionar Todo:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Para obter mais informações sobre as propriedades do arquivo function.json, 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 pendente a um banco de dados. O gatilho tem uma descrição estática de Create a new todo task
usada pelo modelo. A função em si usa uma cadeia de caracteres, que representa uma nova tarefa a ser adicionada. Quando executada, a função adiciona a tarefa como um novo item pendente em um repositório de itens personalizado e retorna uma resposta do repositório.
@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 AssistantSkillTrigger
para definir um gatilho de assistente, que dá suporte a estes parâmetros:
Parâmetro | Descrição |
---|---|
FunctionDescription | Obtém a descrição da função de assistente, que é fornecida para o modelo. |
FunctionName | Opcional. Obtém ou define o nome da função chamada pelo assistente. |
ParameterDescriptionJson | Opcional. Obtém ou define uma descrição JSON do parâmetro de função, que é fornecido para o modelo. Para obter mais informações, confira Uso. |
Modelo | Opcional. Obtém ou define a implantação do modelo de chat do OpenAI a ser usada, com o valor padrão de gpt-3.5-turbo . |
Anotações
A anotação AssistantSkillTrigger
permite que você defina um gatilho de assistente, que dá suporte a estes parâmetros:
Element | Descrição |
---|---|
name | Obtém ou define o nome da associação de entrada. |
functionDescription | Obtém a descrição da função de assistente, que é fornecida para o modelo. |
functionName | Opcional. Obtém ou define o nome da função chamada pelo assistente. |
parameterDescriptionJson | Opcional. Obtém ou define uma descrição JSON do parâmetro de função, que é fornecido para o modelo. Para obter mais informações, confira Uso. |
Modelo | Opcional. Obtém ou define a implantação do modelo de chat do OpenAI a ser usada, com o valor padrão de gpt-3.5-turbo . |
Decoradores
Durante a versão prévia, defina a associação de entrada como uma associação generic_trigger
do tipo assistantSkillTrigger
, que dá suporte a estes parâmetros:
Parâmetro | Descrição |
---|---|
function_description | Obtém a descrição da função de assistente, que é fornecida para o modelo. |
function_name | Opcional. Obtém ou define o nome de uma função chamada pelo assistente. |
parameterDescriptionJson | Opcional. Obtém ou define uma descrição JSON do parâmetro de função, que é fornecido para o modelo. Para obter mais informações, confira Uso. |
Modelo | Opcional. Obtém ou define a implantação do modelo de chat do OpenAI a ser usada, com o valor padrão de gpt-3.5-turbo . |
Configuração
A associação dá suporte a essas propriedades de configuração definidas no arquivo function.json.
Propriedade | Descrição |
---|---|
tipo | Deve ser AssistantSkillTrigger . |
direction | Deve ser in . |
name | O nome do gatilho. |
functionName | Obtém ou define o nome da função chamada pelo assistente. |
functionDescription | Obtém a descrição da função de assistente, que é fornecida para o LLM |
parameterDescriptionJson | Opcional. Obtém ou define uma descrição JSON do parâmetro de função, que é fornecido para o modelo. Para obter mais informações, confira Uso. |
Modelo | Opcional. Obtém ou define a implantação do modelo de chat do OpenAI a ser usada, com o valor padrão de gpt-3.5-turbo . |
Configuração
A associação dá suporte a estas propriedades, que são definidas no código:
Propriedade | Descrição |
---|---|
tipo | Deve ser AssistantSkillTrigger . |
name | O nome do gatilho. |
functionName | Obtém ou define o nome da função chamada pelo assistente. |
functionDescription | Obtém a descrição da função de assistente, que é fornecida para o LLM |
parameterDescriptionJson | Opcional. Obtém ou define uma descrição JSON do parâmetro de função, que é fornecido para o modelo. Para obter mais informações, confira Uso. |
Modelo | Opcional. Obtém ou define a implantação do modelo de chat do OpenAI a ser usada, com o valor padrão de gpt-3.5-turbo . |
Consulte a Seção de exemplo para obter exemplos completos.
Uso
Quando o valor JSON parameterDescriptionJson
não é fornecido, ele é gerado automaticamente. Para obter mais informações sobre a sintaxe desse objeto, confira a documentação da API do OpenAI.