중요합니다
Azure Functions용 Azure OpenAI 확장은 현재 미리 보기 상태입니다.
Azure OpenAI 도우미 쿼리 입력 바인딩을 사용하면 Assistants API 쿼리를 코드 실행에 통합할 수 있습니다.
Azure OpenAI 확장의 설정 및 구성 세부 정보에 대한 자세한 내용은 Azure Functions용 Azure OpenAI 확장을 참조하세요. Azure OpenAI 도우미에 대해 자세히 알아보려면 Azure OpenAI 도우미 API를 참조하세요.
참고 항목
참조 및 예는 Node.js v4 모델에 대해서만 제공됩니다.
참고 항목
참조 및 예는 Python v2 모델에 대해서만 제공됩니다.
참고 항목
두 C# 프로세스 모델이 모두 지원되지만 격리된 작업자 모델 예제만 제공됩니다.
예시
이 예제에서는 도우미 챗봇의 대화 기록을 쿼리하는 HTTP GET 함수를 만드는 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.
/// <summary>
/// HTTP GET function that queries the conversation history of the assistant chat bot.
/// </summary>
[Function(nameof(GetChatState))]
public static IActionResult GetChatState(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantQueryInput("{assistantId}", TimestampUtc = "{Query.timestampUTC}", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
{
return new OkObjectResult(state);
}
이 예제에서는 도우미 챗봇의 대화 기록을 쿼리하는 HTTP GET 함수를 만드는 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.
/*
* HTTP GET function that queries the conversation history of the assistant chat bot.
*/
@FunctionName("GetChatState")
public HttpResponseMessage getChatState(
@HttpTrigger(
name = "req",
methods = {HttpMethod.GET},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantQuery(name = "AssistantState", id = "{assistantId}", timestampUtc = "{Query.timestampUTC}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
final ExecutionContext context) {
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(state)
.build();
}
이 예제에서는 도우미 챗봇의 대화 기록을 쿼리하는 HTTP GET 함수를 만드는 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.
const { app, input, output } = require("@azure/functions");
const chatBotQueryInput = input.generic({
type: 'assistantQuery',
id: '{assistantId}',
timestampUtc: '{Query.timestampUTC}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
methods: ['GET'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [chatBotQueryInput],
handler: async (_, context) => {
const state = context.extraInputs.get(chatBotQueryInput)
return { status: 200, jsonBody: state }
}
})
이 예제에서는 도우미 챗봇의 대화 기록을 쿼리하는 HTTP GET 함수를 만드는 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.
import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"
const chatBotQueryInput = input.generic({
type: 'assistantQuery',
id: '{assistantId}',
timestampUtc: '{Query.timestampUTC}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('GetChatState', {
methods: ['GET'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [chatBotQueryInput],
handler: async (_, context) => {
const state: any = context.extraInputs.get(chatBotQueryInput)
return { status: 200, jsonBody: state }
}
})
이 예제에서는 도우미 챗봇의 대화 기록을 쿼리하는 HTTP GET 함수를 만드는 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.
채팅 상태 가져오기에 대한 function.json 파일은 다음과 같습니다.
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "assistants/{assistantId}",
"methods": [
"get"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "State",
"type": "assistantQuery",
"direction": "in",
"dataType": "string",
"id": "{assistantId}",
"timestampUtc": "{Query.timestampUTC}",
"chatStorageConnectionSetting": "AzureWebJobsStorage",
"collectionName": "ChatState"
}
]
}
function.json 파일 속성에 대한 자세한 내용은 구성 섹션을 참조하세요.
using namespace System.Net
param($Request, $TriggerMetadata, $State)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $State
Headers = @{
"Content-Type" = "application/json"
}
})
이 예제에서는 도우미 챗봇의 대화 기록을 쿼리하는 HTTP GET 함수를 만드는 프로세스를 보여 줍니다. 프롬프트에 대한 응답은 HTTP 응답으로 반환됩니다.
@apis.function_name("GetChatState")
@apis.route(route="assistants/{assistantId}", methods=["GET"])
@apis.assistant_query_input(
arg_name="state",
id="{assistantId}",
timestamp_utc="{Query.timestampUTC}",
chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def get_chat_state(req: func.HttpRequest, state: str) -> func.HttpResponse:
return func.HttpResponse(state, status_code=200, mimetype="application/json")
특성
AssistantQuery 특성을 적용하여 이러한 매개 변수를 지원하는 도우미 쿼리 입력 바인딩을 정의합니다.
| 매개 변수 | 설명 |
|---|---|
| ID | 쿼리할 도우미의 ID를 가져옵니다. |
| 타임스탬프UTC | 선택 사항. 가져올 채팅 기록에서 가장 빠른 메시지의 타임스탬프를 페치하거나 설정합니다. 타임스탬프는 ISO 8601 형식(예: 2023-08-01T00:00:00Z)이어야 합니다. |
주석
assistantQuery 주석을 사용하면 이러한 매개 변수를 지원하는 도우미 쿼리 입력 바인딩을 정의할 수 있습니다.
| 요소 | 설명 |
|---|---|
| 이름 | 입력 바인딩의 이름을 가져오거나 설정합니다. |
| 아이디 | 쿼리할 도우미의 ID를 가져옵니다. |
| 타임스탬프Utc | 선택 사항. 가져올 채팅 기록에서 가장 빠른 메시지의 타임스탬프를 페치하거나 설정합니다. 타임스탬프는 ISO 8601 형식(예: 2023-08-01T00:00:00Z)이어야 합니다. |
데코레이터
미리 보기 중에 입력 바인딩을 다음 매개 변수를 지원하는 generic_input_binding 형식의 assistantQuery 바인딩으로 정의합니다.
| 매개 변수 | 설명 |
|---|---|
| arg_name | 바인딩 매개 변수를 나타내는 변수의 이름입니다. |
| 아이디 | 쿼리할 도우미의 ID를 가져옵니다. |
| time_stamp_utc | 선택 사항. 가져올 채팅 기록에서 가장 빠른 메시지의 타임스탬프를 페치하거나 설정합니다. 타임스탬프는 ISO 8601 형식(예: 2023-08-01T00:00:00Z)이어야 합니다. |
구성
바인딩은 function.json 파일에 설정한 이러한 구성 속성을 지원합니다.
| 속성 | 설명 |
|---|---|
| 유형 |
assistantQuery이어야 합니다. |
| 방향 |
in이어야 합니다. |
| 이름 | 입력 바인딩의 이름입니다. |
| 아이디 | 쿼리할 도우미의 ID를 가져옵니다. |
| 타임스탬프Utc | 선택 사항. 가져올 채팅 기록에서 가장 빠른 메시지의 타임스탬프를 페치하거나 설정합니다. 타임스탬프는 ISO 8601 형식(예: 2023-08-01T00:00:00Z)이어야 합니다. |
구성
바인딩은 코드에 정의된 다음 속성을 지원합니다.
| 속성 | 설명 |
|---|---|
| 아이디 | 쿼리할 도우미의 ID를 가져옵니다. |
| 타임스탬프Utc | 선택 사항. 가져올 채팅 기록에서 가장 빠른 메시지의 타임스탬프를 페치하거나 설정합니다. 타임스탬프는 ISO 8601 형식(예: 2023-08-01T00:00:00Z)이어야 합니다. |
사용
전체 예제는 예제 섹션을 참조하세요.