중요합니다
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에 대한 정적 설명이 있습니다. 함수 자체는 추가할 새 작업을 나타내는 문자열을 사용합니다. 함수가 실행되면 사용자 지정 항목 저장소에 작업을 새 할일 항목으로 추가하고 저장소에서 응답을 반환합니다.
/**
* Called by the assistant to create new todo tasks.
*/
@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에 대한 정적 설명이 있습니다. 함수 자체는 추가할 새 작업을 나타내는 문자열을 사용합니다. 함수가 실행되면 사용자 지정 항목 저장소에 작업을 새 할일 항목으로 추가하고 저장소에서 응답을 반환합니다.
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))
}
})
이 예에서는 데이터베이스에 새 할일 작업을 추가하는 도우미를 만드는 방법을 보여 줍니다. 트리거에는 모델에서 사용하는 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 설명을 가져오거나 설정합니다. 자세한 내용은 사용 방법을 참조하세요. |
주석
AssistantSkillTrigger 주석을 사용하면 다음 매개 변수를 지원하는 보조 트리거를 정의할 수 있습니다.
| 요소 | 설명 |
|---|---|
| 이름 | 입력 바인딩의 이름을 가져오거나 설정합니다. |
| functionDescription | 모델에 제공되는 보조 함수에 대한 설명을 가져옵니다. |
| functionName | 선택 사항. 도우미가 호출하는 함수의 이름을 가져오거나 설정합니다. |
| parameterDescriptionJson | 선택 사항. 모델에 제공되는 함수 매개 변수의 JSON 설명을 가져오거나 설정합니다. 자세한 내용은 사용 방법을 참조하세요. |
데코레이터
미리 보기 중에 입력 바인딩을 다음 매개 변수를 지원하는 generic_trigger 형식의 assistantSkillTrigger 바인딩으로 정의합니다.
| 매개 변수 | 설명 |
|---|---|
| function_description | 모델에 제공되는 보조 함수에 대한 설명을 가져옵니다. |
| function_name | 선택 사항. 도우미가 호출하는 함수의 이름을 가져오거나 설정합니다. |
| parameterDescriptionJson | 선택 사항. 모델에 제공되는 함수 매개 변수의 JSON 설명을 가져오거나 설정합니다. 자세한 내용은 사용 방법을 참조하세요. |
구성
바인딩은 function.json 파일에 설정한 이러한 구성 속성을 지원합니다.
| 속성 | 설명 |
|---|---|
| 유형 |
AssistantSkillTrigger이어야 합니다. |
| 방향 |
in이어야 합니다. |
| 이름 | 트리거의 이름입니다. |
| functionName | 도우미가 호출하는 함수의 이름을 가져오거나 설정합니다. |
| functionDescription | 언어 모델에 제공되는 도우미 함수에 대한 설명을 가져옵니다. |
| parameterDescriptionJson | 선택 사항. 모델에 제공되는 함수 매개 변수의 JSON 설명을 가져오거나 설정합니다. 자세한 내용은 사용 방법을 참조하세요. |
구성
바인딩은 코드에 정의된 다음 속성을 지원합니다.
| 속성 | 설명 |
|---|---|
| 유형 |
AssistantSkillTrigger이어야 합니다. |
| 이름 | 트리거의 이름입니다. |
| functionName | 도우미가 호출하는 함수의 이름을 가져오거나 설정합니다. |
| functionDescription | LLM에 제공되는 보조 함수에 대한 설명 가져오기 |
| parameterDescriptionJson | 선택 사항. 모델에 제공되는 함수 매개 변수의 JSON 설명을 가져오거나 설정합니다. 자세한 내용은 사용 방법을 참조하세요. |
전체 예제는 예제 섹션을 참조하세요.
사용
parameterDescriptionJson JSON 값이 제공되지 않으면 자동 생성됩니다. 이 개체의 구문에 대한 자세한 내용은 OpenAI API 설명서를 참조하세요.