共用方式為


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 的知識項目數目。

使用方式

如需完整範例,請參閱範例一節。