Megosztás a következőn keresztül:


Azure OpenAI szemantikai keresési bemeneti kötés az Azure Functionshez

Fontos

Az Azure Functions Azure OpenAI bővítménye jelenleg előzetes verzióban érhető el.

Az Azure OpenAI szemantikai keresési bemeneti kötése lehetővé teszi a szemantikai keresés használatát a beágyazásokon.

Az Azure OpenAI-bővítmény beállítási és konfigurációs részleteiről további információt az Azure Functions Azure OpenAI-bővítményeivel kapcsolatban talál. Az Azure AI Search szemantikai rangsorolásával kapcsolatos további információkért lásd az Azure AI Search szemantikai rangsorolását.

Megjegyzés:

A referenciák és példák csak a Node.js v4-modellhez vannak megadva.

Megjegyzés:

A hivatkozások és példák csak a Python v2-modellhez vannak megadva.

Megjegyzés:

Bár mindkét C#-folyamatmodell támogatott, csak izolált feldolgozómodell-példák állnak rendelkezésre.

példa

Ez a példa bemutatja, hogyan végezhet szemantikai keresést egy fájlon.

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

Ez a példa bemutatja, hogyan végezhet szemantikai keresést egy fájlon.

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

Ez a példa bemutatja, hogyan végezhet szemantikai keresést egy fájlon.

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

Ez a példa bemutatja, hogyan végezhet szemantikai keresést egy fájlon.

A következőfunction.json fájl kérése:

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

A function.json fájltulajdonságokról a Konfiguráció szakaszban talál további információt.

using namespace System.Net

param($Request, $TriggerMetadata, $SemanticSearchInput)

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

Ez a példa bemutatja, hogyan végezhet szemantikai keresést egy fájlon.

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

Tulajdonságok

Alkalmazza az SemanticSearchInput attribútumot egy szemantikai keresési bemeneti kötés definiálására, amely az alábbi paramétereket támogatja:

Paraméter Leírás
SearchConnectionName A kapcsolati sztring értéket tartalmazó alkalmazásbeállítás vagy környezeti változó neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
Gyűjtemény A keresendő gyűjtemény vagy tábla vagy index neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
Lekérdezés A kereséshez használandó szemantikai lekérdezésszöveg. Ez a tulajdonság támogatja a kötési kifejezéseket.
EmbeddingsModel Választható. A beágyazáshoz használandó modell azonosítója. Az alapértelmezett érték a text-embedding-3-small. Ez a tulajdonság támogatja a kötési kifejezéseket.
ChatModel Választható. Lekéri vagy beállítja a nagy nyelvi modell nevét a csevegési válaszok meghívásához. Az alapértelmezett érték a gpt-3.5-turbo. Ez a tulajdonság támogatja a kötési kifejezéseket.
AIConnectionName Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót.
SystemPrompt Választható. Lekéri vagy beállítja a rendszerkérést a nagy nyelvi modell kéréséhez. A rendszer parancssora hozzá van fűzve a rendszer által beolvasott Querytudással. A rendszer elküldi az egyesített kérést az OpenAI Chat API-nak. Ez a tulajdonság támogatja a kötési kifejezéseket.
MaxKnowledgeCount Választható. Lekéri vagy beállítja a beszúrni kívánt tudáselemek számát.SystemPrompt
IsReasoningModel Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false.

Megjegyzések

A SemanticSearchInput széljegyzet lehetővé teszi a szemantikai keresési bemeneti kötés definiálását, amely támogatja az alábbi paramétereket:

Elem Leírás
név Lekéri vagy beállítja a bemeneti kötés nevét.
searchConnectionName A kapcsolati sztring értéket tartalmazó alkalmazásbeállítás vagy környezeti változó neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
gyűjtemény A keresendő gyűjtemény vagy tábla vagy index neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
lekérdezés A kereséshez használandó szemantikai lekérdezésszöveg. Ez a tulajdonság támogatja a kötési kifejezéseket.
embeddingsModel Választható. A beágyazáshoz használandó modell azonosítója. Az alapértelmezett érték a text-embedding-3-small. Ez a tulajdonság támogatja a kötési kifejezéseket.
chatModel Választható. Lekéri vagy beállítja a nagy nyelvi modell nevét a csevegési válaszok meghívásához. Az alapértelmezett érték a gpt-3.5-turbo. Ez a tulajdonság támogatja a kötési kifejezéseket.
aiConnectionName Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót.
systemPrompt Választható. Lekéri vagy beállítja a rendszerkérést a nagy nyelvi modell kéréséhez. A rendszer parancssora hozzá van fűzve a rendszer által beolvasott Querytudással. A rendszer elküldi az egyesített kérést az OpenAI Chat API-nak. Ez a tulajdonság támogatja a kötési kifejezéseket.
maxKnowledgeCount Választható. Lekéri vagy beállítja a beszúrni kívánt tudáselemek számát.SystemPrompt
isReasoningModel Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false.

Dekorátorok

Az előzetes verzióban adja meg a bemeneti kötést típuskötésként generic_input_bindingsemanticSearch, amely támogatja az alábbi paramétereket:

