다음을 통해 공유


Azure OpenAI 도우미가 Azure Functions에 대한 출력 바인딩을 만듦

Important

Azure Functions용 Azure OpenAI 확장은 현재 미리 보기 상태입니다.

Azure OpenAI 도우미 만들기 출력 바인딩을 사용하면 함수 코드 실행에서 새 도우미 챗봇을 만들 수 있습니다.

Azure OpenAI 확장의 설정 및 구성 세부 정보에 대한 자세한 내용은 Azure Functions용 Azure OpenAI 확장을 참조하세요. Azure OpenAI 도우미에 대해 자세히 알아보려면 Azure OpenAI 도우미 API를 참조하세요.

참고 항목

참조 및 예는 Node.js v4 모델에 대해서만 제공됩니다.

참고 항목

참조 및 예는 Python v2 모델에 대해서만 제공됩니다.

참고 항목

두 C# 프로세스 모델이 모두 지원되지만 격리된 작업자 모델 예제만 제공됩니다.

예시

이 예에서는 지정된 ID를 사용하여 새로운 보조 챗봇을 만드는 HTTP PUT 함수가 있는 만들기 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.

/// HTTP PUT function that creates a new assistant chat bot with the specified ID.
/// </summary>
[Function(nameof(CreateAssistant))]
public static async Task<CreateChatBotOutput> CreateAssistant(
    [HttpTrigger(AuthorizationLevel.Anonymous, "put", Route = "assistants/{assistantId}")] HttpRequestData req,
    string assistantId)
{
    string instructions =
       """
        Don't make assumptions about what values to plug into functions.
        Ask for clarification if a user request is ambiguous.
        """;

    using StreamReader reader = new(req.Body);

    string request = await reader.ReadToEndAsync();


    return new CreateChatBotOutput
    {
        HttpResponse = new ObjectResult(new { assistantId }) { StatusCode = 202 },
        ChatBotCreateRequest = new AssistantCreateRequest(assistantId, instructions)
        {
            ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting,
            CollectionName = DefaultCollectionName,
        },

이 예에서는 지정된 ID를 사용하여 새로운 보조 챗봇을 만드는 HTTP PUT 함수가 있는 만들기 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.

 * account
 * where chat data will be stored.
 */
String DEFAULT_CHATSTORAGE = "AzureWebJobsStorage";

/**
 * The default collection name for the table storage account.
 * This constant is used to specify the collection name for the table storage
 * account
 * where chat data will be stored.
 */
String DEFAULT_COLLECTION = "ChatState";

/*
 * HTTP PUT function that creates a new assistant chat bot with the specified ID.
 */
@FunctionName("CreateAssistant")
public HttpResponseMessage createAssistant(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.PUT}, 
        authLevel = AuthorizationLevel.ANONYMOUS, 
        route = "assistants/{assistantId}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("assistantId") String assistantId,
    @AssistantCreate(name = "AssistantCreate") OutputBinding<AssistantCreateRequest> message,

예는 아직 제공되지 않습니다.

이 예에서는 지정된 ID를 사용하여 새로운 보조 챗봇을 만드는 HTTP PUT 함수가 있는 만들기 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.

const COLLECTION_NAME = "ChatState";

const chatBotCreateOutput = output.generic({
    type: 'assistantCreate'
})
app.http('CreateAssistant', {
    methods: ['PUT'],
    route: 'assistants/{assistantId}',
    authLevel: 'anonymous',
    extraOutputs: [chatBotCreateOutput],
    handler: async (request: HttpRequest, context: InvocationContext) => {
        const assistantId = request.params.assistantId
        const instructions =
            `
            Don't make assumptions about what values to plug into functions.
            Ask for clarification if a user request is ambiguous.
            `
        const createRequest = {
            id: assistantId,
            instructions: instructions,
            chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
            collectionName: COLLECTION_NAME
        }

이 예에서는 지정된 ID를 사용하여 새로운 보조 챗봇을 만드는 HTTP PUT 함수가 있는 만들기 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.

Create Assistant에 대한 function.json 파일은 다음과 같습니다.

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "assistants/{assistantId}",
      "methods": [
        "put"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "type": "assistantCreate",
      "direction": "out",
      "dataType": "string",
      "name": "Requests"
    }
  ]
}

function.json 파일 속성에 대한 자세한 내용은 구성 섹션을 참조하세요.

{{예제 코드 주석에서 가져옵니다}}

using namespace System.Net

param($Request, $TriggerMetadata)

$assistantId = $Request.params.assistantId

$instructions = "Don't make assumptions about what values to plug into functions."
$instructions += "\nAsk for clarification if a user request is ambiguous."

$create_request = @{
    "id" = $assistantId
    "instructions" = $instructions
    "chatStorageConnectionSetting" = "AzureWebJobsStorage"
    "collectionName" = "ChatState"
}

Push-OutputBinding -Name Requests -Value (ConvertTo-Json $create_request)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::Accepted
    Body       = (ConvertTo-Json @{ "assistantId" = $assistantId})
    Headers    = @{
        "Content-Type" = "application/json"
    }
})

이 예에서는 지정된 ID를 사용하여 새로운 보조 챗봇을 만드는 HTTP PUT 함수가 있는 만들기 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.

DEFAULT_CHAT_COLLECTION_NAME = "ChatState"

@apis.function_name("CreateAssistant")
@apis.route(route="assistants/{assistantId}", methods=["PUT"])
@apis.assistant_create_output(arg_name="requests")
def create_assistant(req: func.HttpRequest, requests: func.Out[str]) -> func.HttpResponse:
    assistantId = req.route_params.get("assistantId")
    instructions = """
            Don't make assumptions about what values to plug into functions.
            Ask for clarification if a user request is ambiguous.
            """
    create_request = {
        "id": assistantId,
        "instructions": instructions,
        "chatStorageConnectionSetting": DEFAULT_CHAT_STORAGE_SETTING,
        "collectionName": DEFAULT_CHAT_COLLECTION_NAME

특성

CreateAssistant 특성을 적용하여 다음 매개 변수를 지원하는 도우미 만들기 출력 바인딩을 정의합니다.

매개 변수 설명
ID 만들 도우미의 식별자입니다.
지침 선택 사항. 도우미가 따라야 할 지침입니다.

주석

CreateAssistant 주석을 사용하면 다음 매개 변수를 지원하는 도우미 만들기 출력 바인딩을 정의할 수 있습니다.

요소 설명
이름 출력 바인딩의 이름을 가져오거나 설정합니다.
id 만들 도우미의 식별자입니다.
지침 선택 사항. 도우미가 따라야 할 지침입니다.

데코레이터

미리 보기 중에 출력 바인딩을 다음 매개 변수를 지원하는 createAssistant 형식의 generic_output_binding 바인딩으로 정의합니다.

매개 변수 설명
arg_name 바인딩 매개 변수를 나타내는 변수의 이름입니다.
id 만들 도우미의 식별자입니다.
지침 선택 사항. 도우미가 따라야 할 지침입니다.

구성

바인딩은 function.json 파일에 설정한 이러한 구성 속성을 지원합니다.

속성 설명
type CreateAssistant이어야 합니다.
direction out이어야 합니다.
이름 출력 바인딩의 이름입니다.
id 만들 도우미의 식별자입니다.
지침 선택 사항. 도우미가 따라야 할 지침입니다.

구성

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

속성 Description
id 만들 도우미의 식별자입니다.
지침 선택 사항. 도우미가 따라야 할 지침입니다.

사용

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