共用方式為


適用於 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 文件 (英文)。