Введение
Команде поддержки нужен черновик ответа на сообщение о двойном списании. Вы отправите обращение в Bedrock Runtime, уточните инструкции, изучите ответ и сравните использование токенов с ограничением вывода. AWS CLI уже настроена в новой VM LabEx; используйте только предоставленное синтетическое обращение.
Вы должны уметь запускать команды и читать текстовые файлы. Задача — создать и проверить черновик, а не отправлять сообщение клиенту или менять платёжные записи.
Связь с сертификацией
| Сертификация | Задача экзамена | Практика |
|---|---|---|
| AI Practitioner (AIF-C01) | Задачи 3.1, 3.2 | Ограничить длину вывода, дать явные инструкции и проверить сгенерированный текст. |

Создайте черновик ответа поддержки
На этом шаге вы выберете доступную текстовую модель и отправите обращение в Bedrock Runtime.
Сверху AWS View показывает модель и реальные результаты запросов. Снизу в Terminal вводятся команды. До запроса ответов нет. Появится ожидающий запрос, затем ответ, использование и остаток лимита.
Bedrock предоставляет доступ к базовым моделям, способным создавать текст для разных задач. Идентификатор выбирает модель; Converse — общий формат запроса для поддерживаемых диалоговых моделей. Здесь используется текстовая модель, доступная в этом рабочем пространстве.
Начните в каталоге упражнения. cd меняет текущий каталог Terminal:
cd /home/labex/project
Выведите модели, создающие текст. --by-output-modality TEXT фильтрует каталог; --query выбирает идентификатор и читаемое имя; --output table показывает эти поля таблицей:
aws bedrock list-foundation-models \
--by-output-modality TEXT \
--query 'modelSummaries[].[modelId,modelName]' \
--output table
Таблица содержит labex.text-v1:0, которую вы используете далее. Запись описывает модель, но не означает, что запрос вывода уже выполнен.
Запрос Converse содержит modelId, список messages и необязательные настройки вывода. У каждого сообщения есть role и блоки содержимого. Сообщение user содержит вопрос или задачу, текстовый блок использует поле text. maxTokens ограничивает вывод, а temperature управляет вариативностью выборки. Низкое значение может уменьшить различия, но не гарантирует точность или одинаковые ответы.
Создайте запрос JSON. cat > request.json записывает файл; <<'EOF' начинает буквальный многострочный ввод, последний EOF завершает его. Заменяется только указанный файл упражнения:
cat > request.json <<'EOF'
{
"modelId": "labex.text-v1:0",
"messages": [
{
"role": "user",
"content": [{"text": "Customer ticket Q-42: the customer reports that invoice Q-42 was charged twice. Draft an English support reply in two sentences."}]
}
],
"inferenceConfig": {"maxTokens": 512, "temperature": 0}
}
EOF
Отправьте запрос через bedrock-runtime converse. --cli-input-json file://request.json читает поля из файла. Заключительное > reply.json сохраняет ответ JSON вместо вывода на экран:
aws bedrock-runtime converse \
--cli-input-json file://request.json \
> reply.json
Дождитесь возвращения приглашения Terminal. Создание текста обычно занимает несколько секунд. Не запускайте другой запрос, пока первый ожидает ответа.
Прочитайте ответ:
cat reply.json
Найдите output.message.role: "assistant" и непустой блок text. usage сообщает обработанные токены, metrics.latencyMs — время в миллисекундах. Разверните завершённый запрос в AWS View над Terminal и сравните ответ с файлом.
Внимательно прочитайте черновик. Утверждает ли он, что расследование началось, возврат выполнен или списание подтверждено? В обращении нет таких фактов. Связный ответ может выдумывать детали; далее вы уточните инструкции. Сгенерированная фраза не является выполненной платёжной операцией.
Уточните инструкции по написанию
На этом шаге вы добавите явные инструкции и создадите другой черновик по тем же сообщённым фактам.
Поле system задаёт инструкции по задаче и стилю. Оставьте обращение в пользовательском сообщении, а ограничения — в системном. Конкретные указания могут сократить лишние детали, но ответ всё равно нужно проверять.
Создайте отдельный запрос, сохранив первый черновик для сравнения:
cat > revised-request.json <<'EOF'
{
"modelId": "labex.text-v1:0",
"system": [
{"text": "You draft customer-support replies. Use only the facts in the ticket. Write two concise English sentences. Acknowledge the customer's report and ask for information needed to verify it. Do not claim that a charge was confirmed, an investigation started or a refund issued."}
],
"messages": [
{
"role": "user",
"content": [{"text": "Customer ticket Q-42: the customer reports that invoice Q-42 was charged twice. No billing check or refund has been completed. Draft a reply."}]
}
],
"inferenceConfig": {"maxTokens": 512, "temperature": 0}
}
EOF
Создайте уточнённый черновик:
aws bedrock-runtime converse \
--cli-input-json file://revised-request.json \
> revised-reply.json
Проверьте сохранённый ответ стандартным форматировщиком JSON в Python: он проверяет корректность JSON и делает его читаемым:
python3 -m json.tool revised-reply.json
Разверните новый завершённый запрос в AWS View. Сравните оба черновика с обращением. Уточнённый запрос должен ясно выражать ожидания, но соответствие конкретного ответа всё ещё требует человеческой оценки. Не включайте выдуманную операцию в ответ клиенту.
Запросы независимы. Повторное использование модели не передаёт предыдущий ответ автоматически как историю. Последующий диалог должен явно включать предыдущие пользовательские сообщения и ответы ассистента в messages.
Проверьте токены и ограничения вывода
На этом шаге вы отправите ту же задачу с меньшим пределом вывода и изучите фактическое использование.
Токен — единица текста, обрабатываемая моделью, не обязательно одно слово. Входные токены включают задачу, системные инструкции и историю. Выходные — сгенерированные токены, о которых сообщает модель, включая возможные внутренние рассуждения. Возвращаемый totalTokens суммирует вход и выход.
maxTokens — верхняя граница, а не требование создать ровно столько токенов. Модель может закончить раньше. Создайте запрос с пределом 384 вместо 512:
cat > bounded-request.json <<'EOF'
{
"modelId": "labex.text-v1:0",
"system": [
{"text": "You draft customer-support replies. Use only the facts in the ticket. Write two concise English sentences. Acknowledge the customer's report and ask for information needed to verify it. Do not claim that a charge was confirmed, an investigation started or a refund issued."}
],
"messages": [
{
"role": "user",
"content": [{"text": "Customer ticket Q-42: the customer reports that invoice Q-42 was charged twice. No billing check or refund has been completed. Draft a reply."}]
}
],
"inferenceConfig": {"maxTokens": 384, "temperature": 0}
}
EOF
Отправьте его и сохраните ответ:
aws bedrock-runtime converse \
--cli-input-json file://bounded-request.json \
> bounded-reply.json
Изучите результат:
python3 -m json.tool bounded-reply.json
Сравните usage.outputTokens с пределом 384. stopReason: "end_turn" означает нормальное завершение; "max_tokens" — достижение предела, поэтому текст может быть неполным. Не считайте частичный ответ завершённым документом.
AWS View показывает то же использование и остаток credits. Credits учитывают потребление входа и выхода конкретной модели; число токенов не задаёт общую цену для всех моделей. Повторный запрос может использовать кешированный результат: токены указаны, а credits не уменьшились. Ограничение сдерживает запрос, но меньший предел не гарантирует меньший расход этого короткого ответа по сравнению с каждым предыдущим.

