Azure Functions 的 Azure OpenAI 語意搜尋輸入系結
重要
適用於 Azure Functions 的 Azure OpenAI 延伸模組目前為預覽狀態。
Azure OpenAI 語意搜尋輸入繫結可讓您對內嵌使用語意搜尋。
如需 Azure OpenAI 延伸模組的安裝和設定詳細資訊,請參閱適用於 Azure Functions 的 Azure OpenAI 延伸模組。 若要深入了解 Azure AI 搜尋中的語意排名,請參閱 Azure AI 搜尋中的語意排名。
注意
參考和範例僅適用於 Node.js v4 模型。
注意
參考和範例僅適用於 Python v2 模型。
注意
雖然支援這兩個 C# 進程模型,但只會 提供隔離的背景工作模型 範例。
範例
此範例示範如何在檔案上執行語意搜尋。
public class EmbeddingsStoreOutputResponse
{
[EmbeddingsStoreOutput("{url}", InputType.Url, "AISearchEndpoint", "openai-index", Model = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")]
public required SearchableDocument SearchableDocument { get; init; }
public IActionResult? HttpResponse { get; set; }
}
此範例示範如何在檔案上執行語意搜尋。
return searchableDocument;
}
}
@FunctionName("PromptFile")
public HttpResponseMessage promptFile(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<SemanticSearchRequest> request,
@SemanticSearch(name = "search", connectionName = "AISearchEndpoint", collection = "openai-index", query = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", embeddingsModel = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%" ) String semanticSearchContext,
final ExecutionContext context) {
String response = new JSONObject(semanticSearchContext).getString("Response");
尚未提供範例。
此範例示範如何在檔案上執行語意搜尋。
type: 'embeddings',
maxChunkLength: 512,
model: '%EMBEDDING_MODEL_DEPLOYMENT_NAME%'
})
app.http('getEmbeddingsFilePath', {
methods: ['POST'],
route: 'embeddings-from-file',
authLevel: 'function',
extraInputs: [embeddingsFilePathInput],
handler: async (request, context) => {
let requestBody: EmbeddingsFilePath = await request.json();
let response: any = context.extraInputs.get(embeddingsFilePathInput);
context.log(
`Received ${response.count} embedding(s) for input file ${requestBody.FilePath}.`
);
// TODO: Store the embeddings into a database or other storage.
此範例示範如何在檔案上執行語意搜尋。
以下是 提示檔案的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",
"connectionName": "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
})
尚未提供範例。
屬性
套用 SemanticSearchInput
屬性來定義語意搜尋輸入繫結,其支援下列參數:
參數 | 描述 |
---|---|
ConnectionName | 包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
集合 | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
查詢 | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
EmbeddingsModel | 要用於內嵌的模型識別碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
ChatModel | 取得或設定聊天回應要叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
SystemPrompt | 選擇性。 取得或設定用於提示大型語言模型的系統提示。 系統提示會附加透過 Query 擷取的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
MaxKnowledgeCount | 選擇性。 取得或設定要插入至 SystemPrompt 的知識項目數目。 |
註釋
SemanticSearchInput
註釋可讓您定義語意搜尋輸入繫結,其支援下列參數:
元素 | 描述 |
---|---|
name | 取得或設定輸入繫結的名稱。 |
connectionName | 包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
collection | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
query | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddingsModel | 要用於內嵌的模型識別碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chatModel | 取得或設定聊天回應要叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
systemPrompt | 選擇性。 取得或設定用於提示大型語言模型的系統提示。 系統提示會附加透過 Query 擷取的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
maxKnowledgeCount | 選擇性。 取得或設定要插入至 SystemPrompt 的知識項目數目。 |
裝飾項目
在預覽期間,將輸入繫結定義為 semanticSearch
類型的 generic_input_binding
繫結,其支援下列參數:
參數 | 描述 |
---|---|
arg_name | 代表繫結參數的變數名稱。 |
connection_name | 包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
collection | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
query | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddings_model | 要用於內嵌的模型識別碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chat_model | 取得或設定聊天回應要叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
system_prompt | 選擇性。 取得或設定用於提示大型語言模型的系統提示。 系統提示會附加透過 Query 擷取的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
max_knowledge_count | 選擇性。 取得或設定要插入至 SystemPrompt 的知識項目數目。 |
組態
繫結支援您在 function.json 檔案中設定的下列組態屬性。
屬性 | 描述 |
---|---|
type | 必須是 semanticSearch 。 |
direction | 必須是 in 。 |
name | 輸入繫結的名稱。 |
connectionName | 取得或設定包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
collection | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
query | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddingsModel | 要用於內嵌的模型識別碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chatModel | 取得或設定聊天回應要叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
systemPrompt | 選擇性。 取得或設定用於提示大型語言模型的系統提示。 系統提示會附加透過 Query 擷取的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
maxKnowledgeCount | 選擇性。 取得或設定要插入至 SystemPrompt 的知識項目數目。 |
組態
繫結支援您在程式碼中定義的下列屬性:
屬性 | 說明 |
---|---|
connectionName | 包含連接字串值的應用程式設定或環境變數名稱。 此屬性支援繫結運算式。 |
collection | 要搜尋的集合、資料表或索引名稱。 此屬性支援繫結運算式。 |
query | 要用於搜尋的語意查詢文字。 此屬性支援繫結運算式。 |
embeddingsModel | 要用於內嵌的模型識別碼。 預設值是 text-embedding-3-small 。 此屬性支援繫結運算式。 |
chatModel | 取得或設定聊天回應要叫用的大型語言模型名稱。 預設值是 gpt-3.5-turbo 。 此屬性支援繫結運算式。 |
systemPrompt | 選擇性。 取得或設定用於提示大型語言模型的系統提示。 系統提示會附加透過 Query 擷取的知識。 合併的提示會傳送至 OpenAI 聊天 API。 此屬性支援繫結運算式。 |
maxKnowledgeCount | 選擇性。 取得或設定要插入至 SystemPrompt 的知識項目數目。 |
使用方式
如需完整範例,請參閱範例一節。