Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Расширение Azure OpenAI для Функции Azure в настоящее время находится в предварительной версии.
Помощник по Azure OpenAI после входной привязки позволяет отправлять запросы помощникам ботам чата.
Сведения о настройке и настройке расширения Azure OpenAI см. в Функции Azure расширения Azure OpenAI. Дополнительные сведения о помощниках По Azure OpenAI см. в api Azure OpenAI Assistants.
Примечание.
Ссылки и примеры предоставляются только для модели Node.js версии 4.
Примечание.
Ссылки и примеры предоставляются только для модели Python версии 2.
Примечание.
Хотя поддерживаются обе модели процессов C#, предоставляются только примеры изолированных рабочих моделей .
Пример
В этом примере демонстрируется процесс создания, в котором функция HTTP POST, которая отправляет пользователю запросы в помощник чат-бот. Ответ на запрос возвращается в ответе HTTP.
/// <summary>
/// HTTP POST function that sends user prompts to the assistant chat bot.
/// </summary>
[Function(nameof(PostUserQuery))]
public static IActionResult PostUserQuery(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "assistants/{assistantId}")] HttpRequestData req,
string assistantId,
[AssistantPostInput("{assistantId}", "{Query.message}", ChatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", ChatStorageConnectionSetting = DefaultChatStorageConnectionSetting, CollectionName = DefaultCollectionName)] AssistantState state)
{
return new OkObjectResult(state.RecentMessages.Any() ? state.RecentMessages[state.RecentMessages.Count - 1].Content : "No response returned.");
}
В этом примере демонстрируется процесс создания, в котором функция HTTP POST, которая отправляет пользователю запросы в помощник чат-бот. Ответ на запрос возвращается в ответе HTTP.
/*
* HTTP POST function that sends user prompts to the assistant chat bot.
*/
@FunctionName("PostUserResponse")
public HttpResponseMessage postUserResponse(
@HttpTrigger(
name = "req",
methods = {HttpMethod.POST},
authLevel = AuthorizationLevel.ANONYMOUS,
route = "assistants/{assistantId}")
HttpRequestMessage<Optional<String>> request,
@BindingName("assistantId") String assistantId,
@AssistantPost(name="newMessages", id = "{assistantId}", chatModel = "%CHAT_MODEL_DEPLOYMENT_NAME%", userMessage = "{Query.message}", chatStorageConnectionSetting = DEFAULT_CHATSTORAGE, collectionName = DEFAULT_COLLECTION) AssistantState state,
final ExecutionContext context) {
List<AssistantMessage> recentMessages = state.getRecentMessages();
String response = recentMessages.isEmpty() ? "No response returned." : recentMessages.get(recentMessages.size() - 1).getContent();
return request.createResponseBuilder(HttpStatus.OK)
.header("Content-Type", "application/json")
.body(response)
.build();
}
В этом примере демонстрируется процесс создания, в котором функция HTTP POST, которая отправляет пользователю запросы в помощник чат-бот. Ответ на запрос возвращается в ответе HTTP.
const { app, input, output } = require("@azure/functions");
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [assistantPostInput],
handler: async (_, context) => {
const chatState = context.extraInputs.get(assistantPostInput)
const content = chatState.recentMessages[0].content
return {
status: 200,
body: content,
headers: {
'Content-Type': 'text/plain'
}
};
}
})
import { HttpRequest, InvocationContext, app, input, output } from "@azure/functions"
const assistantPostInput = input.generic({
type: 'assistantPost',
id: '{assistantId}',
chatModel: '%CHAT_MODEL_DEPLOYMENT_NAME%',
userMessage: '{Query.message}',
chatStorageConnectionSetting: CHAT_STORAGE_CONNECTION_SETTING,
collectionName: COLLECTION_NAME
})
app.http('PostUserResponse', {
methods: ['POST'],
route: 'assistants/{assistantId}',
authLevel: 'anonymous',
extraInputs: [assistantPostInput],
handler: async (_, context) => {
const chatState: any = context.extraInputs.get(assistantPostInput)
const content = chatState.recentMessages[0].content
return {
status: 200,
body: content,
headers: {
'Content-Type': 'text/plain'
}
};
}
})
В этом примере демонстрируется процесс создания, в котором функция HTTP POST, которая отправляет пользователю запросы в помощник чат-бот. Ответ на запрос возвращается в ответе HTTP.
Ниже приведен файл function.json для отправки запроса пользователя:
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"route": "assistants/{assistantId}",
"methods": [
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"name": "State",
"type": "assistantPost",
"direction": "in",
"dataType": "string",
"id": "{assistantId}",
"userMessage": "{Query.message}",
"chatModel": "%CHAT_MODEL_DEPLOYMENT_NAME%",
"chatStorageConnectionSetting": "AzureWebJobsStorage",
"collectionName": "ChatState"
}
]
}
Дополнительные сведения о свойствах файла function.json см. в разделе "Конфигурация ".
using namespace System.Net
param($Request, $TriggerMetadata, $State)
$recent_message_content = "No recent messages!"
if ($State.recentMessages.Count -gt 0) {
$recent_message_content = $State.recentMessages[0].content
}
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $recent_message_content
Headers = @{
"Content-Type" = "text/plain"
}
})
В этом примере демонстрируется процесс создания, в котором функция HTTP POST, которая отправляет пользователю запросы в помощник чат-бот. Ответ на запрос возвращается в ответе HTTP.
@apis.function_name("PostUserQuery")
@apis.route(route="assistants/{assistantId}", methods=["POST"])
@apis.assistant_post_input(
arg_name="state",
id="{assistantId}",
user_message="{Query.message}",
chat_model="%CHAT_MODEL_DEPLOYMENT_NAME%",
chat_storage_connection_setting=DEFAULT_CHAT_STORAGE_SETTING,
collection_name=DEFAULT_CHAT_COLLECTION_NAME,
)
def post_user_response(req: func.HttpRequest, state: str) -> func.HttpResponse:
# Parse the JSON string into a dictionary
data = json.loads(state)
# Extract the content of the recentMessage
recent_message_content = data["recentMessages"][0]["content"]
return func.HttpResponse(
recent_message_content, status_code=200, mimetype="text/plain"
)
Атрибуты
Примените атрибут для PostUserQuery
определения помощника после входной привязки, которая поддерживает следующие параметры:
Параметр | Описание |
---|---|
Идентификатор | Идентификатор помощника для обновления. |
UserMessage | Возвращает или задает пользовательское сообщение для модели завершения чата, закодированное в виде строки. |
AIConnectionName | Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY. |
ChatModel |
Необязательно. Возвращает или задает идентификатор модели, используемой в качестве строки, со значением 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). |
IsReasoningModel |
Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением false по умолчанию. |
Заметки
Заметка PostUserQuery
позволяет определить привязку помощника после ввода, которая поддерживает следующие параметры:
Элемент | Описание |
---|---|
имя | Имя выходной привязки. |
идентификатор | Идентификатор помощника для обновления. |
userMessage | Возвращает или задает пользовательское сообщение для модели завершения чата, закодированное в виде строки. |
aiConnectionName | Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY. |
chatModel | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением 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). |
isReasoningModel |
Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением false по умолчанию. |
Декораторы
Во время предварительной версии определите выходную привязку как привязку generic_output_binding
типа postUserQuery
, которая поддерживает следующие параметры:
Параметр | Описание |
---|---|
arg_name | Имя переменной, представляющей параметр привязки. |
идентификатор | Идентификатор помощника для обновления. |
user_message | Возвращает или задает пользовательское сообщение для модели завершения чата, закодированное в виде строки. |
ai_connection_name | Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY. |
chat_model | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением gpt-3.5-turbo по умолчанию. |
температура |
Необязательно. Возвращает или задает используемую температуру выборки в виде строки между 0 и 2 . Более высокие значения (0.8 ) делают выходные данные более случайными, а более низкие значения, например (0.2 ), делают выходные данные более ориентированными и детерминированными. Следует использовать либо Temperature или TopP , но не оба. |
top_p |
Необязательно. Возвращает или задает альтернативу выборке с температурой, называемой выборкой ядра в виде строки. В этом методе выборки модель рассматривает результаты маркеров с top_p массой вероятности. Таким образом 0.1 , считаются только маркеры, состоящие из 10 лучших% массы вероятностей. Следует использовать либо Temperature или TopP , но не оба. |
max_tokens |
Необязательно. Возвращает или задает максимальное количество маркеров для создания в завершении в виде строки со значением по умолчанию 100 . Количество маркеров запроса плюс max_tokens не может превышать длину контекста модели. Большинство моделей имеют длину контекста 2048 токенов (за исключением новейших моделей, которые поддерживают 4096). |
is_reasoning _model |
Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением false по умолчанию. |
Настройка
Привязка поддерживает эти свойства конфигурации, заданные в файле function.json.
Свойство | Описание |
---|---|
тип | Этот параметр должен содержать значение PostUserQuery . |
направление | Этот параметр должен содержать значение out . |
имя | Имя выходной привязки. |
идентификатор | Идентификатор помощника для обновления. |
userMessage | Возвращает или задает пользовательское сообщение для модели завершения чата, закодированное в виде строки. |
aiConnectionName | Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY. |
chatModel | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением 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). |
isReasoningModel |
Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением false по умолчанию. |
Настройка
Привязка поддерживает эти свойства, определенные в коде:
Свойство | Описание |
---|---|
идентификатор | Идентификатор помощника для обновления. |
userMessage | Возвращает или задает пользовательское сообщение для модели завершения чата, закодированное в виде строки. |
aiConnectionName | Необязательно. Возвращает или задает имя раздела конфигурации для параметров подключения службы ИИ. Для Azure OpenAI: если указано, найдите значения Endpoint и Key в этом разделе конфигурации. Если этот раздел не указан или раздел не существует, возвращается к переменным среды: AZURE_OPENAI_ENDPOINT и AZURE_OPENAI_KEY. Для проверки подлинности управляемого удостоверения, назначаемого пользователем, это свойство необходимо. Для службы OpenAI (не Azure) задайте переменную среды OPENAI_API_KEY. |
chatModel | Возвращает или задает идентификатор модели, используемой в качестве строки, со значением 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). |
isReasoningModel |
Необязательно. Возвращает или задает значение, указывающее, является ли модель завершения чата моделью причин. Этот параметр является экспериментальным и связан с моделью причин, пока все модели не имеют четности в ожидаемых свойствах с значением false по умолчанию. |
Использование
Подробные примеры см. в разделе Примеры.