Commit Graph

4 Commits

Author SHA1 Message Date
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
AR 15 M4 ccc3dde978 docs: план Спринта 2 — диалог с памятью + отдельная страница «Песочница»
Уточнения к плану Спринта 2 по итогам обсуждения:

- Вторая отладочная страница /sandbox вместо расширения текущей (старый
  Debug UI остаётся нетронутым).
- Все диалоги сохраняются навсегда, видны в левой колонке; можно открыть
  старый тред, переименовать, удалить. Имя треда — автоматом по первой
  реплике, с возможностью поменять.
- Стек хранилища: SQLite + SQLAlchemy 2.0 async + Alembic. Выбор под
  будущий рост (мульти-пользователи, мульти-промпты, несколько спец-RAG).
- В таблицу threads сразу заводим nullable-колонки user_id и
  agent_config_id — чтобы Спринты 3+ не тащили миграции задним числом.
- Набор эндпоинтов расширен: GET/PATCH/DELETE /threads, GET /threads/{id}.

В бэклог: хранение исходных файлов для переиндексации без повторной
загрузки.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 09:50:42 +05:00
AR 15 M4 a7f78d71b2 feat: Спринт 1 — RAG-ядро, загрузка wiki и Debug UI
FastAPI + ChromaDB + E5-large + DeepSeek по паттерну work-pcs-dr-cdss,
адаптированному под пациентский контекст:

- services: embeddings (E5-large с префиксами), vectorstore (коллекция
  operators_wiki), document_processor (PDF/DOCX/TXT/MD + чанкер с FAQ-
  паттерном под wiki), llm_client (системный промпт ассистента клиники),
  rag_pipeline (одиночный вопрос → retrieval → ответ).
- routers: /health, /documents (upload, list, chunks, delete), /query.
- static/index.html: шапка со статусом, блок базы знаний с раскрытием
  чанков по клику, блок тест-вопроса с 3-колоночным ответом
  (чанки со score / собранный промпт / ответ LLM).
- Порт 8003 (8001 занят CDSS, 8002 — voicenote).

E2E проверен: загрузка wiki_test.md → 2 чанка, вопрос «как записать
ребёнка к лору?» → top score 84.8%, корректный ответ DeepSeek.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 14:57:34 +05:00
AR 15 M4 d1e7749605 docs: init — README и SPRINTS для инструмента настройки пациентского чат-агента
Скоуп MVP: RAG-ядро + веб-инструмент настройки (загрузка wiki, песочница,
промпт/правила с версиями, сценарии, экспорт конфига). Интеграцию с каналами
(приложение, МАКС) делает другой разработчик.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 13:58:53 +05:00