Dela via


Azure OpenAI Semantic Search-indatabindning för Azure Functions

Viktigt!

Azure OpenAI-tillägget för Azure Functions är för närvarande i förhandsversion.

Med bindningen för semantisk sökning i Azure OpenAI kan du använda semantisk sökning i dina inbäddningar.

Information om konfiguration och konfigurationsinformation för Azure OpenAI-tillägget finns i Azure OpenAI-tillägg för Azure Functions. Mer information om semantisk rankning i Azure AI Search finns i Semantisk rankning i Azure AI Search.

Kommentar

Referenser och exempel tillhandahålls endast för modellen Node.js v4.

Kommentar

Referenser och exempel tillhandahålls endast för Python v2-modellen.

Kommentar

Båda C#-processmodellerna stöds, men endast exempel på isolerade arbetsmodeller tillhandahålls.

Exempel

Det här exemplet visar hur du utför en semantisk sökning på en fil.

        HttpResponse = new OkObjectResult(new { status = HttpStatusCode.OK }),
        SearchableDocument = new SearchableDocument(filename)
    };
}

public class EmbeddingsStoreOutputResponse
{
    [EmbeddingsStoreOutput("{url}", InputType.Url, "AISearchEndpoint", "openai-index", Model = "%EMBEDDING_MODEL_DEPLOYMENT_NAME%")]

Det här exemplet visar hur du utför en semantisk sökning på en fil.

        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");

Det här exemplet visar hur du utför en semantisk sökning på en fil.

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() }
    }
});

Det här exemplet visar hur du utför en semantisk sökning på en fil.

Här är function.json-filen för att fråga en fil:

{
  "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%"
    }
  ]
}

Mer information om function.json filegenskaper finns i avsnittet Konfiguration .

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
        StatusCode = [HttpStatusCode]::OK
        Body       = $SemanticSearchInput.Response
    })

Exempel är ännu inte tillgängliga.

Attribut

SemanticSearchInput Använd attributet för att definiera en semantisk sökindatabindning som stöder följande parametrar:

Parameter beskrivning
ConnectionName Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck.
Samling Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck.
Fråga Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck.
EmbeddingsModel ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck.
ChatModel Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck.
SystemPrompt Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck.
MaxKnowledgeCount Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i .

Kommentarer

Med anteckningen SemanticSearchInput kan du definiera en semantisk sökindatabindning som stöder följande parametrar:

Element Description
Namn Hämtar eller anger namnet på indatabindningen.
connectionName Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck.
samling Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck.
fråga Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck.
embeddingsModel ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck.
chatModel Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck.
systemPrompt Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck.
maxKnowledgeCount Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i .

Dekoratörer

Under förhandsversionen definierar du indatabindningen som en generic_input_binding bindning av typen semanticSearch, som stöder följande parametrar:

Parameter Description
arg_name Namnet på variabeln som representerar bindningsparametern.
connection_name Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck.
samling Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck.
fråga Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck.
embeddings_model ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck.
chat_model Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck.
system_prompt Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck.
max_knowledge_count Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i .

Konfiguration

Bindningen stöder de konfigurationsegenskaper som du anger i filen function.json.

Property Beskrivning
typ Måste vara semanticSearch.
riktning Måste vara in.
Namn Namnet på indatabindningen.
connectionName Hämtar eller anger namnet på en appinställning eller miljövariabel som innehåller ett anslutningssträng värde. Den här egenskapen stöder bindningsuttryck.
samling Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck.
fråga Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck.
embeddingsModel ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck.
chatModel Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck.
systemPrompt Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck.
maxKnowledgeCount Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i .

Konfiguration

Bindningen stöder dessa egenskaper, som definieras i koden:

Property beskrivning
connectionName Namnet på en appinställning eller miljövariabel som innehåller värdet anslutningssträng. Den här egenskapen stöder bindningsuttryck.
samling Namnet på samlingen eller tabellen eller indexet som ska sökas. Den här egenskapen stöder bindningsuttryck.
fråga Den semantiska frågetext som ska användas för sökning. Den här egenskapen stöder bindningsuttryck.
embeddingsModel ID:t för modellen som ska användas för inbäddningar. Standardvärdet är text-embedding-3-small. Den här egenskapen stöder bindningsuttryck.
chatModel Hämtar eller anger namnet på den stora språkmodellen som ska anropas för chattsvar. Standardvärdet är gpt-3.5-turbo. Den här egenskapen stöder bindningsuttryck.
systemPrompt Valfritt. Hämtar eller ställer in systemprompten som ska användas för att fråga den stora språkmodellen. Systemprompten läggs till med kunskap som hämtas som ett resultat av Query. Den kombinerade prompten skickas till OpenAI Chat-API:et. Den här egenskapen stöder bindningsuttryck.
maxKnowledgeCount Valfritt. Hämtar eller anger antalet kunskapsobjekt som ska matas SystemPromptin i .

Förbrukning

Se avsnittet Exempel för fullständiga exempel.