DocUA's picture
Initial commit with full project structure
b7e1a75
= SPEC-001: Гібридна система AI Assistant для інтеграції з Medical Brain
:sectnums:
:toc:
:source-highlighter: rouge
:icons: font
:experimental:
== Background
Medical Brain (MB) є потужною rule-based системою, яка аналізує клінічні дані та генерує рекомендації для лікарів і пацієнтів. Хоча MB демонструє стабільність і швидкість прийняття рішень, її ефективність обмежується строго визначеними правилами, що не дозволяють враховувати всі контексти пацієнта.
Для подолання цих обмежень пропонується розробити AI Assistant, який інтегрується з MB, забезпечуючи:
- Постійний моніторинг рекомендацій MB.
- Контекстну перевірку точності на основі широкого спектру даних (історія хвороб, лабораторні результати, взаємодії у чатах).
- Блокування потенційно некоректних рекомендацій із сповіщенням лікарів.
Система буде реалізована поступово з можливістю масштабування до більш складних функцій. Основні задачі: підвищення точності, безпеки, ефективності та гнучкості роботи MB.
== Requirements
Вимоги до системи AI Assistant для інтеграції з Medical Brain (MB) структуровані за методологією MoSCoW.
=== Must-have (Обов'язкові)
1. Постійний моніторинг рекомендацій MB у реальному часі.
2. Зіставлення рекомендацій MB з клінічними даними пацієнта, включаючи:
- Історію хвороб.
- Лабораторні результати.
- Поточний стан пацієнта.
3. Блокування некоректних рекомендацій MB до їхньої передачі лікарю чи пацієнту.
4. Генерація сповіщень до Supervisor Module у випадку виявлення помилок або невідповідностей.
5. Інтеграція з базою даних EHR для збереження та обробки даних пацієнта.
6. Підтримка механізмів Retrieval-Augmented Generation (RAG) для оптимізації використання ресурсів.
=== Should-have (Бажані)
1. Режими пам'яті (постійна й оперативна) для ефективного управління даними пацієнта.
2. Аналіз текстової взаємодії у чатах між пацієнтами й лікарями.
3. Масштабованість до Level 2 (рекомендації лікарям) і Level 3 (рекомендації пацієнтам).
4. Логування всіх дій системи для забезпечення трасування помилок.
=== Could-have (Можливі)
1. Зворотній зв'язок із лікарями для покращення моделей AI.
2. Кешування рекомендацій для підвищення швидкості.
3. Інтеграція з зовнішніми AI-платформами для вдосконалення моделей.
=== Won't-have (Виключення)
1. Пряма взаємодія з пацієнтами (поза межами рівнів, визначених системою).
2. Прогнозування складних сценаріїв без додаткового тестування й пілотування.
== Method
=== Архітектура системи
Система AI Assistant складається з таких основних компонентів:
[plantuml]
----
@startuml
!define RECTANGLE #White
rectangle "Medical Brain (MB)" as MB
rectangle "AI Assistant" as Assistant {
rectangle "LLM API\n(External Service)" as LLM_API
rectangle "Prompt Formation\nand Caching Module" as Prompt_Module
rectangle "Memory Module\n(Permanent/Operational)" as Memory_Module
}
rectangle "EHR Database" as EHR
rectangle "Supervisor Module" as Supervisor
MB --> Assistant: MB Recommendations
Assistant --> Supervisor: Notifications
LLM_API --> Assistant: Results
EHR --> Memory_Module: Patient Data
Prompt_Module --> LLM_API: Optimized Queries
Memory_Module --> Prompt_Module: Context
@enduml
----
=== Основні компоненти:
1. **Medical Brain (MB)**
Використовує rule-based логіку для первинного аналізу даних пацієнта та формування рекомендацій.
2. **AI Assistant**
Виконує розширений аналіз і перевірку рекомендацій MB.
- Взаємодія з LLM через зовнішнє API для отримання текстових відповідей на основі контексту.
- Формування оптимізованих prompts із використанням:
- Постійної пам'яті (історія хвороб, хронічні захворювання, протоколи лікування).
- Оперативної пам'яті (актуальні дані за останні 24–48 годин).
- Кешування повторюваних частин prompts для зменшення витрат.
3. **Модуль формування prompts**
- Генерує prompts для запитів до LLM, які враховують:
- Персоналізацію для конкретного пацієнта.
- Медичний контекст (включно з протоколами лікування).
- Кешує частини prompts, які не змінюються між запитами, наприклад:
- Загальні дані пацієнта (ім'я, хронічні стани).
- Протоколи лікування для спеціалізованих напрямків.
4. **Модуль пам'яті**
- **Постійна пам'ять**:
- Інтегрується з EHR для зберігання ключової інформації про пацієнта.
- Може використовувати RAG для динамічного отримання додаткових даних із протоколів лікування чи баз знань.
- **Оперативна пам'ять**:
- Реалізує ковзне вікно останніх подій, включно з взаємодіями у чатах і змінами стану пацієнта.
5. **Supervisor Module**
Виконує роль наглядача для контролю роботи MB і AI Assistant.
- Отримує нотифікації про виявлені помилки чи невідповідності.
- Підтримує інтерактивний інтерфейс для лікарів-контролерів.
6. **LLM API**
- Зовнішній сервіс для обробки текстових запитів.
- Підтримує великий контекстний обсяг (long-context window).
- Інтегрується через REST або gRPC API.
=== Алгоритм роботи:
1. **Збір даних**
- Дані з EHR інтегруються до постійної пам'яті через модуль пам'яті.
- Поточні події додаються до оперативної пам'яті в реальному часі.
2. **Формування запиту (prompt)**
- AI Assistant генерує запит до LLM, використовуючи:
- Кешовані статичні частини (загальні дані пацієнта, протоколи лікування).
- Динамічний контекст (поточні події, стан пацієнта).
3. **Використання RAG**
- За потреби дані для запиту отримуються з довготривалої пам'яті або баз знань.
- LLM формує відповідь, враховуючи релевантні матеріали.
4. **Аналіз рекомендацій MB**
- AI Assistant перевіряє відповідність рекомендацій MB протоколам і загальному контексту.
- Некоректні рекомендації блокуються, а сповіщення надсилаються до Supervisor Module.
5. **Кешування**
- Частини prompts, що залишаються незмінними між запитами, кешуються для оптимізації.
6. **Нотифікація Supervisor Module**
- У разі виявлення невідповідностей формується нотифікація з деталями проблеми.
=== Візуалізація
[plantuml]
----
@startuml
rectangle "Long-term Memory (EHR)" as LongMemory
rectangle "Short-term Memory (Operational)" as ShortMemory
rectangle "RAG Module" as RAG
rectangle "Context Caching" as Cache
rectangle "LLM API" as LLM
LongMemory --> Cache : Static Data Caching
ShortMemory --> Cache : Dynamic Data Updates
RAG --> Cache : Loading Specific Knowledge
Cache --> LLM : Prompt Formation
LLM --> AI_Assistant : Analysis Result
@enduml
----