Если запрос завершился ошибкой или использование неопределённо, проверьте ошибку перед повтором. Неопределённый запрос может удерживать резерв, а новый запрос — расходовать ещё больше. Обработку таких случаев приложением вы изучите далее.
Удалите файлы упражнения
На этом шаге вы удалите локальные запросы и ответы после проверки черновиков.
Converse отправляет запрос вывода и не создаёт сервер или базу для удаления. Шесть файлов JSON — локальные результаты упражнения. Их удаление не отменяет токены и не возвращает потраченные credits.
rm удаляет названные файлы. Используйте точные имена ниже и сохраните остальные файлы проекта:
rm request.json reply.json revised-request.json revised-reply.json bounded-request.json bounded-reply.json
Выведите оставшиеся видимые элементы рабочего каталога:
ls
Шесть файлов должны отсутствовать. AWS View сохраняет реальные завершённые результаты этой VM с использованием. Удаление локального файла не превращает неудачный запрос в успешный и не стирает расход.
Заключение
Вы отправили реальные текстовые запросы Bedrock Converse, уточнили системные инструкции, проверили ответы и токены, ограничили вывод и удалили локальные файлы. Вы также отличили правдоподобный черновик от проверенного делового факта: перед использованием ответ нужно проверить.
Подробнее см. в документации AWS: Сообщения, инструкции и настройки вывода Converse; Содержимое ответа, причины остановки и использование Converse.



