Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Rozszerzenie Azure OpenAI dla usługi Azure Functions jest obecnie dostępne w wersji zapoznawczej.
Powiązanie wejściowe uzupełniania tekstu usługi Azure OpenAI umożliwia wprowadzenie interfejsów API uzupełniania tekstu wyników do wykonywania kodu. Powiązanie można zdefiniować tak, aby używało zarówno wstępnie zdefiniowanych monitów z parametrami, jak i przez cały monit.
Aby uzyskać informacje na temat konfigurowania i konfigurowania rozszerzenia Azure OpenAI, zobacz Azure OpenAI extensions for Azure Functions (Rozszerzenia azure OpenAI dla usługi Azure Functions). Aby dowiedzieć się więcej na temat uzupełniania usługi Azure OpenAI, zobacz Dowiedz się, jak wygenerować lub manipulować tekstem.
Uwaga / Notatka
Odwołania i przykłady są udostępniane tylko dla modelu Node.js w wersji 4.
Uwaga / Notatka
Odwołania i przykłady są udostępniane tylko dla modelu języka Python w wersji 2.
Uwaga / Notatka
Chociaż oba modele procesów języka C# są obsługiwane, udostępniane są tylko izolowane przykłady modeli procesów roboczych.
Przykład
W tym przykładzie pokazano wzorzec tworzenia szablonów , w którym funkcja wyzwalacza HTTP przyjmuje name parametr i osadza go w wierszu polecenia tekstowego, który jest następnie wysyłany do interfejsu API uzupełniania usługi Azure OpenAI przez rozszerzenie. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
[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);
}
W tym przykładzie jest wyświetlany monit jako dane wejściowe, wysyła go bezpośrednio do interfejsu API uzupełniania i zwraca odpowiedź jako dane wyjściowe.
[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);
}
W tym przykładzie pokazano wzorzec tworzenia szablonów , w którym funkcja wyzwalacza HTTP przyjmuje name parametr i osadza go w wierszu polecenia tekstowego, który jest następnie wysyłany do interfejsu API uzupełniania usługi Azure OpenAI przez rozszerzenie. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
@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();
}
W tym przykładzie jest wyświetlany monit jako dane wejściowe, wysyła go bezpośrednio do interfejsu API uzupełniania i zwraca odpowiedź jako dane wyjściowe.
@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();
}
W tym przykładzie pokazano wzorzec tworzenia szablonów , w którym funkcja wyzwalacza HTTP przyjmuje name parametr i osadza go w wierszu polecenia tekstowego, który jest następnie wysyłany do interfejsu API uzupełniania usługi Azure OpenAI przez rozszerzenie. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
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() }
}
});
W tym przykładzie pokazano wzorzec tworzenia szablonów , w którym funkcja wyzwalacza HTTP przyjmuje name parametr i osadza go w wierszu polecenia tekstowego, który jest następnie wysyłany do interfejsu API uzupełniania usługi Azure OpenAI przez rozszerzenie. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
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() }
}
});
W tym przykładzie pokazano wzorzec tworzenia szablonów , w którym funkcja wyzwalacza HTTP przyjmuje name parametr i osadza go w wierszu polecenia tekstowego, który jest następnie wysyłany do interfejsu API uzupełniania usługi Azure OpenAI przez rozszerzenie. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
Oto plik function.json dla elementu 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%"
}
]
}
Aby uzyskać więcej informacji na temat function.json właściwości pliku, zobacz sekcję Konfiguracja.
Kod po prostu zwraca tekst z interfejsu API uzupełniania jako odpowiedź:
using namespace System.Net
param($Request, $TriggerMetadata, $TextCompletionResponse)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $TextCompletionResponse.Content
})
W tym przykładzie pokazano wzorzec tworzenia szablonów , w którym funkcja wyzwalacza HTTP przyjmuje name parametr i osadza go w wierszu polecenia tekstowego, który jest następnie wysyłany do interfejsu API uzupełniania usługi Azure OpenAI przez rozszerzenie. Odpowiedź na monit jest zwracana w odpowiedzi HTTP.
@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)
W tym przykładzie jest wyświetlany monit jako dane wejściowe, wysyła go bezpośrednio do interfejsu API uzupełniania i zwraca odpowiedź jako dane wyjściowe.
@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)
Atrybuty
Określony atrybut stosowany do definiowania powiązania wejściowego uzupełniania tekstu zależy od trybu procesu języka C#.
W modelu izolowanego procesu roboczego zastosuj się TextCompletionInput do zdefiniowania powiązania wejściowego uzupełniania tekstu.
Atrybut obsługuje następujące parametry:
| Parametr | Opis |
|---|---|
| Polecenie | Pobiera lub ustawia monit o wygenerowanie uzupełniania dla elementu zakodowanego jako ciąg. |
| AIConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| ChatModel |
Opcjonalnie. Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| Temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| TopP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| MaxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| IsReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Adnotacje
Adnotacja TextCompletion umożliwia zdefiniowanie powiązania wejściowego uzupełniania tekstu, które obsługuje następujące parametry:
| Składnik | Opis |
|---|---|
| nazwa | Pobiera lub ustawia nazwę powiązania wejściowego. |
| zachęta | Pobiera lub ustawia monit o wygenerowanie uzupełniania dla elementu zakodowanego jako ciąg. |
| aiConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chatModel | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| topP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| maxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| isReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Dekoratory
W wersji zapoznawczej zdefiniuj powiązanie wejściowe jako generic_input_binding powiązanie typu textCompletion, które obsługuje następujące parametry:
| Parametr | Opis |
|---|---|
| arg_name | Nazwa zmiennej reprezentującej parametr powiązania. |
| zachęta | Pobiera lub ustawia monit o wygenerowanie uzupełniania dla elementu zakodowanego jako ciąg. |
| ai_connection_name | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chat_model | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| top_p |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| max_tokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| is_reasoning _model |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Konfiguracja
Powiązanie obsługuje te właściwości konfiguracji ustawione w pliku function.json.
| Majątek | Opis |
|---|---|
| typ | Musi mieć wartość textCompletion. |
| kierunek | Musi mieć wartość in. |
| nazwa | Nazwa powiązania wejściowego. |
| zachęta | Pobiera lub ustawia monit o wygenerowanie uzupełniania dla elementu zakodowanego jako ciąg. |
| aiConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chatModel | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| topP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| maxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| isReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Konfiguracja
Powiązanie obsługuje te właściwości zdefiniowane w kodzie:
| Majątek | Opis |
|---|---|
| zachęta | Pobiera lub ustawia monit o wygenerowanie uzupełniania dla elementu zakodowanego jako ciąg. |
| aiConnectionName | Opcjonalnie. Pobiera lub ustawia nazwę sekcji konfiguracji dla ustawień łączności usługi sztucznej inteligencji. W przypadku usługi Azure OpenAI: w przypadku określenia wyszukaj wartości "Endpoint" i "Key" w tej sekcji konfiguracji. Jeśli nie zostanie określona lub sekcja nie istnieje, wróć do zmiennych środowiskowych: AZURE_OPENAI_ENDPOINT i AZURE_OPENAI_KEY. W przypadku uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika ta właściwość jest wymagana. W przypadku usługi OpenAI (spoza platformy Azure) ustaw zmienną środowiskową OPENAI_API_KEY. |
| chatModel | Pobiera lub ustawia identyfikator modelu do użycia jako ciąg z wartością gpt-3.5-turbodomyślną . |
| temperatura |
Opcjonalnie. Pobiera lub ustawia temperaturę próbkowania do użycia jako ciąg między 0 i 2. Wyższe wartości (0.8) sprawiają, że dane wyjściowe będą bardziej losowe, a niższe wartości, takie jak (0.2), sprawiają, że dane wyjściowe są bardziej skoncentrowane i deterministyczne. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| topP |
Opcjonalnie. Pobiera lub ustawia alternatywę dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, jako ciągiem. W tej metodzie próbkowania model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Oznacza to 0.1 , że uwzględniane są tylko tokeny składające się z 10% masy prawdopodobieństwa. Należy użyć metody Temperature lub TopP, ale nie obu tych elementów. |
| maxTokens |
Opcjonalnie. Pobiera lub ustawia maksymalną liczbę tokenów do wygenerowania w uzupełnianiu jako ciąg z wartością domyślną 100. Liczba tokenów zapytania plus max_tokens nie może przekraczać długości kontekstu modelu. Większość modeli ma długość kontekstu 2048 tokenów (z wyjątkiem najnowszych modeli, które obsługują 4096). |
| isReasoningModel |
Opcjonalnie. Pobiera lub ustawia wartość wskazującą, czy model uzupełniania czatu jest modelem rozumowania. Ta opcja jest eksperymentalna i skojarzona z modelem rozumowania, dopóki wszystkie modele nie mają parzystości w oczekiwanych właściwościach z wartością falsedomyślną . |
Zastosowanie
Zobacz sekcję Przykład, aby zapoznać się z kompletnymi przykładami.