"""Readable Russian plans with metadata kept after the primary columns.""" import json COLUMNS = [ 'Задание', 'Сцена', 'План', 'Статус', 'Формат', 'Источник текста', 'ID записи', 'ID сценария', 'Выборка', 'Вход (задание и сцена)', 'Системная инструкция', 'Провайдер', 'Модель', 'Уровень проверки', ] STATUSES = {'ready': 'План готов', 'blocked': 'Задача невыполнима', 'continue': 'Следующее действие'} MODES = {'full': 'Полный план', 'step': 'Следующее действие', 'branch': 'План с условиями'} def csv_record(record): messages = {m['role']: m['content'] for m in record['messages']} user = messages['user'] try: user = json.dumps(json.loads(user), ensure_ascii=False, indent=2) except json.JSONDecodeError: pass return { 'Задание': record['task'], 'Сцена': record['scene_summary'], 'План': messages['assistant'], 'Статус': STATUSES[record['status']], 'Формат': MODES[record['mode']], 'Источник текста': 'LLM' if record['text_source'] == 'teacher' else 'Шаблон русского описания', 'ID записи': record['record_id'], 'ID сценария': record['scenario_id'], 'Выборка': record['split'], 'Вход (задание и сцена)': user, 'Системная инструкция': messages['system'], 'Провайдер': record['source']['provider'], 'Модель': record['source']['model'] or '', 'Уровень проверки': record['validation_level'], }