Astra: организация контекста и структурированного плана игры
Astra подходит для подготовки задачи перед игрой, составления плана и анализа по отчётам о запусках. Нажатия клавиш в реальном времени выполняет локальный контроллер.
Офлайн-подготовка
Инструменты контекста в этой главе используют стандартную библиотеку; сначала сгенерируйте запрос и пример плана:
python piano_context.py prepare --out runs/context
python piano_context.py verify --plan example.plan.json
Входами служат task.json, plan.schema.json и пример плана. С помощью --image можно добавить скриншот сцены. --feedback принимает JSON-массив; каждая запись может содержать time_seconds, expected_midi, observed_midi, outcome и error. Отчёт об исполнении в формате целого объекта напрямую передавать нельзя.
Необязательный онлайн-вызов
Команда piano_context.py online --run runs/context выполняет реальный запрос к API и стоит денег; перед вызовом задайте собственные учётные данные. В скрипте запрашивается модель gpt-6-astra; сначала убедитесь, что ваша точка доступа открыта для этой модели, и не считайте подписку на десктопный клиент правом доступа к API.
Для онлайн-вызова установите пакет Python openai, задайте OPENAI_API_KEY, а при использовании собственной совместимой точки доступа — OPENAI_BASE_URL по её инструкции. Ключи не записываются в репозиторий; разбор ответа см. в piano_context.py. Прилагаемые примеры работают офлайн, а подключение модели не требуется для запуска симуляции.
Сгенерированный план должен пройти проверку полей, времени, аппликатуры и досягаемости, и только после этого запускается симуляция. Мелодия произведения определяется по нотам, которые предоставил пользователь или которые он имеет право использовать; не стоит угадывать ноты модели по названию песни.
Совместная работа трёх уровней
- Astra: готовит контекст и кандидатные планы, читает обратную связь от запусков.
- G0.5: по фактическим наблюдениям предлагает корректировку действий для двух рук.
- Локальный контроллер игры: выполняет двуручную аппликатуру, аккорды, касания клавиш и генерацию звука.
Текущий открытый основной процесс может читать уже подготовленные JSON-упражнения и не требует онлайн-вызова Astra.