Sdílet prostřednictvím


Vstupní vazba sémantického vyhledávání Azure OpenAI pro Azure Functions

Důležité

Rozšíření Azure OpenAI pro Azure Functions je aktuálně ve verzi Preview.

Vstupní vazba sémantického vyhledávání Azure OpenAI umožňuje použít sémantické vyhledávání ve vložených možnostech.

Informace o nastavení a konfiguraci rozšíření Azure OpenAI najdete v tématu Rozšíření Azure OpenAI pro Azure Functions. Další informace o sémantickém řazení ve službě Azure AI Search najdete v tématu Sémantické řazení ve službě Azure AI Search.

Poznámka:

Odkazy a příklady jsou k dispozici pouze pro model Node.js v4.

Poznámka:

Odkazy a příklady jsou k dispozici pouze pro model Pythonu v2.

Poznámka:

I když jsou podporovány oba modely procesu jazyka C#, jsou k dispozici pouze příklady izolovaného modelu pracovního procesu .

Příklad

Tento příklad ukazuje, jak provést sémantické vyhledávání v souboru.


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

Tento příklad ukazuje, jak provést sémantické vyhledávání v souboru.

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

Příklady ještě nejsou k dispozici.

Tento příklad ukazuje, jak provést sémantické vyhledávání v souboru.

    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.

Tento příklad ukazuje, jak provést sémantické vyhledávání v souboru.

Tady je soubor function.json pro zobrazení výzvy k zadání souboru:

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

Další informace o function.json vlastnosti souboru naleznete v části Konfigurace .

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Příklady ještě nejsou k dispozici.

Atributy

Pomocí atributu SemanticSearchInput definujte sémantickou vstupní vazbu hledání, která podporuje tyto parametry:

Parametr popis
ConnectionName Název nastavení aplikace nebo proměnné prostředí, která obsahuje hodnotu připojovací řetězec. Tato vlastnost podporuje vazbové výrazy.
Kolekce Název kolekce nebo tabulky nebo indexu, který se má prohledávat. Tato vlastnost podporuje vazbové výrazy.
Dotaz Sémantický text dotazu, který se má použít k hledání. Tato vlastnost podporuje vazbové výrazy.
EmbeddingsModel ID modelu, které se má použít pro vkládání Výchozí hodnota je text-embedding-3-small. Tato vlastnost podporuje vazbové výrazy.
ChatModel Získá nebo nastaví název velkého jazykového modelu vyvolat pro odpovědi chatu. Výchozí hodnota je gpt-3.5-turbo. Tato vlastnost podporuje vazbové výrazy.
SystemPrompt Volitelné. Získá nebo nastaví výzvu k použití systému pro zobrazení výzvy k zobrazení velkého jazykového modelu. Výzva k systému je připojena se znalostmi, které jsou načteny v důsledku Query. Kombinovaná výzva se odešle do rozhraní API chatu OpenAI. Tato vlastnost podporuje vazbové výrazy.
MaxKnowledgeCount Volitelné. Získá nebo nastaví počet položek znalostí, které se mají vložit do SystemPrompt.

Poznámky

Poznámka SemanticSearchInput umožňuje definovat sémantickou vstupní vazbu hledání, která podporuje tyto parametry:

Element (Prvek) Popis
Jméno Získá nebo nastaví název vstupní vazby.
connectionName Název nastavení aplikace nebo proměnné prostředí, která obsahuje hodnotu připojovací řetězec. Tato vlastnost podporuje vazbové výrazy.
sbírka Název kolekce nebo tabulky nebo indexu, který se má prohledávat. Tato vlastnost podporuje vazbové výrazy.
query Sémantický text dotazu, který se má použít k hledání. Tato vlastnost podporuje vazbové výrazy.
embeddingsModel ID modelu, které se má použít pro vkládání Výchozí hodnota je text-embedding-3-small. Tato vlastnost podporuje vazbové výrazy.
chatModel Získá nebo nastaví název velkého jazykového modelu vyvolat pro odpovědi chatu. Výchozí hodnota je gpt-3.5-turbo. Tato vlastnost podporuje vazbové výrazy.
systemPrompt Volitelné. Získá nebo nastaví výzvu k použití systému pro zobrazení výzvy k zobrazení velkého jazykového modelu. Výzva k systému je připojena se znalostmi, které jsou načteny v důsledku Query. Kombinovaná výzva se odešle do rozhraní API chatu OpenAI. Tato vlastnost podporuje vazbové výrazy.
maxKnowledgeCount Volitelné. Získá nebo nastaví počet položek znalostí, které se mají vložit do SystemPrompt.

