обновлен формат генерации датасета

This commit is contained in:
Даниил Грабарь
2026-10-22 10:07:05 +10:00
parent 9e551a2ca9
commit 1059b47978
29 changed files with 2230 additions and 468 deletions
+124
View File
@@ -0,0 +1,124 @@
# Инструкции и тексты планов. В шаблонах user/retry сохраните ${payload}.
# action_templates: {object} — название объекта, {target} — место назначения.
teacher_system: |-
Составь последовательность действий робота на русском языке по команде и сцене.
Это высокоуровневый план для человека, а не программа управления: без Python,
ROS, координат приводов и записей вида pick: part_0 -> slot_0.
Для каждого действия верни text — самостоятельную русскую фразу с названием
объекта из scene.components[].name. Например: «Захватить объект „распределительная
коробка №1“», «Переместить объект „распределительная коробка №1“ к оператору», «Дождаться завершения сборки».
Одновременно укажи skill, object и target из доступных операций: эти поля нужны
только внутреннему валидатору и не попадут в обучающий текст ответа.
Текст должен точно описывать выбранную операцию, без дополнительных действий.
Соблюдай requires/forbids и эффекты add/delete. ready означает достижение goal;
blocked допустим только если цель недостижима. Не меняй постановку задачи.
Не отпускай удерживаемый объект до завершения работы, если задача требует удержания.
Каждая операция содержит reference_text — проверенное русское описание.
Используй его в text. Допускаются только изменения пунктуации, вводные
«Сначала», «Затем», «Далее» и замены: «переместить»/«перенести»,
«захватить»/«взять», «проверить»/«проконтролировать»,
«вернуться»/«возвратиться», «положение»/«местоположение».
Не добавляй действия, отрицания или условия, отсутствующие в reference_text.
teacher_user: ${payload}
teacher_retry: |-
Исправь план с учётом ошибки проверки.
${payload}
training_system:
full: |-
Составь полную последовательность действий робота на русском языке по заданию и сцене. Ответ — нумерованный список понятных действий с названиями объектов. Учитывай исходное состояние, зависимости и условия ожидания. Не пиши JSON, программный код или технические имена навыков. Если задача невыполнима, явно сообщи об этом.
step: |-
Укажи одно следующее действие робота на русском языке с учётом задания, текущей сцены и истории. Используй названия объектов. Не повторяй уже выполненные действия. Не пиши JSON или программный код. Если продолжить невозможно, сообщи об этом.
branch: |-
Составь план действий робота на русском языке с условиями продолжения: что делать при успехе и при ошибке. Используй нумерованные пункты и понятные названия объектов. При сбое остановись и запроси перепланирование по обновлённой сцене. Не пиши JSON, программный код или технические идентификаторы узлов.
training_user: ${payload}
task_instructions:
manipulation: |-
Перемести детали в сборочные позиции. Соблюдай зависимости деталей и проверь результат
каждой операции.
mechanical: Собери механический узел. Соблюдай зависимости деталей и проверь результат каждой операции.
fastening: Установи и затяни крепёж. Соблюдай зависимости деталей и проверь результат каждой операции.
press_fit: Собери прессовые соединения. Соблюдай зависимости деталей и проверь результат каждой операции.
electrical: Выполни электромонтаж. Соблюдай зависимости деталей и проверь результат каждой операции.
electronics: Установи электронные компоненты. Соблюдай зависимости деталей и проверь результат каждой операции.
adhesive: Собери клеевые соединения. Соблюдай зависимости деталей и проверь результат каждой операции.
welding: Соедини детали сваркой. Соблюдай зависимости деталей и проверь результат каждой операции.
collaborative: |-
Передай детали оператору для сборки. Соблюдай зависимости деталей и проверь результат каждой
операции.
inspection: |-
Проверь детали в контрольной позиции. Соблюдай зависимости деталей и проверь результат
каждой операции.
operator_assistance: |-
Удерживай распределительную коробку возле оператора, пока он устанавливает элементы. Когда сборка закончится, убери коробку на место хранения и вернись в исходное положение.
object_names:
manipulation: деталь
mechanical: деталь
fastening: крепёж
press_fit: деталь
electrical: провод
electronics: электронный компонент
adhesive: деталь
welding: деталь
collaborative: деталь
inspection: деталь
operator_assistance: распределительная коробка
action_templates:
detect: Определить положение объекта «{object}».
approach: Переместиться к объекту «{object}».
pick: Захватить объект «{object}».
position: Переместить объект «{object}» к месту «{target}».
place: Установить объект «{object}» в место «{target}».
release: Отпустить объект «{object}».
inspect: Проверить результат установки объекта «{object}».
align: Совместить объект «{object}» с местом установки «{target}».
insert: Вставить объект «{object}» в место «{target}».
insert_fastener: Установить объект «{object}» в крепёжное отверстие «{target}».
tighten: Затянуть крепёж «{object}» в месте «{target}».
press_fit: Запрессовать объект «{object}» в место «{target}».
route_wire: Проложить провод «{object}» к месту подключения «{target}».
connect: Подключить провод «{object}» в месте «{target}».
test_continuity: Проверить электрическую целостность соединения провода «{object}».
seat_component: Установить электронный компонент «{object}» в место «{target}».
test_connection: Проверить подключение компонента «{object}».
clean_surface: Очистить поверхность объекта «{object}» для склеивания.
apply_adhesive: Нанести клеевой состав на объект «{object}».
bond: Прижать объект «{object}» к месту соединения «{target}».
wait_cure: Дождаться отверждения клея на соединении объекта «{object}».
clamp: Зафиксировать объект «{object}» в приспособлении «{target}».
weld: Выполнить сварное соединение объекта «{object}» в месте «{target}».
wait_operator: Дождаться готовности оператора принять объект «{object}».
handover: Передать объект «{object}» оператору, сохраняя захват до отпускания.
confirm_assembly: Получить подтверждение сборки объекта «{object}» от оператора.
measure: Проверить размеры объекта «{object}».
move_to_operator: Переместить объект «{object}» к оператору.
hold: Удерживать объект «{object}» в неподвижном состоянии возле оператора.
wait_assembly: Дождаться подтверждения завершения сборки объекта «{object}», продолжая удерживать его.
move_to_storage: Переместить объект «{object}» в место «{target}».
return_home: Вернуться в исходное положение.
# Инструкции для второго JSONL. Названия навыков остаются английскими.
structured_system:
full: |-
Составь полный план по заданию и сцене. Верни только JSON с полями status и plan.
status: ready, если цель достижима; blocked, если задача невыполнима.
plan — массив действий с skill, object и, когда требуется место назначения, target.
skill — имя навыка на английском; object и target — русские названия из сцены.
Для pick, release и inspect не добавляй target. Не используй технические ID объектов.
При blocked сохрани выполнимую часть плана; если действий нет, верни пустой массив.
step: |-
Укажи следующее действие с учётом текущей сцены и истории. Верни только JSON
с полями status и plan. Если действие доступно, status — ready, plan содержит
ровно одно действие с skill, object и необязательным target. Если цель уже
достигнута, верни ready и пустой plan; если продолжить невозможно — blocked
и пустой plan. skill — имя навыка на английском, object и target — русские
названия. Для pick, release и inspect target не нужен. Не повторяй историю.
branch: |-
Составь план с ветвлением. Верни только JSON с полями status и plan.
status — ready или blocked для полного сценария. plan — массив действий:
skill, object, необязательный target, id, on_success, on_failure.
skill — имя навыка на английском; object и target — русские названия.
id имеет вид step_1, step_2 и далее. Выполнение начинается с первого элемента.
on_success указывает следующий id, а в последнем действии — ready или blocked.
on_failure всегда replan_required: остановиться, обновить сцену и перепланировать.
ready, blocked и replan_required — терминальные исходы, а не ID действий.
Пустой plan означает отсутствие действий; итог задан status.