Paraméter Leírás
arg_name A kötési paramétert képviselő változó neve.
search_connection_name A kapcsolati sztring értéket tartalmazó alkalmazásbeállítás vagy környezeti változó neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
gyűjtemény A keresendő gyűjtemény vagy tábla vagy index neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
lekérdezés A kereséshez használandó szemantikai lekérdezésszöveg. Ez a tulajdonság támogatja a kötési kifejezéseket.
embeddings_model Választható. A beágyazáshoz használandó modell azonosítója. Az alapértelmezett érték a text-embedding-3-small. Ez a tulajdonság támogatja a kötési kifejezéseket.
chat_model Választható. Lekéri vagy beállítja a nagy nyelvi modell nevét a csevegési válaszok meghívásához. Az alapértelmezett érték a gpt-3.5-turbo. Ez a tulajdonság támogatja a kötési kifejezéseket.
ai_connection_name Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót.
system_prompt Választható. Lekéri vagy beállítja a rendszerkérést a nagy nyelvi modell kéréséhez. A rendszer parancssora hozzá van fűzve a rendszer által beolvasott Querytudással. A rendszer elküldi az egyesített kérést az OpenAI Chat API-nak. Ez a tulajdonság támogatja a kötési kifejezéseket.
max_knowledge_count Választható. Lekéri vagy beállítja a beszúrni kívánt tudáselemek számát.SystemPrompt
is_reasoning _model Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false.

Konfiguráció

A kötés támogatja a function.json fájlban beállított konfigurációs tulajdonságokat.

Ingatlan Leírás
típus Kell lennie semanticSearch.
irány Kell lennie in.
név A bemeneti kötés neve.
searchConnectionName Lekéri vagy beállítja egy kapcsolati sztringértéket tartalmazó alkalmazásbeállítás vagy környezeti változó nevét. Ez a tulajdonság támogatja a kötési kifejezéseket.
gyűjtemény A keresendő gyűjtemény vagy tábla vagy index neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
lekérdezés A kereséshez használandó szemantikai lekérdezésszöveg. Ez a tulajdonság támogatja a kötési kifejezéseket.
embeddingsModel Választható. A beágyazáshoz használandó modell azonosítója. Az alapértelmezett érték a text-embedding-3-small. Ez a tulajdonság támogatja a kötési kifejezéseket.
chatModel Választható. Lekéri vagy beállítja a nagy nyelvi modell nevét a csevegési válaszok meghívásához. Az alapértelmezett érték a gpt-3.5-turbo. Ez a tulajdonság támogatja a kötési kifejezéseket.
aiConnectionName Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót.
systemPrompt Választható. Lekéri vagy beállítja a rendszerkérést a nagy nyelvi modell kéréséhez. A rendszer parancssora hozzá van fűzve a rendszer által beolvasott Querytudással. A rendszer elküldi az egyesített kérést az OpenAI Chat API-nak. Ez a tulajdonság támogatja a kötési kifejezéseket.
maxKnowledgeCount Választható. Lekéri vagy beállítja a beszúrni kívánt tudáselemek számát.SystemPrompt
isReasoningModel Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false.

Konfiguráció

A kötés támogatja ezeket a tulajdonságokat, amelyek a kódban vannak definiálva:

Ingatlan Leírás
searchConnectionName A kapcsolati sztring értéket tartalmazó alkalmazásbeállítás vagy környezeti változó neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
gyűjtemény A keresendő gyűjtemény vagy tábla vagy index neve. Ez a tulajdonság támogatja a kötési kifejezéseket.
lekérdezés A kereséshez használandó szemantikai lekérdezésszöveg. Ez a tulajdonság támogatja a kötési kifejezéseket.
embeddingsModel Választható. A beágyazáshoz használandó modell azonosítója. Az alapértelmezett érték a text-embedding-3-small. Ez a tulajdonság támogatja a kötési kifejezéseket.
chatModel Választható. Lekéri vagy beállítja a nagy nyelvi modell nevét a csevegési válaszok meghívásához. Az alapértelmezett érték a gpt-3.5-turbo. Ez a tulajdonság támogatja a kötési kifejezéseket.
aiConnectionName Választható. Lekéri vagy beállítja az AI szolgáltatás csatlakozási beállításaihoz tartozó konfigurációs szakasz nevét. Azure OpenAI esetén: Ha meg van adva, ebben a konfigurációs szakaszban keresse meg a "Végpont" és a "Kulcs" értéket. Ha nincs megadva, vagy a szakasz nem létezik, visszavált a környezeti változókra: AZURE_OPENAI_ENDPOINT és AZURE_OPENAI_KEY. A felhasználó által hozzárendelt felügyelt identitás hitelesítéséhez ez a tulajdonság szükséges. OpenAI szolgáltatás (nem Azure) esetén állítsa be a OPENAI_API_KEY környezeti változót.
systemPrompt Választható. Lekéri vagy beállítja a rendszerkérést a nagy nyelvi modell kéréséhez. A rendszer parancssora hozzá van fűzve a rendszer által beolvasott Querytudással. A rendszer elküldi az egyesített kérést az OpenAI Chat API-nak. Ez a tulajdonság támogatja a kötési kifejezéseket.
maxKnowledgeCount Választható. Lekéri vagy beállítja a beszúrni kívánt tudáselemek számát.SystemPrompt
isReasoningModel Választható. Lekéri vagy beállít egy értéket, amely jelzi, hogy a csevegés befejezési modellje érvelési modell-e. Ez a beállítás kísérleti jellegű, és mindaddig az érvelési modellhez van társítva, amíg az összes modell paritásos nem lesz a várt tulajdonságokban, és az alapértelmezett érték a false.

Használat

A teljes példákért tekintse meg a Példa szakaszt .