Входная привязка завершения текста Azure OpenAI для Функции Azure
Внимание
Расширение Azure OpenAI для Функции Azure в настоящее время находится в предварительной версии.
Входная привязка ввода текста в Azure OpenAI позволяет перенести API завершения текста результатов в выполнение кода. Вы можете определить привязку для использования обоих предопределенных запросов с параметрами или передать весь запрос.
Сведения о настройке и настройке расширения Azure OpenAI см. в Функции Azure расширения Azure OpenAI. Дополнительные сведения о завершении Azure OpenAI см. в статье Создание или управление текстом.
Примечание.
Ссылки и примеры предоставляются только для модели Node.js версии 4.
Примечание.
Ссылки и примеры предоставляются только для модели Python версии 2.
Примечание.
Хотя поддерживаются обе модели процессов C#, предоставляются только примеры изолированных рабочих моделей .
Пример
В этом примере демонстрируется шаблон шаблонов , где функция триггера HTTP принимает name
параметр и внедряет его в текстовый запрос, который затем отправляется в API завершения Azure OpenAI расширением. Ответ на запрос возвращается в ответе HTTP.
[Function(nameof(WhoIs))]
public static IActionResult WhoIs(
[HttpTrigger(AuthorizationLevel.Function, Route = "whois/{name}")] HttpRequestData req,
[TextCompletionInput("Who is {name}?", Model = "%CHAT_MODEL_DEPLOYMENT_NAME%")] TextCompletionResponse response)
{
return new OkObjectResult(response.Content);
}
/// <summary>
Этот пример принимает запрос в качестве входных данных, отправляет его непосредственно в API завершения и возвращает ответ в качестве выходных данных.
[HttpTrigger(AuthorizationLevel.Function, "post")] HttpRequestData req,
[TextCompletionInput("{Prompt}", Model = "%CHAT_MODEL_DEPLOYMENT_NAME%")] TextCompletionResponse response,
ILogger log)
{
string text = response.Content;
return new OkObjectResult(text);
}
}
В этом примере демонстрируется шаблон шаблонов , где функция триггера HTTP принимает name
параметр и внедряет его в текстовый запрос, который затем отправляется в API завершения Azure OpenAI расширением. Ответ на запрос возвращается в ответе 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}?", model = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response") TextCompletionResponse response,
final ExecutionContext context) {
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response.getContent())
.build();
}
Этот пример принимает запрос в качестве входных данных, отправляет его непосредственно в API завершения и возвращает ответ в качестве выходных данных.
@FunctionName("GenericCompletion")
public HttpResponseMessage genericCompletion(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@TextCompletion(prompt = "{prompt}", model = "%CHAT_MODEL_DEPLOYMENT_NAME%", name = "response") TextCompletionResponse response,
final ExecutionContext context) {
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response.getContent())
.build();
}
В этом примере демонстрируется шаблон шаблонов , где функция триггера HTTP принимает name
параметр и внедряет его в текстовый запрос, который затем отправляется в API завершения Azure OpenAI расширением. Ответ на запрос возвращается в ответе 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',
model: '%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() }
}
});
В этом примере демонстрируется шаблон шаблонов , где функция триггера HTTP принимает name
параметр и внедряет его в текстовый запрос, который затем отправляется в API завершения Azure OpenAI расширением. Ответ на запрос возвращается в ответе 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',
model: '%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() }
}
});
В этом примере демонстрируется шаблон шаблонов , где функция триггера HTTP принимает name
параметр и внедряет его в текстовый запрос, который затем отправляется в API завершения Azure OpenAI расширением. Ответ на запрос возвращается в ответе HTTP.
Ниже приведен файл function.json для 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",
"model": "%CHAT_MODEL_DEPLOYMENT_NAME%"
}
]
}
Дополнительные сведения о свойствах файла function.json см. в разделе "Конфигурация ".
Код просто возвращает текст из API завершения в качестве ответа:
using namespace System.Net
param($Request, $TriggerMetadata, $TextCompletionResponse)
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $TextCompletionResponse.Content
})
В этом примере демонстрируется шаблон шаблонов , где функция триггера HTTP принимает name
параметр и внедряет его в текстовый запрос, который затем отправляется в API завершения Azure OpenAI расширением. Ответ на запрос возвращается в ответе HTTP.
@app.route(route="whois/{name}", methods=["GET"])
@app.text_completion_input(arg_name="response", prompt="Who is {name}?", max_tokens="100", 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)
Этот пример принимает запрос в качестве входных данных, отправляет его непосредственно в API завершения и возвращает ответ в качестве выходных данных.
@app.route(route="genericcompletion", methods=["POST"])
@app.text_completion_input(arg_name="response", prompt="{Prompt}", 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)
Атрибуты
Конкретный атрибут, применяемый для определения входной привязки завершения текста, зависит от режима процесса C#.
В изолированной рабочей модели применяется TextCompletionInput
для определения входной привязки ввода текста.
Атрибут поддерживает следующие параметры:
Параметр | Описание |
---|---|
Prompt | Возвращает или задает запрос на создание завершений, закодированных в виде строки. |
Модель | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением gpt-3.5-turbo по умолчанию. |
Температура | Необязательно. Возвращает или задает используемую температуру выборки в виде строки между 0 и 2 . Более высокие значения (0.8 ) делают выходные данные более случайными, а более низкие значения, например (0.2 ), делают выходные данные более ориентированными и детерминированными. Следует использовать либо Temperature или TopP , но не оба. |
TopP | Необязательно. Возвращает или задает альтернативу выборке с температурой, называемой выборкой ядра в виде строки. В этом методе выборки модель рассматривает результаты маркеров с top_p массой вероятности. Таким образом 0.1 , считаются только маркеры, состоящие из верхней массы вероятности 10 %. Следует использовать либо Temperature или TopP , но не оба. |
MaxTokens | Необязательно. Возвращает или задает максимальное количество маркеров для создания в завершении в виде строки со значением по умолчанию 100 . Количество маркеров запроса плюс max_tokens не может превышать длину контекста модели. Большинство моделей имеют длину контекста 2048 токенов (за исключением новейших моделей, которые поддерживают 4096). |
Заметки
Заметка TextCompletion
позволяет определить входную привязку завершения текста, которая поддерживает следующие параметры:
Элемент | Description |
---|---|
name | Возвращает или задает имя входной привязки. |
prompt | Возвращает или задает запрос на создание завершений, закодированных в виде строки. |
model | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением gpt-3.5-turbo по умолчанию. |
temperature | Необязательно. Возвращает или задает используемую температуру выборки в виде строки между 0 и 2 . Более высокие значения (0.8 ) делают выходные данные более случайными, а более низкие значения, например (0.2 ), делают выходные данные более ориентированными и детерминированными. Следует использовать либо Temperature или TopP , но не оба. |
topP | Необязательно. Возвращает или задает альтернативу выборке с температурой, называемой выборкой ядра в виде строки. В этом методе выборки модель рассматривает результаты маркеров с top_p массой вероятности. Таким образом 0.1 , считаются только маркеры, состоящие из верхней массы вероятности 10 %. Следует использовать либо Temperature или TopP , но не оба. |
maxTokens | Необязательно. Возвращает или задает максимальное количество маркеров для создания в завершении в виде строки со значением по умолчанию 100 . Количество маркеров запроса плюс max_tokens не может превышать длину контекста модели. Большинство моделей имеют длину контекста 2048 токенов (за исключением новейших моделей, которые поддерживают 4096). |
Декораторы
Во время предварительной версии определите входную привязку как привязку generic_input_binding
типа textCompletion
, которая поддерживает следующие параметры:
Параметр | Описание |
---|---|
arg_name | Имя переменной, представляющей параметр привязки. |
prompt | Возвращает или задает запрос на создание завершений, закодированных в виде строки. |
model | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением gpt-3.5-turbo по умолчанию. |
temperature | Необязательно. Возвращает или задает используемую температуру выборки в виде строки между 0 и 2 . Более высокие значения (0.8 ) делают выходные данные более случайными, а более низкие значения, например (0.2 ), делают выходные данные более ориентированными и детерминированными. Следует использовать либо Temperature или TopP , но не оба. |
top_p | Необязательно. Возвращает или задает альтернативу выборке с температурой, называемой выборкой ядра в виде строки. В этом методе выборки модель рассматривает результаты маркеров с top_p массой вероятности. Таким образом 0.1 , считаются только маркеры, состоящие из верхней массы вероятности 10 %. Следует использовать либо Temperature или TopP , но не оба. |
max_tokens | Необязательно. Возвращает или задает максимальное количество маркеров для создания в завершении в виде строки со значением по умолчанию 100 . Количество маркеров запроса плюс max_tokens не может превышать длину контекста модели. Большинство моделей имеют длину контекста 2048 токенов (за исключением новейших моделей, которые поддерживают 4096). |
Настройка
Привязка поддерживает эти свойства конфигурации, заданные в файле function.json.
Свойство | Описание |
---|---|
type | Этот параметр должен содержать значение textCompletion . |
direction | Этот параметр должен содержать значение in . |
name | Имя входной привязки. |
prompt | Возвращает или задает запрос на создание завершений, закодированных в виде строки. |
model | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением gpt-3.5-turbo по умолчанию. |
temperature | Необязательно. Возвращает или задает используемую температуру выборки в виде строки между 0 и 2 . Более высокие значения (0.8 ) делают выходные данные более случайными, а более низкие значения, например (0.2 ), делают выходные данные более ориентированными и детерминированными. Следует использовать либо Temperature или TopP , но не оба. |
topP | Необязательно. Возвращает или задает альтернативу выборке с температурой, называемой выборкой ядра в виде строки. В этом методе выборки модель рассматривает результаты маркеров с top_p массой вероятности. Таким образом 0.1 , считаются только маркеры, состоящие из верхней массы вероятности 10 %. Следует использовать либо Temperature или TopP , но не оба. |
maxTokens | Необязательно. Возвращает или задает максимальное количество маркеров для создания в завершении в виде строки со значением по умолчанию 100 . Количество маркеров запроса плюс max_tokens не может превышать длину контекста модели. Большинство моделей имеют длину контекста 2048 токенов (за исключением новейших моделей, которые поддерживают 4096). |
Настройка
Привязка поддерживает эти свойства, определенные в коде:
Свойство | Description |
---|---|
prompt | Возвращает или задает запрос на создание завершений, закодированных в виде строки. |
model | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением gpt-3.5-turbo по умолчанию. |
temperature | Необязательно. Возвращает или задает используемую температуру выборки в виде строки между 0 и 2 . Более высокие значения (0.8 ) делают выходные данные более случайными, а более низкие значения, например (0.2 ), делают выходные данные более ориентированными и детерминированными. Следует использовать либо Temperature или TopP , но не оба. |
topP | Необязательно. Возвращает или задает альтернативу выборке с температурой, называемой выборкой ядра в виде строки. В этом методе выборки модель рассматривает результаты маркеров с top_p массой вероятности. Таким образом 0.1 , считаются только маркеры, состоящие из верхней массы вероятности 10 %. Следует использовать либо Temperature или TopP , но не оба. |
maxTokens | Необязательно. Возвращает или задает максимальное количество маркеров для создания в завершении в виде строки со значением по умолчанию 100 . Количество маркеров запроса плюс max_tokens не может превышать длину контекста модели. Большинство моделей имеют длину контекста 2048 токенов (за исключением новейших моделей, которые поддерживают 4096). |
Использование
Подробные примеры см. в разделе Примеры.