Aracılığıyla paylaş


Azure İşlevleri için Azure OpenAI metin tamamlama giriş bağlaması

Önemli

Azure İşlevleri için Azure OpenAI uzantısı şu anda önizleme aşamasındadır.

Azure OpenAI metin tamamlama giriş bağlaması, sonuç metin tamamlama API'lerini kod yürütmelerinize getirmenizi sağlar. Bağlamayı, parametrelerle önceden tanımlanmış istemleri kullanacak veya tüm bir istemden geçecek şekilde tanımlayabilirsiniz.

Azure OpenAI uzantısının kurulum ve yapılandırma ayrıntıları hakkında bilgi için bkz. Azure İşlevleri için Azure OpenAI uzantıları. Azure OpenAI tamamlamaları hakkında daha fazla bilgi edinmek için bkz. Metin oluşturmayı veya işlemeyi öğrenin.

Uyarı

Başvurular ve örnekler yalnızca Node.js v4 modeli için sağlanır.

Uyarı

Başvurular ve örnekler yalnızca Python v2 modeli için sağlanır.

Uyarı

Her iki C# işlem modeli de destekleniyor olsa da yalnızca yalıtılmış çalışan modeli örnekleri sağlanır.

Örnek

Bu örnekte, HTTP tetikleyici işlevinin bir parametre aldığı ve bunu bir metin istemine eklediği ve ardından uzantı tarafından Azure OpenAI tamamlamaları API'sine gönderilen name deseni gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

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

Bu örnek giriş olarak bir istem alır, doğrudan tamamlamalar API'sine gönderir ve yanıtı çıkış olarak döndürür.

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

Bu örnekte, HTTP tetikleyici işlevinin bir parametre aldığı ve bunu bir metin istemine eklediği ve ardından uzantı tarafından Azure OpenAI tamamlamaları API'sine gönderilen name deseni gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

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

Bu örnek giriş olarak bir istem alır, doğrudan tamamlamalar API'sine gönderir ve yanıtı çıkış olarak döndürür.

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

Bu örnekte, HTTP tetikleyici işlevinin bir parametre aldığı ve bunu bir metin istemine eklediği ve ardından uzantı tarafından Azure OpenAI tamamlamaları API'sine gönderilen name deseni gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

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

Bu örnekte, HTTP tetikleyici işlevinin bir parametre aldığı ve bunu bir metin istemine eklediği ve ardından uzantı tarafından Azure OpenAI tamamlamaları API'sine gönderilen name deseni gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

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

Bu örnekte, HTTP tetikleyici işlevinin bir parametre aldığı ve bunu bir metin istemine eklediği ve ardından uzantı tarafından Azure OpenAI tamamlamaları API'sine gönderilen name deseni gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

için function.json dosyası aşağıdadır: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%"
    }
  ]
}

function.json dosya özellikleri hakkında daha fazla bilgi için Yapılandırma bölümüne bakın.

Kod yalnızca tamamlama API'sinden gelen metni yanıt olarak döndürür:

using namespace System.Net

param($Request, $TriggerMetadata, $TextCompletionResponse)

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

Bu örnekte, HTTP tetikleyici işlevinin bir parametre aldığı ve bunu bir metin istemine eklediği ve ardından uzantı tarafından Azure OpenAI tamamlamaları API'sine gönderilen name deseni gösterilmektedir. İstem yanıtı HTTP yanıtında döndürülür.

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

Bu örnek giriş olarak bir istem alır, doğrudan tamamlamalar API'sine gönderir ve yanıtı çıkış olarak döndürür.

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

Özellikler

Metin tamamlama giriş bağlamasını tanımlamak için uyguladığınız belirli öznitelik, C# işlem modunuza bağlıdır.

Yalıtılmış çalışan modelinde, metin tamamlama giriş bağlaması tanımlamak için uygulayınTextCompletionInput.

özniteliği şu parametreleri destekler:

Parametre Açıklama
İstem Dize olarak kodlanmış tamamlamaları oluşturmak için istem alır veya ayarlar.
AIConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
ChatModel İsteğe bağlı. Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar.
Sıcaklık İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
TopP İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
MaxTokens İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç).
IsReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Açıklamalar

