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


Azure OpenAI szövegkiegészíté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 szövegkiegészítési bemeneti kötése lehetővé teszi az eredmények szövegkiegészítési API-jait a kódvégrehajtásokban. A kötést úgy határozhatja meg, hogy mindkét előre definiált kérést paraméterekkel használja, vagy egy teljes parancssoron haladjon át.

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 OpenAI-kiegészítésekkel kapcsolatos további információkért tekintse meg a szöveg létrehozásának és módosításának módjá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 a templating mintát, amelyben a HTTP-eseményindító függvény egy paramétert name használ, és beágyazza egy szöveges parancssorba, amelyet a bővítmény elküld az Azure OpenAI completions API-nak. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

[Function(nameof(WhoIs))]
public static IActionResult WhoIs(
    [HttpTrigger(AuthorizationLevel.Function, Route = "whois/{name}")] HttpRequestData req,
    [TextCompletionInput("Who is {name}?", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%")] TextCompletionResponse response)
{
    return new OkObjectResult(response.Content);
}

Ez a példa bemenetként kér egy kérést, közvetlenül a befejezési API-nak küldi el, és kimenetként adja vissza a választ.

[Function(nameof(GenericCompletion))]
public static IActionResult GenericCompletion(
    [HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequestData req,
    [TextCompletionInput("{Prompt}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%")] TextCompletionResponse response,
    ILogger log)
{
    string text = response.Content;
    return new OkObjectResult(text);
}

Ez a példa bemutatja a templating mintát, amelyben a HTTP-eseményindító függvény egy paramétert name használ, és beágyazza egy szöveges parancssorba, amelyet a bővítmény elküld az Azure OpenAI completions API-nak. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

@FunctionName("WhoIs")
public HttpResponseMessage whoIs(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.GET},
        authLevel = AuthorizationLevel.ANONYMOUS, 
        route = "whois/{name}") 
        HttpRequestMessage<Optional<String>> request,
    @BindingName("name") String name,
    @TextCompletion(prompt = "Who is {name}?", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response", isReasoningModel = false) TextCompletionResponse response,
    final ExecutionContext context) {
    return request.createResponseBuilder(HttpStatus.OK)
        .header("Content-Type", "application/json")
        .body(response.getContent())
        .build();
}

Ez a példa bemenetként kér egy kérést, közvetlenül a befejezési API-nak küldi el, és kimenetként adja vissza a választ.

@FunctionName("GenericCompletion")
public HttpResponseMessage genericCompletion(
    @HttpTrigger(
        name = "req", 
        methods = {HttpMethod.POST},
        authLevel = AuthorizationLevel.ANONYMOUS) 
        HttpRequestMessage<Optional<String>> request,
    @TextCompletion(prompt = "{prompt}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response", isReasoningModel = false) TextCompletionResponse response,
    final ExecutionContext context) {
    return request.createResponseBuilder(HttpStatus.OK)
        .header("Content-Type", "application/json")
        .body(response.getContent())
        .build();
}

Ez a példa bemutatja a templating mintát, amelyben a HTTP-eseményindító függvény egy paramétert name használ, és beágyazza egy szöveges parancssorba, amelyet a bővítmény elküld az Azure OpenAI completions API-nak. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

const { app, input } = require("@azure/functions");

// This OpenAI completion input requires a {name} binding value.
const openAICompletionInput = input.generic({
    prompt: 'Who is {name}?',
    maxTokens: '100',
    type: 'textCompletion',
    chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%'
})

app.http('whois', {
    methods: ['GET'],
    route: 'whois/{name}',
    authLevel: 'function',
    extraInputs: [openAICompletionInput],
    handler: async (_request, context) => {
        var response = context.extraInputs.get(openAICompletionInput)
        return { body: response.content.trim() }
    }
});

Ez a példa bemutatja a templating mintát, amelyben a HTTP-eseményindító függvény egy paramétert name használ, és beágyazza egy szöveges parancssorba, amelyet a bővítmény elküld az Azure OpenAI completions API-nak. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

import { app, input } from "@azure/functions";

// This OpenAI completion input requires a {name} binding value.
const openAICompletionInput = input.generic({
    prompt: 'Who is {name}?',
    maxTokens: '100',
    type: 'textCompletion',
    chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%'
})

app.http('whois', {
    methods: ['GET'],
    route: 'whois/{name}',
    authLevel: 'function',
    extraInputs: [openAICompletionInput],
    handler: async (_request, context) => {
        var response: any = context.extraInputs.get(openAICompletionInput)
        return { body: response.content.trim() }
    }
});

Ez a példa bemutatja a templating mintát, amelyben a HTTP-eseményindító függvény egy paramétert name használ, és beágyazza egy szöveges parancssorba, amelyet a bővítmény elküld az Azure OpenAI completions API-nak. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

A következő function.json fájl:TextCompletionResponse

{
  "bindings": [
    {
      "authLevel": "function",
      "type": "httpTrigger",
      "direction": "in",
      "name": "Request",
      "route": "whois/{name}",
      "methods": [
        "get"
      ]
    },
    {
      "type": "http",
      "direction": "out",
      "name": "Response"
    },
    {
      "type": "textCompletion",
      "direction": "in",
      "name": "TextCompletionResponse",
      "prompt": "Who is {name}?",
      "maxTokens": "100",
      "chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%"
    }
  ]
}

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

A kód egyszerűen visszaadja a szöveget a befejezési API-ból válaszként:

using namespace System.Net

param($Request, $TriggerMetadata, $TextCompletionResponse)

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

Ez a példa bemutatja a templating mintát, amelyben a HTTP-eseményindító függvény egy paramétert name használ, és beágyazza egy szöveges parancssorba, amelyet a bővítmény elküld az Azure OpenAI completions API-nak. A rendszer a HTTP-válaszban adja vissza a kérdésre adott választ.

@app.route(route="whois/{name}", methods=["GET"])
@app.text_completion_input(
    arg_name="response",
    prompt="Who is {name}?",
    max_tokens="100",
    chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def whois(req: func.HttpRequest, response: str) -> func.HttpResponse:
    response_json = json.loads(response)
    return func.HttpResponse(response_json["content"], status_code=200)

Ez a példa bemenetként kér egy kérést, közvetlenül a befejezési API-nak küldi el, és kimenetként adja vissza a választ.

@app.route(route="genericcompletion", methods=["POST"])
@app.text_completion_input(
    arg_name="response",
    prompt="{Prompt}",
    chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
)
def genericcompletion(
    req: func.HttpRequest,
    response: str
) -> func.HttpResponse:
    response_json = json.loads(response)
    return func.HttpResponse(response_json["content"], status_code=200)

Tulajdonságok

A szövegkimeneti bemeneti kötés meghatározásához alkalmazott attribútum a C# folyamatmódtól függ.

Az izolált feldolgozói modellben szövegkimeneti bemeneti kötés definiálására kell alkalmazni TextCompletionInput .

Az attribútum a következő paramétereket támogatja:

Paraméter Leírás
Javaslat Lekéri vagy beállítja a kérést, hogy sztringként kódolt befejezéseket hozzon létre.
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.
ChatModel Választható. Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo.
Hőmérséklet Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem.
TopP Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem.
MaxTokens Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot).
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 TextCompletion széljegyzet lehetővé teszi egy szövegkiegészítési bemeneti kötés definiálását, amely az alábbi paramétereket támogatja:

Elem Leírás
név Lekéri vagy beállítja a bemeneti kötés nevét.
kérés Lekéri vagy beállítja a kérést, hogy sztringként kódolt befejezéseket hozzon létre.
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.
chatModel Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo.
hőmérséklet Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem.
topP Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem.
maxTokens Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot).
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_bindingtextCompletion, 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.
kérés Lekéri vagy beállítja a kérést, hogy sztringként kódolt befejezéseket hozzon létre.
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.
chat_model Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo.
hőmérséklet Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem.
top_p Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem.
max_tokens Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot).
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 textCompletion.
irány Kell lennie in.
név A bemeneti kötés neve.
kérés Lekéri vagy beállítja a kérést, hogy sztringként kódolt befejezéseket hozzon létre.
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.
chatModel Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo.
hőmérséklet Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem.
topP Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem.
maxTokens Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot).
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
kérés Lekéri vagy beállítja a kérést, hogy sztringként kódolt befejezéseket hozzon létre.
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.
chatModel Lekéri vagy beállítja a modell azonosítóját sztringként, alapértelmezett értékként gpt-3.5-turbo.
hőmérséklet Választható. Lekéri vagy beállítja a használandó mintavételi hőmérsékletet sztringként az és 0a között2. A magasabb értékek (0.8) véletlenszerűbbé teszik a kimenetet, míg az alacsonyabb értékek(0.2) a kimenetet koncentráltabbá és determinisztikusabbá teszik. Használhatja vagy TemperatureTopP, de mindkettőt nem.
topP Választható. Sztringként lekéri vagy beállítja a hőmérséklettel történő mintavételezés alternatívát, az úgynevezett nukleusz-mintavételezést. Ebben a mintavételezési módszerben a modell a valószínűségi tömeggel rendelkező top_p tokenek eredményeit veszi figyelembe. Ez azt 0.1 jelenti, hogy csak az első 10% valószínűségi tömeget tartalmazó jogkivonatokat veszi figyelembe. Használhatja vagy TemperatureTopP, de mindkettőt nem.
maxTokens Választható. Lekéri vagy beállítja a befejezéskor létrehozandó jogkivonatok maximális számát egy alapértelmezett 100sztringként. A parancssor jogkivonatszáma plusz max_tokens nem haladhatja meg a modell környezethosszát. A legtöbb modell környezethossza 2048 token (kivéve a legújabb modelleket, amelyek támogatják a 4096-ot).
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 .