idea_world_labDEV JOURNAL
суббота, 27 июня 2026 г.

27 июня 2026 г.

  • Перечитав docs/roadmaps/2026-06-26-source-to-ast-input-flow.md, написанный 26‑го, я решил, что в документе не хватает согласованности
    • Вместо того чтобы просто добавлять новый материал, считаю, что нужен документ, который заново систематизирует ту же тему на 27‑е число
    • Поэтому был создан новый файл docs/roadmaps/2026-06-27-source-to-ast-input-flow.md
  • Первый вариант документа от 27‑го содержит много описаний объектов и их структуры, из‑за чего трудно отследить, как именно происходит поток ввода
    • Затем, опираясь на отзывы к PR, была скорректирована направленность документа
    • В форме # <относительный‑путь> теперь конкретно указывается, из какого файла и какой строки попадает код в AST‑парсер
    • Как в примере player.gd (E020‑E034), поток разбивается по реальному диапазону строк, а часть текста переходит к поиску Retriever и оценке LLM
    • Путь к файлу используется только для отслеживания; в поиске Retriever попадает лишь chunkText‑фрагмент кода/текста, что теперь зафиксировано
  • docs_chunks, api_mapping, label_prototypes обрабатываются без особых исключений тем же способом, а LLM повторно проверяет найденные варианты
  • Сегодняшняя работа была направлена на то, чтобы до начала реальной реализации зафиксировать в документе, как именно ввод и вывод соединяются, чтобы AI не менял диапазоны произвольно или не переходил к абстрактным описаниям структуры
  • Для проверки описанного потока был реализован веб‑инструмент Source Flow Debugger
    • Запускается локально по адресу http://127.0.0.1:8010/, где можно увидеть ввод проекта Godot
    • Ввод, раскрытый через # <относительный‑путь>, разбивается по файлам: .gd превращаются в chunk‑ы AST, а .godot и .tscn — в прямые chunk‑ы
    • На небольшом проекте Godot получаем 5 файлов, 14 chunk‑ов, AST 9, Direct 5
    • Файлы типа README.md исключаются из режима source‑analysis, а факт и причина исключения отображаются на экране
  • Добавлен UI для отладки каждого chunk‑а
    • Под каждым chunk‑ом размещены кнопки docs_chunks 검색, api_mapping 검색, label_prototypes 검색, Validate JSONL
    • Вместо глобального чекбокса таблицы поиск выполняется непосредственно под текущим chunk‑ом
    • Ввод Retriever показывает только { "chunkText": "..." }, без пути, номера строки и подсказки
    • Проверка Qwen используется только на этапе prompt + chunkText + retrieved JSONL
  • При реальном использовании веб‑отладчика исправлены обнаруженные проблемы
    • Удалено автоматическое добавление примера кода Godot при загрузке страницы
    • При повторной загрузке того же файла/папки событие change браузера срабатывает снова: значение поля загрузки очищается при клике
    • Чтобы старый JS не оставался в кэше, к статическим ответам добавлен заголовок cache-control: no-store
    • В обработчике ошибок PostgreSQL‑поиска теперь безопасно вызывается client.end() даже при неудачном создании/подключении клиента
  • Результаты реализации зафиксированы в отдельном документе с скриншотами
  • Запись реализации: Source Flow Debugger запись реализации
  • Скриншот: Source Flow Debugger Godot анализ экрана
  • На текущий момент разбиение на chunk‑ы считается частично успешным; дальше будет исследовано, как именно выполнять поиск в базе данных
    • Нужно проверить, какие JSONL‑кандидаты возвращаются из docs_chunks, api_mapping, label_prototypes только по chunkText
    • Также следует определить, как на этапе проверки Qwen решать, относится ли найденный JSONL к текущему chunk‑у и следует ли его отбрасывать
  • Прежде чем интегрировать поиск в БД, с помощью GPT созданы демонстрационные chunk‑ы Godot и связанные/несвязанные JSONL, чтобы протестировать запросы сопоставления
    • Сначала задавали вопрос типа «Содержит ли этот JSONL информацию, соответствующую исходному коду? Ответьте только «да» или «нет»», но получали «да» и для релевантных, и для нерелевантных JSONL
    • Затем ограничили ответ «да» только тем случаем, когда хотя бы одно из полей source_api, source_pattern, match_terms, required_when_seen_in_code, before_code точно совпадает с реальной строкой кода или вызовом API
    • Исключили оценку по широкой семантике или предвзятым знаниям LLM о Godot; теперь проверка опирается лишь на строковое совпадение, указанное в JSONL: релевантные JSONL получают «да», нерелевантные — «нет»
    • Этот эксперимент показал, что после поиска в БД этап проверки Qwen должен сначала проверять наличие точного строкового доказательства в найденном JSONL, а не «правдоподобную семантическую схожесть»
  • Журнал наблюдений: Журнал наблюдений по выбору тестового репозитория на основе статуса сбора JSONL
  • Журнал наблюдений: JSONL основание сопоставления подсказки наблюдение
  • Завтра планируется создать несколько наборов демонстрационных chunk‑ов Godot с релевантными и нерелевантными JSONL и многократно протестировать, какие основания использует Qwen для вывода «да»/«нет»