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 | 만들 도우미의 식별자입니다. |
지침 | 선택 사항. 도우미가 따라야 할 지침입니다. |
사용
전체 예제는 예제 섹션을 참조하세요.