這很重要
適用於 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 |
選擇性。 要用於內嵌之模型的標識碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
ChatModel |
選擇性。 取得或設定要針對聊天回應叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
AIConnectionName | 選擇性。 取得或設定 AI 服務連線設定的組態區段名稱。 針對 Azure OpenAI:如果指定,請在此組態區段中尋找「端點」和「金鑰」值。 如果未指定或區段不存在,請回復為環境變數:AZURE_OPENAI_ENDPOINT和AZURE_OPENAI_KEY。 針對使用者指派的受控識別驗證,需要此屬性。 針對OpenAI服務 (非 Azure),請設定OPENAI_API_KEY環境變數。 |
SystemPrompt |
選擇性。 取得或設定系統提示,以用於提示大型語言模型。 系統會附加系統提示,並具有擷取結果 Query 的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
MaxKnowledgeCount |
選擇性。 取得或設定要插入 至 SystemPrompt 的知識項目數目。 |
IsReasoningModel |
選擇性。 取得或設定值,指出聊天完成模型是否為推理模型。 此選項是實驗性的,且與推理模型相關聯,直到所有模型在預期的屬性中具有同位,預設值為 false 。 |
附註
批 SemanticSearchInput
注可讓您定義語意搜尋輸入系結,其支援下列參數:
元素 | 說明 |
---|---|
名字 | 取得或設定輸入繫結的名稱。 |
searchConnectionName | 包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
集合 | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
查詢 | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddingsModel |
選擇性。 要用於內嵌之模型的標識碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chatModel |
選擇性。 取得或設定要針對聊天回應叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
aiConnectionName | 選擇性。 取得或設定 AI 服務連線設定的組態區段名稱。 針對 Azure OpenAI:如果指定,請在此組態區段中尋找「端點」和「金鑰」值。 如果未指定或區段不存在,請回復為環境變數:AZURE_OPENAI_ENDPOINT和AZURE_OPENAI_KEY。 針對使用者指派的受控識別驗證,需要此屬性。 針對OpenAI服務 (非 Azure),請設定OPENAI_API_KEY環境變數。 |
systemPrompt |
選擇性。 取得或設定系統提示,以用於提示大型語言模型。 系統會附加系統提示,並具有擷取結果 Query 的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
maxKnowledgeCount |
選擇性。 取得或設定要插入 至 SystemPrompt 的知識項目數目。 |
isReasoningModel |
選擇性。 取得或設定值,指出聊天完成模型是否為推理模型。 此選項是實驗性的,且與推理模型相關聯,直到所有模型在預期的屬性中具有同位,預設值為 false 。 |
裝飾項目
在預覽期間,將輸入繫結定義為 generic_input_binding
類型的 semanticSearch
繫結,其支援下列參數:
參數 | 說明 |
---|---|
arg_name | 代表繫結參數的變數名稱。 |
search_connection_name | 包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
集合 | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
查詢 | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddings_model |
選擇性。 要用於內嵌之模型的標識碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chat_model |
選擇性。 取得或設定要針對聊天回應叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
ai_connection_name | 選擇性。 取得或設定 AI 服務連線設定的組態區段名稱。 針對 Azure OpenAI:如果指定,請在此組態區段中尋找「端點」和「金鑰」值。 如果未指定或區段不存在,請回復為環境變數:AZURE_OPENAI_ENDPOINT和AZURE_OPENAI_KEY。 針對使用者指派的受控識別驗證,需要此屬性。 針對OpenAI服務 (非 Azure),請設定OPENAI_API_KEY環境變數。 |
system_prompt |
選擇性。 取得或設定系統提示,以用於提示大型語言模型。 系統會附加系統提示,並具有擷取結果 Query 的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
max_knowledge_count |
選擇性。 取得或設定要插入 至 SystemPrompt 的知識項目數目。 |
is_reasoning _model |
選擇性。 取得或設定值,指出聊天完成模型是否為推理模型。 此選項是實驗性的,且與推理模型相關聯,直到所有模型在預期的屬性中具有同位,預設值為 false 。 |
設定
繫結支援您在 function.json 檔案中設定的下列組態屬性。
房產 | 說明 |
---|---|
類型 | 必須是 semanticSearch 。 |
方向 | 必須是 in 。 |
名字 | 輸入繫結的名稱。 |
searchConnectionName | 取得或設定包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
集合 | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
查詢 | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddingsModel |
選擇性。 要用於內嵌之模型的標識碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chatModel |
選擇性。 取得或設定要針對聊天回應叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
aiConnectionName | 選擇性。 取得或設定 AI 服務連線設定的組態區段名稱。 針對 Azure OpenAI:如果指定,請在此組態區段中尋找「端點」和「金鑰」值。 如果未指定或區段不存在,請回復為環境變數:AZURE_OPENAI_ENDPOINT和AZURE_OPENAI_KEY。 針對使用者指派的受控識別驗證,需要此屬性。 針對OpenAI服務 (非 Azure),請設定OPENAI_API_KEY環境變數。 |
systemPrompt |
選擇性。 取得或設定系統提示,以用於提示大型語言模型。 系統會附加系統提示,並具有擷取結果 Query 的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
maxKnowledgeCount |
選擇性。 取得或設定要插入 至 SystemPrompt 的知識項目數目。 |
isReasoningModel |
選擇性。 取得或設定值,指出聊天完成模型是否為推理模型。 此選項是實驗性的,且與推理模型相關聯,直到所有模型在預期的屬性中具有同位,預設值為 false 。 |
設定
繫結支援您在程式碼中定義的下列屬性:
房產 | 說明 |
---|---|
searchConnectionName | 包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
集合 | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
查詢 | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddingsModel |
選擇性。 要用於內嵌之模型的標識碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chatModel |
選擇性。 取得或設定要針對聊天回應叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
aiConnectionName | 選擇性。 取得或設定 AI 服務連線設定的組態區段名稱。 針對 Azure OpenAI:如果指定,請在此組態區段中尋找「端點」和「金鑰」值。 如果未指定或區段不存在,請回復為環境變數:AZURE_OPENAI_ENDPOINT和AZURE_OPENAI_KEY。 針對使用者指派的受控識別驗證,需要此屬性。 針對OpenAI服務 (非 Azure),請設定OPENAI_API_KEY環境變數。 |
systemPrompt |
選擇性。 取得或設定系統提示,以用於提示大型語言模型。 系統會附加系統提示,並具有擷取結果 Query 的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
maxKnowledgeCount |
選擇性。 取得或設定要插入 至 SystemPrompt 的知識項目數目。 |
isReasoningModel |
選擇性。 取得或設定值,指出聊天完成模型是否為推理模型。 此選項是實驗性的,且與推理模型相關聯,直到所有模型在預期的屬性中具有同位,預設值為 false 。 |
用法
如需完整範例,請參閱範例一節。