Dekoratéry

Během náhledu definujte vstupní vazbu jako generic_input_binding vazbu typu semanticSearch, která podporuje tyto parametry:

Parametr Popis
arg_name Název proměnné, která představuje parametr vazby.
connection_name Název nastavení aplikace nebo proměnné prostředí, která obsahuje hodnotu připojovací řetězec. Tato vlastnost podporuje vazbové výrazy.
sbírka Název kolekce nebo tabulky nebo indexu, který se má prohledávat. Tato vlastnost podporuje vazbové výrazy.
query Sémantický text dotazu, který se má použít k hledání. Tato vlastnost podporuje vazbové výrazy.
embeddings_model ID modelu, které se má použít pro vkládání Výchozí hodnota je text-embedding-3-small. Tato vlastnost podporuje vazbové výrazy.
chat_model Získá nebo nastaví název velkého jazykového modelu vyvolat pro odpovědi chatu. Výchozí hodnota je gpt-3.5-turbo. Tato vlastnost podporuje vazbové výrazy.
system_prompt Volitelné. Získá nebo nastaví výzvu k použití systému pro zobrazení výzvy k zobrazení velkého jazykového modelu. Výzva k systému je připojena se znalostmi, které jsou načteny v důsledku Query. Kombinovaná výzva se odešle do rozhraní API chatu OpenAI. Tato vlastnost podporuje vazbové výrazy.
max_knowledge_count Volitelné. Získá nebo nastaví počet položek znalostí, které se mají vložit do SystemPrompt.

Konfigurace

Vazba podporuje tyto vlastnosti konfigurace, které jste nastavili v souboru function.json.

Vlastnost Popis
type Musí být semanticSearch.
direction Musí být in.
Jméno Název vstupní vazby.
connectionName Získá nebo nastaví název nastavení aplikace nebo proměnné prostředí, která obsahuje připojovací řetězec hodnotu. Tato vlastnost podporuje vazbové výrazy.
sbírka Název kolekce nebo tabulky nebo indexu, který se má prohledávat. Tato vlastnost podporuje vazbové výrazy.
query Sémantický text dotazu, který se má použít k hledání. Tato vlastnost podporuje vazbové výrazy.
embeddingsModel ID modelu, které se má použít pro vkládání Výchozí hodnota je text-embedding-3-small. Tato vlastnost podporuje vazbové výrazy.
chatModel Získá nebo nastaví název velkého jazykového modelu vyvolat pro odpovědi chatu. Výchozí hodnota je gpt-3.5-turbo. Tato vlastnost podporuje vazbové výrazy.
systemPrompt Volitelné. Získá nebo nastaví výzvu k použití systému pro zobrazení výzvy k zobrazení velkého jazykového modelu. Výzva k systému je připojena se znalostmi, které jsou načteny v důsledku Query. Kombinovaná výzva se odešle do rozhraní API chatu OpenAI. Tato vlastnost podporuje vazbové výrazy.
maxKnowledgeCount Volitelné. Získá nebo nastaví počet položek znalostí, které se mají vložit do SystemPrompt.

Konfigurace

Vazba podporuje tyto vlastnosti, které jsou definovány v kódu:

Vlastnost Popis
connectionName Název nastavení aplikace nebo proměnné prostředí, která obsahuje hodnotu připojovací řetězec. Tato vlastnost podporuje vazbové výrazy.
sbírka Název kolekce nebo tabulky nebo indexu, který se má prohledávat. Tato vlastnost podporuje vazbové výrazy.
query Sémantický text dotazu, který se má použít k hledání. Tato vlastnost podporuje vazbové výrazy.
embeddingsModel ID modelu, které se má použít pro vkládání Výchozí hodnota je text-embedding-3-small. Tato vlastnost podporuje vazbové výrazy.
chatModel Získá nebo nastaví název velkého jazykového modelu vyvolat pro odpovědi chatu. Výchozí hodnota je gpt-3.5-turbo. Tato vlastnost podporuje vazbové výrazy.
systemPrompt Volitelné. Získá nebo nastaví výzvu k použití systému pro zobrazení výzvy k zobrazení velkého jazykového modelu. Výzva k systému je připojena se znalostmi, které jsou načteny v důsledku Query. Kombinovaná výzva se odešle do rozhraní API chatu OpenAI. Tato vlastnost podporuje vazbové výrazy.
maxKnowledgeCount Volitelné. Získá nebo nastaví počet položek znalostí, které se mají vložit do SystemPrompt.

Využití

Kompletní příklady najdete v části Příklad.