Ek TextCompletion açıklama, şu parametreleri destekleyen bir metin tamamlama giriş bağlaması tanımlamanızı sağlar:

Öğe Açıklama
isim Giriş bağlamasının adını alır veya ayarlar.
komut istemi Dize olarak kodlanmış tamamlamaları oluşturmak için istem alır veya ayarlar.
aiConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
chatModel Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar.
sıcaklık İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
topP İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
maxTokens İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç).
isReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Dekoratörler

Önizleme sırasında, giriş bağlamasını şu parametreleri destekleyen türündeki generic_input_bindingbir textCompletion bağlama olarak tanımlayın:

Parametre Açıklama
arg_name Bağlama parametresini temsil eden değişkenin adı.
komut istemi Dize olarak kodlanmış tamamlamaları oluşturmak için istem alır veya ayarlar.
ai_connection_name İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
chat_model Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar.
sıcaklık İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
top_p İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
max_tokens İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç).
is_reasoning _model İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Konfigürasyon

Bağlama, function.json dosyasında ayarladığınız bu yapılandırma özelliklerini destekler.

Mülkiyet Açıklama
türü textCompletionolmalıdır.
yön inolmalıdır.
isim Giriş bağlamasının adı.
komut istemi Dize olarak kodlanmış tamamlamaları oluşturmak için istem alır veya ayarlar.
aiConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
chatModel Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar.
sıcaklık İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
topP İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
maxTokens İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç).
isReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Konfigürasyon

Bağlama, kodunuzda tanımlanan şu özellikleri destekler:

Mülkiyet Açıklama
komut istemi Dize olarak kodlanmış tamamlamaları oluşturmak için istem alır veya ayarlar.
aiConnectionName İsteğe bağlı. Yapay zeka hizmeti bağlantı ayarları için yapılandırma bölümünün adını alır veya ayarlar. Azure OpenAI için: Belirtilirse, bu yapılandırma bölümünde "Uç Nokta" ve "Anahtar" değerlerini arar. Belirtilmezse veya bölüm yoksa ortam değişkenlerine geri döner: AZURE_OPENAI_ENDPOINT ve AZURE_OPENAI_KEY. Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması için bu özellik gereklidir. OpenAI hizmeti (Azure olmayan) için OPENAI_API_KEY ortam değişkenini ayarlayın.
chatModel Varsayılan değeri gpt-3.5-turboolan bir dize olarak kullanılacak modelin kimliğini alır veya ayarlar.
sıcaklık İsteğe bağlı. ve 0arasında 2 bir dize olarak kullanılacak örnekleme sıcaklığını alır veya ayarlar. Daha yüksek değerler (0.8) çıkışı daha rastgele hale getirirken (0.2) gibi düşük değerler çıkışı daha odaklanmış ve belirlenimci hale getirir. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
topP İsteğe bağlı. Sıcaklıkla örneklemeye alternatif olarak çekirdek örnekleme adı verilen bir dize alır veya ayarlar. Bu örnekleme yönteminde model, olasılık kütleli belirteçlerin sonuçlarını dikkate alır top_p . Yani 0.1 yalnızca ilk 10% olasılık kütlesinden oluşan belirteçler dikkate alınır. ya da TemperatureTopPkullanmanız gerekir, ancak ikisini birden kullanmamalısınız.
maxTokens İsteğe bağlı. Tamamlanmada oluşturulacak en fazla belirteç sayısını varsayılan 100değeri olan bir dize olarak alır veya ayarlar. İsteminizin ve artı max_tokens değerin belirteç sayısı modelin bağlam uzunluğunu aşamaz. Çoğu modelin bağlam uzunluğu 2.048 belirteçtir (4096'yı destekleyen en yeni modeller hariç).
isReasoningModel İsteğe bağlı. Sohbet tamamlama modelinin bir akıl yürütme modeli olup olmadığını belirten bir değer alır veya ayarlar. Bu seçenek deneyseldir ve tüm modeller varsayılan değeri olan beklenen özelliklerde eşliğe sahip olana kadar mantık modeliyle ilişkilendirilir false.

Kullanım

Tam örnekler için Örnek bölümüne bakın.