Azure Functions용 Azure OpenAI 도우미 트리거

Important

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 주석을 사용하면 다음 매개 변수를 지원하는 보조 트리거를 정의할 수 있습니다.

요소 설명
이름 입력 바인딩의 이름을 가져오거나 설정합니다.
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이어야 합니다.
이름 트리거의 이름입니다.
functionName 도우미가 호출하는 함수의 이름을 가져오거나 설정합니다.
functionDescription LLM에 제공되는 보조 함수에 대한 설명 가져오기
parameterDescriptionJson 선택 사항. 모델에 제공되는 함수 매개 변수의 JSON 설명을 가져오거나 설정합니다. 자세한 내용은 사용 방법을 참조하세요.
model 선택 사항. 사용할 OpenAI 채팅 모델 배포를 가져오거나 설정합니다. 기본값은 gpt-3.5-turbo입니다.

구성

바인딩은 코드에 정의된 다음 속성을 지원합니다.

속성 설명
type AssistantSkillTrigger이어야 합니다.
이름 트리거의 이름입니다.
functionName 도우미가 호출하는 함수의 이름을 가져오거나 설정합니다.
functionDescription LLM에 제공되는 보조 함수에 대한 설명 가져오기
parameterDescriptionJson 선택 사항. 모델에 제공되는 함수 매개 변수의 JSON 설명을 가져오거나 설정합니다. 자세한 내용은 사용 방법을 참조하세요.
model 선택 사항. 사용할 OpenAI 채팅 모델 배포를 가져오거나 설정합니다. 기본값은 gpt-3.5-turbo입니다.

전체 예제는 예제 섹션을 참조하세요.

사용

parameterDescriptionJson JSON 값이 제공되지 않으면 자동 생성됩니다. 이 개체의 구문에 대한 자세한 내용은 OpenAI API 설명서를 참조하세요.