Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы исследуете основные концепции инженерии подсказок. Многие модели ИИ основаны на запросах, что означает, что они реагируют на текст ввода пользователем ( запрос) с ответом, созданным прогнозными алгоритмами ( завершением). Новые модели также часто поддерживают завершение в формате чата с сообщениями на основе ролей (система, пользователь, помощник) и истории чатов, чтобы сохранить беседы.
Работа с подсказками
Модели, поддерживающие приложения на основе чата, используют три роли для упорядочивания завершений: системная роль, управляющая чатом, роль пользователя для представления входных данных пользователей и роль помощника для реагирования на пользователей. Разделите подсказки на сообщения для каждого участника.
- Системные сообщения предоставляют инструкции по модели помощника. Запрос может иметь только одно системное сообщение, и оно должно быть первым сообщением.
- Сообщения пользователей включают запросы от пользователя, примеры или инструкции для помощника. Пример завершения чата должен иметь по крайней мере одно сообщение пользователя.
- Сообщения помощника показывают примеры или исторические завершения и должны содержать ответ на предыдущее сообщение пользователя. Сообщения помощника не требуются, но если вы включаете его, его необходимо связать с пользовательским сообщением, чтобы сформировать пример.
Применяйте инструкции для улучшения выполнения
Инструкция — это текст, который сообщает модели, как реагировать. Инструкция может быть директивой или императивом:
- Директивы указывают модели, как вести себя, но не являются простыми командами — это как установка характера для актёра импровизации: "Вы помогаете учащимся узнать об истории Соединённых Штатов, поэтому говорите о Соединённых Штатах, если только они специально не спрашивают о других странах или регионах".
- Императивы являются однозначными командами для выполнения модели. "Перевод в Tagalog:"
Использование примеров для руководства по модели
Примером является текст, показывающий модель реагирования путем предоставления примера входных данных пользователя и выходных данных модели. В модели используются примеры для определения того, что следует включить в результаты. Примеры могут поступать либо до, либо после инструкций в инженерном запросе, но они не должны перемежаться.
Пример начинается с подсказки и может дополнительно включать завершение. Завершение в примере не обязательно должно включать буквальный ответ — оно может просто содержать отформатированное слово, первый пункт в неупорядоченном списке или что-то подобное, чтобы указать, как каждое завершение должно начинаться.
Классифицируйте примеры как обучение без примеров или обучение на нескольких примерах на основе того, содержат ли они дословные завершения.
- Примеры обучения без предварительной подготовки включают подсказку без дословного завершения. Этот подход проверяет ответы модели, не предоставляя пример выходных данных. Запросы нулевого снимка могут иметь завершение, включающее подсказки, например, указывая, что модель должна выводить упорядоченный список, включая "1". в качестве завершения.
- Примеры обучения с ограниченным числом примеров включают несколько пар запросов с дословными завершениями. Обучение с небольшим количеством данных (few-shot learning) может изменить поведение модели, расширяя её существующие знания.
Сигналы
Подсказка — это текст, который передает нужную структуру или формат выходных данных. Как и инструкция, подсказка не обрабатывается моделью, как если бы это были входные данные пользователя. Как в примере, подсказка показывает модели, что вы хотите, вместо того чтобы говорить ей, что делать. Добавьте столько подсказок, сколько вам нужно, чтобы экспериментировать и получить желаемый результат. Используйте подсказки с инструкцией или примером и поместите их в конец запроса.
Пример запроса с помощью .NET
.NET предоставляет различные средства для запроса и чата с различными моделями ИИ. Используйте agent Framework для подключения к различным моделям и службам ИИ. Agent Framework включает средства для создания агентов с системными инструкциями и поддержания состояния беседы на протяжении нескольких обменов.
Рассмотрим следующий пример кода.
using Azure;
using Azure.AI.OpenAI;
using Microsoft.Agents.AI;
using OpenAI.Chat;
string endpoint = "https://<your-endpoint>.openai.azure.com/";
string apiKey = "<your-api-key>";
AIAgent agent = new AzureOpenAIClient(
new Uri(endpoint),
new AzureKeyCredential(apiKey))
.GetChatClient("gpt-4o")
.AsAIAgent();
// Create a session to maintain conversation state.
AgentSession session = await agent.CreateSessionAsync();
while (true)
{
// Get user prompt.
Console.WriteLine("Your prompt:");
string? userInput = Console.ReadLine();
if (string.IsNullOrWhiteSpace(userInput))
break;
// Send prompt to agent and stream response.
Console.WriteLine("AI response:");
await foreach (AgentResponseUpdate update in agent.RunStreamingAsync(userInput, session))
{
Console.Write(update.Text);
}
Console.WriteLine();
}
Предыдущий код:
- Создает клиент Azure OpenAI с указанной конечной точкой и ключом API.
- Получает чат-клиент для модели GPT-4o и преобразует его в ИИ-агента.
- Создает сеанс агента для поддержания состояния диалога через несколько взаимодействий.
- Принимает входные данные пользователя в цикле, чтобы разрешить различные типы запросов.
- Асинхронно передает ответ ИИ и отображает его в консоли.