-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Labels
P3Low priority / BacklogLow priority / Backlogphase:5-techdebtPhase 5: Technical DebtPhase 5: Technical DebtrefactoringArchitectural refactoringArchitectural refactoring
Description
Parent
Sub-issue of #641 (Phase 7: Service facade migration)
Зависит от
- Фаза 6: Protocol interfaces — типизация контрактов между модулями #496 (Phase 6 — KnowledgeService Protocol определён)
Цель
Создать единый KnowledgeService фасад, объединяющий поиск (wiki_rag_service.py) и управление коллекциями/документами/FAQ (modules/knowledge/service.py). Привести к Protocol из modules/knowledge/protocols.py.
Текущее состояние
Логика разделена между:
wiki_rag_service.py(top-level) — BM25 + embeddings search,retrieve(),retrieve_multi(),statsmodules/knowledge/service.py— 4 класса-синглтона:FAQService— CRUD FAQ записейKnowledgeDocService— CRUD документовKnowledgeCollectionService— CRUD коллекцийGitHubRepoProjectService— GitHub репо-проекты
Потребители:
- Оркестратор (
container.wiki_rag_service.retrieve()) - Knowledge роутеры (
from modules.knowledge.service import faq_service) - LLM подписчик (
KnowledgeUpdated→ FAQ reload)
Что сделать
- Создать
KnowledgeServiceImplвmodules/knowledge/facade.py, реализующий Protocol - Методы
search()иretrieve_context()делегируют кwiki_rag_service - Методы
get_collections(),get_documents(),sync_documents()делегируют к существующим service-классам - Методы
find_faq_answer(),get_faq_entries()делегируют кFAQService - Возвраты типизированы через TypedDict из
modules/knowledge/schemas.py - Зарегистрировать в
ServiceContainerкакknowledge_service
Нюансы
wiki_rag_serviceинициализируется позже (требует загрузки индексов) — фасад должен это учитывать (lazy или optional)wiki_rag_service.retrieve()возвращаетstr(форматированный markdown) — этоretrieve_context()в Protocol- Существующие 4 синглтона (
faq_service,knowledge_doc_service, etc.) остаются для backward compat search()возвращаетlist[dict]в wiki_rag → нужна конвертация вlist[SearchResult]
Критерии готовности
-
KnowledgeServiceImplреализует Protocol - Возвраты используют TypedDict
- Зарегистрирован в ServiceContainer
- Потребители могут мигрировать с
container.wiki_rag_serviceнаcontainer.knowledge_service - Тесты, CI зелёный
Оценка: M-L (1 PR)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P3Low priority / BacklogLow priority / Backlogphase:5-techdebtPhase 5: Technical DebtPhase 5: Technical DebtrefactoringArchitectural refactoringArchitectural refactoring