AR 15 M4 4a5695ed9c feat(sprint1): показ эмбеддингов чанков на странице отладки
Расширяем просмотр документа, чтобы оператор видел не только текстовые
чанки, но и как они лежат в ChromaDB в виде векторов — по паттерну из
work-pcs-dr-cdss.

Backend:
- services/vectorstore.get_document_chunks теперь запрашивает
  include=["embeddings"] и отдаёт вектор как list[float]. Chroma
  возвращает numpy-массивы, поэтому проверка наличия embeddings
  сделана через len(), без or-шортката.
- models.ChunkDetail: поля embedding: list[float] + embedding_dim: int.
- routers/documents прокидывает вектор и размерность в ответ.

Frontend (static/index.html):
- В карточку чанка добавлен блок .chunk-card-actions с кнопкой
  «вектор (N dim)»; раскрывается в .embedding-box с полным списком
  координат (округление до 6 знаков, моноширинный шрифт, скролл).
- Функция toggleChunkText переписана через .closest + querySelector,
  чтобы не ломаться от новой обёртки кнопок.
- Добавлена toggleEmb(embId).

Проверено на загруженных документах — возвращается по 1024 координаты
(E5-large), совпадает с ожиданиями embedding-модели.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 09:59:24 +05:00

Chat Agent for Patients (RAG) — инструмент настройки

RAG-ядро + веб-инструмент для настройки пациентского чат-агента: загрузка wiki, редактирование промпта и правил, прогон сценариев.

Подключение реальных каналов (чат в мобильном приложении, бот в МАКС) делает другой разработчик — этот проект отдаёт ему готовое RAG-ядро и API плюс согласованную конфигурацию (системный промпт, правила, снапшот базы знаний).


Статус

🟡 Active — MVP, проектирование.


Цель проекта

  • Поднять RAG по wiki операторов и API диалога с агентом.
  • Дать операторам веб-инструмент, в котором они в процессе настройки:
    • загружают документы wiki (постепенно, по мере готовности — не пакетно);
    • редактируют системный промпт и правила поведения агента;
    • играют роль пациента в тестовом чате и смотрят, что отвечает агент;
    • сохраняют проработанные диалоги как сценарии и перегоняют их после изменения настроек.
  • Сама интеграция с реальными каналами (приложение, МАКС) — вне скоупа этого проекта.

Что не входит в скоуп

  • Реальная интеграция с чатом в мобильном приложении (work-pcs-pt-mobile).
  • Реальная интеграция с ботом в МАКС (work-pcs-pt-bots).
  • Очередь и UI оператора для живого переключения с агента на человека.
  • Мультипользовательская прод-эксплуатация.

Всё это — задача смежного разработчика, который будет использовать API этого сервиса.


Архитектура (черновик)

┌──────────────────────────────────┐      ┌──────────────────────┐
│  Web UI настройки (один экран)   │      │                      │
│  ┌────────────┐  ┌────────────┐  │      │   RAG (wiki)         │
│  │ База знаний│  │ Промпт +   │──┼─────▶│   ChromaDB + E5      │
│  │ (upload)   │  │ правила    │  │      └──────────────────────┘
│  └────────────┘  └────────────┘  │      ┌──────────────────────┐
│  ┌────────────┐  ┌────────────┐  │─────▶│   DeepSeek LLM API   │
│  │ Песочница  │  │ Сценарии   │  │      └──────────────────────┘
│  │ (чат)      │  │ (сохран.)  │  │
│  └────────────┘  └────────────┘  │
└──────────────────────────────────┘
              │
              ▼
       Chat Agent API (FastAPI)
       (тот же API, что потом получит
        внешний разработчик для каналов)

Ключевая идея: веб-инструмент — это единственный клиент агента на время настройки. Когда конфигурация «устаканивается», её снапшот отдаётся внешнему разработчику вместе с документированным API.


Технологический стек (предварительно)

Слой Технология Назначение
API FastAPI (Python 3.113.12) HTTP-эндпоинты агента и настройки
Vector DB ChromaDB База эмбеддингов wiki
Embeddings intfloat/multilingual-e5-large Русскоязычные эмбеддинги
LLM DeepSeek API Диалоговая модель
Хранилище конфигов и сценариев SQLite Промпты, правила, сценарии
Веб-UI Vanilla JS / лёгкий фреймворк Одностраничное приложение настройки
Контейнеризация Docker Изолированный запуск

База опыта — work-pcs-dr-cdss (RAG-сервис для врачей). Переиспользуем паттерн сервисов embeddings.py / vectorstore.py / document_processor.py / llm_client.py.


План (спринты)

См. SPRINTS.md.


Запуск

TBD — будет заполнено в Спринте 1.


Связанные проекты

  • work-pcs-dr-cdss — RAG для врачей, источник технических паттернов.
  • work-pcs-pt-mobile — мобильное приложение пациента (канал подключит другой разработчик).
  • work-pcs-pt-bots — пациентские боты МАКС (канал подключит другой разработчик).
S
Description
No description provided
Readme 722 KiB
Languages
Python 59%
HTML 40.8%
Mako 0.1%