File size: 9,964 Bytes
b7e1a75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
= 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
----