Триггер помощника по Azure OpenAI для Функции Azure
Внимание
Расширение Azure OpenAI для Функции Azure в настоящее время находится в предварительной версии.
Триггер помощника По Azure OpenAI позволяет запускать код на основе пользовательского чат-бота или запроса навыка, сделанного помощнику.
Сведения о настройке и настройке расширения Azure OpenAI см. в Функции Azure расширения Azure OpenAI. Дополнительные сведения о помощниках По Azure OpenAI см. в api Azure OpenAI Assistants.
Примечание.
Ссылки и примеры предоставляются только для модели Node.js версии 4.
Примечание.
Ссылки и примеры предоставляются только для модели Python версии 2.
Примечание.
Хотя поддерживаются обе модели процессов C#, предоставляются только примеры изолированных рабочих моделей .
Пример
В этом примере показано, как создать помощник, который добавляет новую задачу todo в базу данных. Триггер содержит статическое описание, используемое Create a new todo task
моделью. Сама функция принимает строку, представляющую новую задачу для добавления. При выполнении функция добавляет задачу в качестве нового элемента todo в пользовательском хранилище элементов и возвращает ответ из хранилища.
[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));
}
В этом примере показано, как создать помощник, который добавляет новую задачу todo в базу данных. Триггер содержит статическое описание, используемое Create a new todo task
моделью. Сама функция принимает строку, представляющую новую задачу для добавления. При выполнении функция добавляет задачу в качестве нового элемента todo в пользовательском хранилище элементов и возвращает ответ из хранилища.
@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);
}
В этом примере показано, как создать помощник, который добавляет новую задачу todo в базу данных. Триггер содержит статическое описание, используемое Create a new todo task
моделью. Сама функция принимает строку, представляющую новую задачу для добавления. При выполнении функция добавляет задачу в качестве нового элемента todo в пользовательском хранилище элементов и возвращает ответ из хранилища.
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))
}
В этом примере показано, как создать помощник, который добавляет новую задачу todo в базу данных. Триггер содержит статическое описание, используемое Create a new todo task
моделью. Сама функция принимает строку, представляющую новую задачу для добавления. При выполнении функция добавляет задачу в качестве нового элемента todo в пользовательском хранилище элементов и возвращает ответ из хранилища.
Ниже приведен файл function.json для добавления todo:
{
"bindings": [
{
"name": "TaskDescription",
"type": "assistantSkillTrigger",
"dataType": "string",
"direction": "in",
"functionDescription": "Create a new todo task"
}
]
}
Дополнительные сведения о свойствах файла function.json см. в разделе "Конфигурация ".
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
В этом примере показано, как создать помощник, который добавляет новую задачу todo в базу данных. Триггер содержит статическое описание, используемое Create a new todo task
моделью. Сама функция принимает строку, представляющую новую задачу для добавления. При выполнении функция добавляет задачу в качестве нового элемента todo в пользовательском хранилище элементов и возвращает ответ из хранилища.
@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
Атрибуты
Примените атрибут для AssistantSkillTrigger
определения триггера помощника, который поддерживает следующие параметры:
Параметр | Описание |
---|---|
FunctionDescription | Возвращает описание функции помощника, которая предоставляется модели. |
Имя функции | Необязательно. Возвращает или задает имя функции, вызываемой помощником. |
ParameterDescriptionJson | Необязательно. Возвращает или задает описание JSON параметра функции, который предоставляется модели. Дополнительные сведения см. в разделе "Использование". |
Модель |
Необязательно. Возвращает или задает используемое развертывание модели чата OpenAI со значением gpt-3.5-turbo по умолчанию. |
Заметки
Заметка AssistantSkillTrigger
позволяет определить триггер помощника, который поддерживает следующие параметры:
Элемент | Description |
---|---|
name | Возвращает или задает имя входной привязки. |
functionDescription | Возвращает описание функции помощника, которая предоставляется модели. |
functionName | Необязательно. Возвращает или задает имя функции, вызываемой помощником. |
parameterDescriptionJson | Необязательно. Возвращает или задает описание JSON параметра функции, который предоставляется модели. Дополнительные сведения см. в разделе "Использование". |
model |
Необязательно. Возвращает или задает используемое развертывание модели чата OpenAI со значением gpt-3.5-turbo по умолчанию. |
Декораторы
Во время предварительной версии определите входную привязку как привязку generic_trigger
типа assistantSkillTrigger
, которая поддерживает следующие параметры:
Параметр | Описание |
---|---|
function_description | Возвращает описание функции помощника, которая предоставляется модели. |
function_name | Необязательно. Возвращает или задает имя функции, вызываемой помощником. |
parameterDescriptionJson | Необязательно. Возвращает или задает описание JSON параметра функции, который предоставляется модели. Дополнительные сведения см. в разделе "Использование". |
model |
Необязательно. Возвращает или задает используемое развертывание модели чата OpenAI со значением gpt-3.5-turbo по умолчанию. |
Настройка
Привязка поддерживает эти свойства конфигурации, заданные в файле function.json.
Свойство | Описание |
---|---|
type | Этот параметр должен содержать значение AssistantSkillTrigger . |
direction | Этот параметр должен содержать значение in . |
name | Имя триггера. |
functionName | Возвращает или задает имя функции, вызываемой помощником. |
functionDescription | Возвращает описание функции помощника, которая предоставляется LLM |
parameterDescriptionJson | Необязательно. Возвращает или задает описание JSON параметра функции, который предоставляется модели. Дополнительные сведения см. в разделе "Использование". |
model |
Необязательно. Возвращает или задает используемое развертывание модели чата OpenAI со значением gpt-3.5-turbo по умолчанию. |
Настройка
Привязка поддерживает эти свойства, определенные в коде:
Свойство | Описание |
---|---|
type | Этот параметр должен содержать значение AssistantSkillTrigger . |
name | Имя триггера. |
functionName | Возвращает или задает имя функции, вызываемой помощником. |
functionDescription | Возвращает описание функции помощника, которая предоставляется LLM |
parameterDescriptionJson | Необязательно. Возвращает или задает описание JSON параметра функции, который предоставляется модели. Дополнительные сведения см. в разделе "Использование". |
model |
Необязательно. Возвращает или задает используемое развертывание модели чата OpenAI со значением gpt-3.5-turbo по умолчанию. |
Подробные примеры см. в разделе Примеры.
Использование
Если parameterDescriptionJson
значение JSON не указано, оно создается автоматически. Дополнительные сведения о синтаксисе этого объекта см. в документации по API OpenAI.