중요합니다
Azure Functions용 Azure OpenAI 확장은 현재 미리 보기 상태입니다.
Azure OpenAI 의미 체계 검색 입력 바인딩을 사용하면 포함에서 의미 체계 검색을 사용할 수 있습니다.
Azure OpenAI 확장의 설정 및 구성 세부 정보에 대한 자세한 내용은 Azure Functions용 Azure OpenAI 확장을 참조하세요. Azure AI 검색의 의미 체계 순위 지정에 대해 자세히 알아보려면 Azure AI 검색의 의미 체계 순위 지정을 참조하세요.
비고
참조 및 예는 Node.js v4 모델에 대해서만 제공됩니다.
비고
참조 및 예는 Python v2 모델에 대해서만 제공됩니다.
비고
두 C# 프로세스 모델이 모두 지원되지만 격리된 작업자 모델 예제만 제공됩니다.
예시
이 예제에서는 파일에서 의미 체계 검색을 수행하는 방법을 보여줍니다.
[Function("PromptFile")]
public static IActionResult PromptFile(
[HttpTrigger(AuthorizationLevel.Function, "post")] SemanticSearchRequest unused,
[SemanticSearchInput("AISearchEndpoint", "openai-index", Query = "{prompt}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", EmbeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")] SemanticSearchContext result)
{
return new ContentResult { Content = result.Response, ContentType = "text/plain" };
}
이 예제에서는 파일에서 의미 체계 검색을 수행하는 방법을 보여줍니다.
@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<SemanticSearchRequest> request,
@SemanticSearch(name = "search", searchConnectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%", isReasoningModel = false ) String semanticSearchContext,
final ExecutionContext context) {
String response = new JSONObject(semanticSearchContext).getString("Response");
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response)
.build();
}
public class SemanticSearchRequest {
public String prompt;
public String getPrompt() {
return prompt;
}
public void setPrompt(String prompt) {
this.prompt = prompt;
}
}
이 예제에서는 파일에서 의미 체계 검색을 수행하는 방법을 보여줍니다.
const semanticSearchInput = input.generic({
type: "semanticSearch",
connectionName: "AISearchEndpoint",
collection: "openai-index",
query: "{prompt}",
chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});
app.http('PromptFile', {
methods: ['POST'],
authLevel: 'function',
extraInputs: [semanticSearchInput],
handler: async (_request, context) => {
var responseBody = context.extraInputs.get(semanticSearchInput)
return { status: 200, body: responseBody.Response.trim() }
}
});
const semanticSearchInput = input.generic({
type: "semanticSearch",
connectionName: "AISearchEndpoint",
collection: "openai-index",
query: "{prompt}",
chatModel: "%CHAT_MODEL_DEPLOYMENT_NAME%",
embeddingsModel: "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
});
app.http('PromptFile', {
methods: ['POST'],
authLevel: 'function',
extraInputs: [semanticSearchInput],
handler: async (_request, context) => {
var responseBody: any = context.extraInputs.get(semanticSearchInput)
return { status: 200, body: responseBody.Response.trim() }
}
});
이 예제에서는 파일에서 의미 체계 검색을 수행하는 방법을 보여줍니다.
파일 메시지를 표시하는 function.json 파일은 다음과 같습니다.
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "SemanticSearchInput",
"type": "semanticSearch",
"direction": "in",
"searchConnectionName": "AISearchEndpoint",
"collection": "openai-index",
"query": "{prompt}",
"chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
"embeddingsModel": "%EMBEDDING_MODEL_DEPLOYMENT_NAME%"
}
]
}
function.json 파일 속성에 대한 자세한 내용은 구성 섹션을 참조하세요.
using namespace System.Net
param($Request, $TriggerMetadata, $SemanticSearchInput)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $SemanticSearchInput.Response
})
이 예제에서는 파일에서 의미 체계 검색을 수행하는 방법을 보여줍니다.
@app.function_name("PromptFile")
@app.route(methods=["POST"])
@app.semantic_search_input(
arg_name="result",
search_connection_name="AISearchEndpoint",
collection="openai-index",
query="{prompt}",
embeddings_model="%EMBEDDING_MODEL_DEPLOYMENT_NAME%",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def prompt_file(req: func.HttpRequest, result: str) -> func.HttpResponse:
result_json = json.loads(result)
response_json = {
"content": result_json.get("Response"),
"content_type": "text/plain",
}
return func.HttpResponse(
json.dumps(response_json), status_code=200, mimetype="application/json"
)
특성
SemanticSearchInput 특성을 적용하여 다음 매개 변수를 지원하는 의미 체계 검색 입력 바인딩을 정의합니다.
| 매개 변수 | 설명 |
|---|---|
| SearchConnectionName | 연결 문자열 값이 포함된 앱 설정 또는 환경 변수의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 컬렉션 | 검색할 컬렉션, 테이블 또는 인덱스의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 쿼리 | 검색에 사용할 의미 체계 쿼리 텍스트입니다. 이 속성은 바인딩 식을 지원합니다. |
| EmbeddingsModel |
선택 사항입니다. 포함에 사용할 모델의 ID입니다. 기본값은 text-embedding-3-small입니다. 이 속성은 바인딩 식을 지원합니다. |
| ChatModel |
선택 사항입니다. 채팅 응답에 대해 호출할 큰 언어 모델의 이름을 가져오거나 설정합니다. 기본값은 gpt-3.5-turbo입니다. 이 속성은 바인딩 식을 지원합니다. |
| AIConnectionName | 선택 사항입니다. AI 서비스 연결 설정에 대한 구성 섹션의 이름을 가져오거나 설정합니다. Azure OpenAI의 경우: 지정된 경우 이 구성 섹션에서 "엔드포인트" 및 "키" 값을 찾습니다. 지정하지 않았거나 섹션이 없으면 환경 변수(AZURE_OPENAI_ENDPOINT 및 AZURE_OPENAI_KEY)로 바꿉니다. 사용자 할당 관리 ID 인증의 경우 이 속성이 필요합니다. OpenAI 서비스(비 Azure)의 경우 OPENAI_API_KEY 환경 변수를 설정합니다. |
| SystemPrompt |
선택 사항입니다. 큰 언어 모델을 표시하는 데 사용할 시스템 프롬프트를 가져오거나 설정합니다. 시스템 프롬프트에는 .의 Query결과로 가져온 지식이 추가됩니다. 결합된 프롬프트가 OpenAI 채팅 API로 전송됩니다. 이 속성은 바인딩 식을 지원합니다. |
| MaxKnowledgeCount |
선택 사항입니다. 에 삽입 SystemPrompt할 기술 항목 수를 가져오거나 설정합니다. |
| IsReasoningModel |
선택 사항입니다. 채팅 완료 모델이 추론 모델인지 여부를 나타내는 값을 가져오거나 설정합니다. 이 옵션은 실험적이며 모든 모델에 기본값 false이 있는 예상 속성의 패리티가 있을 때까지 추론 모델과 연결됩니다. |
주석
SemanticSearchInput 주석을 사용하면 다음 매개 변수를 지원하는 의미 체계 검색 입력 바인딩을 정의할 수 있습니다.
| 요소 | 설명 |
|---|---|
| 이름 | 입력 바인딩의 이름을 가져오거나 설정합니다. |
| searchConnectionName | 연결 문자열 값이 포함된 앱 설정 또는 환경 변수의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 모음 | 검색할 컬렉션, 테이블 또는 인덱스의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 쿼리 | 검색에 사용할 의미 체계 쿼리 텍스트입니다. 이 속성은 바인딩 식을 지원합니다. |
| embeddingsModel |
선택 사항입니다. 포함에 사용할 모델의 ID입니다. 기본값은 text-embedding-3-small입니다. 이 속성은 바인딩 식을 지원합니다. |
| chatModel |
선택 사항입니다. 채팅 응답에 대해 호출할 큰 언어 모델의 이름을 가져오거나 설정합니다. 기본값은 gpt-3.5-turbo입니다. 이 속성은 바인딩 식을 지원합니다. |
| aiConnectionName | 선택 사항입니다. AI 서비스 연결 설정에 대한 구성 섹션의 이름을 가져오거나 설정합니다. Azure OpenAI의 경우: 지정된 경우 이 구성 섹션에서 "엔드포인트" 및 "키" 값을 찾습니다. 지정하지 않았거나 섹션이 없으면 환경 변수(AZURE_OPENAI_ENDPOINT 및 AZURE_OPENAI_KEY)로 바꿉니다. 사용자 할당 관리 ID 인증의 경우 이 속성이 필요합니다. OpenAI 서비스(비 Azure)의 경우 OPENAI_API_KEY 환경 변수를 설정합니다. |
| systemPrompt |
선택 사항입니다. 큰 언어 모델을 표시하는 데 사용할 시스템 프롬프트를 가져오거나 설정합니다. 시스템 프롬프트에는 .의 Query결과로 가져온 지식이 추가됩니다. 결합된 프롬프트가 OpenAI 채팅 API로 전송됩니다. 이 속성은 바인딩 식을 지원합니다. |
| maxKnowledgeCount |
선택 사항입니다. 에 삽입 SystemPrompt할 기술 항목 수를 가져오거나 설정합니다. |
| isReasoningModel |
선택 사항입니다. 채팅 완료 모델이 추론 모델인지 여부를 나타내는 값을 가져오거나 설정합니다. 이 옵션은 실험적이며 모든 모델에 기본값 false이 있는 예상 속성의 패리티가 있을 때까지 추론 모델과 연결됩니다. |
데코레이터
미리 보기 중에 입력 바인딩을 다음 매개 변수를 지원하는 generic_input_binding 형식의 semanticSearch 바인딩으로 정의합니다.
| 매개 변수 | 설명 |
|---|---|
| arg_name | 바인딩 매개 변수를 나타내는 변수의 이름입니다. |
| search_connection_name | 연결 문자열 값이 포함된 앱 설정 또는 환경 변수의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 모음 | 검색할 컬렉션, 테이블 또는 인덱스의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 쿼리 | 검색에 사용할 의미 체계 쿼리 텍스트입니다. 이 속성은 바인딩 식을 지원합니다. |
| embeddings_model |
선택 사항입니다. 포함에 사용할 모델의 ID입니다. 기본값은 text-embedding-3-small입니다. 이 속성은 바인딩 식을 지원합니다. |
| chat_model |
선택 사항입니다. 채팅 응답에 대해 호출할 큰 언어 모델의 이름을 가져오거나 설정합니다. 기본값은 gpt-3.5-turbo입니다. 이 속성은 바인딩 식을 지원합니다. |
| ai_connection_name | 선택 사항입니다. AI 서비스 연결 설정에 대한 구성 섹션의 이름을 가져오거나 설정합니다. Azure OpenAI의 경우: 지정된 경우 이 구성 섹션에서 "엔드포인트" 및 "키" 값을 찾습니다. 지정하지 않았거나 섹션이 없으면 환경 변수(AZURE_OPENAI_ENDPOINT 및 AZURE_OPENAI_KEY)로 바꿉니다. 사용자 할당 관리 ID 인증의 경우 이 속성이 필요합니다. OpenAI 서비스(비 Azure)의 경우 OPENAI_API_KEY 환경 변수를 설정합니다. |
| system_prompt |
선택 사항입니다. 큰 언어 모델을 표시하는 데 사용할 시스템 프롬프트를 가져오거나 설정합니다. 시스템 프롬프트에는 .의 Query결과로 가져온 지식이 추가됩니다. 결합된 프롬프트가 OpenAI 채팅 API로 전송됩니다. 이 속성은 바인딩 식을 지원합니다. |
| max_knowledge_count |
선택 사항입니다. 에 삽입 SystemPrompt할 기술 항목 수를 가져오거나 설정합니다. |
| is_reasoning _model |
선택 사항입니다. 채팅 완료 모델이 추론 모델인지 여부를 나타내는 값을 가져오거나 설정합니다. 이 옵션은 실험적이며 모든 모델에 기본값 false이 있는 예상 속성의 패리티가 있을 때까지 추론 모델과 연결됩니다. |
구성 / 설정
바인딩은 function.json 파일에 설정한 이러한 구성 속성을 지원합니다.
| 재산 | 설명 |
|---|---|
| 유형 |
semanticSearch이어야 합니다. |
| 방향 |
in이어야 합니다. |
| 이름 | 입력 바인딩의 이름입니다. |
| searchConnectionName | 연결 문자열 값이 포함된 앱 설정 또는 환경 변수의 이름을 가져오거나 설정합니다. 이 속성은 바인딩 식을 지원합니다. |
| 모음 | 검색할 컬렉션, 테이블 또는 인덱스의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 쿼리 | 검색에 사용할 의미 체계 쿼리 텍스트입니다. 이 속성은 바인딩 식을 지원합니다. |
| embeddingsModel |
선택 사항입니다. 포함에 사용할 모델의 ID입니다. 기본값은 text-embedding-3-small입니다. 이 속성은 바인딩 식을 지원합니다. |
| chatModel |
선택 사항입니다. 채팅 응답에 대해 호출할 큰 언어 모델의 이름을 가져오거나 설정합니다. 기본값은 gpt-3.5-turbo입니다. 이 속성은 바인딩 식을 지원합니다. |
| aiConnectionName | 선택 사항입니다. AI 서비스 연결 설정에 대한 구성 섹션의 이름을 가져오거나 설정합니다. Azure OpenAI의 경우: 지정된 경우 이 구성 섹션에서 "엔드포인트" 및 "키" 값을 찾습니다. 지정하지 않았거나 섹션이 없으면 환경 변수(AZURE_OPENAI_ENDPOINT 및 AZURE_OPENAI_KEY)로 바꿉니다. 사용자 할당 관리 ID 인증의 경우 이 속성이 필요합니다. OpenAI 서비스(비 Azure)의 경우 OPENAI_API_KEY 환경 변수를 설정합니다. |
| systemPrompt |
선택 사항입니다. 큰 언어 모델을 표시하는 데 사용할 시스템 프롬프트를 가져오거나 설정합니다. 시스템 프롬프트에는 .의 Query결과로 가져온 지식이 추가됩니다. 결합된 프롬프트가 OpenAI 채팅 API로 전송됩니다. 이 속성은 바인딩 식을 지원합니다. |
| maxKnowledgeCount |
선택 사항입니다. 에 삽입 SystemPrompt할 기술 항목 수를 가져오거나 설정합니다. |
| isReasoningModel |
선택 사항입니다. 채팅 완료 모델이 추론 모델인지 여부를 나타내는 값을 가져오거나 설정합니다. 이 옵션은 실험적이며 모든 모델에 기본값 false이 있는 예상 속성의 패리티가 있을 때까지 추론 모델과 연결됩니다. |
구성 / 설정
바인딩은 코드에 정의된 다음 속성을 지원합니다.
| 재산 | 설명 |
|---|---|
| searchConnectionName | 연결 문자열 값이 포함된 앱 설정 또는 환경 변수의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 모음 | 검색할 컬렉션, 테이블 또는 인덱스의 이름입니다. 이 속성은 바인딩 식을 지원합니다. |
| 쿼리 | 검색에 사용할 의미 체계 쿼리 텍스트입니다. 이 속성은 바인딩 식을 지원합니다. |
| embeddingsModel |
선택 사항입니다. 포함에 사용할 모델의 ID입니다. 기본값은 text-embedding-3-small입니다. 이 속성은 바인딩 식을 지원합니다. |
| chatModel |
선택 사항입니다. 채팅 응답에 대해 호출할 큰 언어 모델의 이름을 가져오거나 설정합니다. 기본값은 gpt-3.5-turbo입니다. 이 속성은 바인딩 식을 지원합니다. |
| aiConnectionName | 선택 사항입니다. AI 서비스 연결 설정에 대한 구성 섹션의 이름을 가져오거나 설정합니다. Azure OpenAI의 경우: 지정된 경우 이 구성 섹션에서 "엔드포인트" 및 "키" 값을 찾습니다. 지정하지 않았거나 섹션이 없으면 환경 변수(AZURE_OPENAI_ENDPOINT 및 AZURE_OPENAI_KEY)로 바꿉니다. 사용자 할당 관리 ID 인증의 경우 이 속성이 필요합니다. OpenAI 서비스(비 Azure)의 경우 OPENAI_API_KEY 환경 변수를 설정합니다. |
| systemPrompt |
선택 사항입니다. 큰 언어 모델을 표시하는 데 사용할 시스템 프롬프트를 가져오거나 설정합니다. 시스템 프롬프트에는 .의 Query결과로 가져온 지식이 추가됩니다. 결합된 프롬프트가 OpenAI 채팅 API로 전송됩니다. 이 속성은 바인딩 식을 지원합니다. |
| maxKnowledgeCount |
선택 사항입니다. 에 삽입 SystemPrompt할 기술 항목 수를 가져오거나 설정합니다. |
| isReasoningModel |
선택 사항입니다. 채팅 완료 모델이 추론 모델인지 여부를 나타내는 값을 가져오거나 설정합니다. 이 옵션은 실험적이며 모든 모델에 기본값 false이 있는 예상 속성의 패리티가 있을 때까지 추론 모델과 연결됩니다. |
사용법
전체 예제는 예제 섹션을 참조하세요.