適用於 Azure Functions 的 Azure OpenAI 助理觸發程序
重要
適用於 Azure Functions 的 Azure OpenAI 延伸模組目前為預覽狀態。
Azure OpenAI 助理觸發程序可讓您根據對助理提出的自訂聊天機器人或技能要求來執行程式碼。
如需 Azure OpenAI 延伸模組的安裝和設定詳細資訊,請參閱適用於 Azure Functions 的 Azure OpenAI 延伸模組。 若要深入了解 Azure OpenAI 助理,請參閱 Azure OpenAI 助理 API。
注意
參考和範例僅適用於 Node.js v4 模型。
注意
參考和範例僅適用於 Python v2 模型。
注意
雖然支援這兩個 C# 進程模型,但只會 提供隔離的背景工作模型 範例。
範例
此範例示範如何建立助理,將新的待辦工作新增至資料庫。 觸發程序具有模型所使用的 Create a new todo task
靜態描述。 函式本身會採用字串,表示要加入的新工作。 執行時,函式會將工作新增為自訂項目存放區中的新待辦事項項目,並從存放區傳回回應。
[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));
}
此範例示範如何建立助理,將新的待辦工作新增至資料庫。 觸發程序具有模型所使用的 Create a new todo task
靜態描述。 函式本身會採用字串,表示要加入的新工作。 執行時,函式會將工作新增為自訂項目存放區中的新待辦事項項目,並從存放區傳回回應。
@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);
}
尚未提供範例。
此範例示範如何建立助理,將新的待辦工作新增至資料庫。 觸發程序具有模型所使用的 Create a new todo task
靜態描述。 函式本身會採用字串,表示要加入的新工作。 執行時,函式會將工作新增為自訂項目存放區中的新待辦事項項目,並從存放區傳回回應。
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))
}
此範例示範如何建立助理,將新的待辦工作新增至資料庫。 觸發程序具有模型所使用的 Create a new todo task
靜態描述。 函式本身會採用字串,表示要加入的新工作。 執行時,函式會將工作新增為自訂項目存放區中的新待辦事項項目,並從存放區傳回回應。
以下是 新增 Todo 的 function.json檔案:
{
"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
此範例示範如何建立助理,將新的待辦工作新增至資料庫。 觸發程序具有模型所使用的 Create a new todo task
靜態描述。 函式本身會採用字串,表示要加入的新工作。 執行時,函式會將工作新增為自訂項目存放區中的新待辦事項項目,並從存放區傳回回應。
@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 | 取得提供給模型的助理函式描述。 |
FunctionName | 選擇性。 取得或設定助理所呼叫之函式的名稱。 |
ParameterDescriptionJson | 選擇性。 取得或設定提供給模型的函式參數之 JSON 描述。 如需詳細資訊,請參閱使用方式。 |
模型 | 選擇性。 取得或設定要使用的 OpenAI 聊天模型部署,預設值為 gpt-3.5-turbo 。 |
註釋
AssistantSkillTrigger
註釋可讓您定義助理觸發程序,其支援下列參數:
元素 | 描述 |
---|---|
name | 取得或設定輸入繫結的名稱。 |
functionDescription | 取得提供給模型的助理函式描述。 |
functionName | 選擇性。 取得或設定助理所呼叫之函式的名稱。 |
parameterDescriptionJson | 選擇性。 取得或設定提供給模型的函式參數之 JSON 描述。 如需詳細資訊,請參閱使用方式。 |
model | 選擇性。 取得或設定要使用的 OpenAI 聊天模型部署,預設值為 gpt-3.5-turbo 。 |
裝飾項目
在預覽期間,將輸入繫結定義為 assistantSkillTrigger
類型的 generic_trigger
繫結,其支援下列參數:
參數 | 描述 |
---|---|
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 值,則會自動產生。 如需此物件語法的詳細資訊,請參閱 OpenAI API 文件 (英文)。