= NETIntel – СЦ6: Поставување прашање преку RAG / Chat == Опис Најавен оператор или аналитичар поставува прашање преку AI интерфејс. Серверот гради контекст (RAG – Retrieval Augmented Generation) од податоците во базата на податоци и го проследува до LLM сервис за генерирање одговор. == Актери * Оператор / Аналитичар * Сервер (RAG логика) * LLM сервис (OpenAI) == Предуслови * Валидна корисничка сесија (JWT `session` cookie добиен преку Google OAuth). * Корисникот има пристап до tenant во кој припаѓаат податоците. * Постојат релевантни записи во базата на податоци. == Главен тек 1. Корисникот внесува прашање во AI интерфејсот (со опционален параметар `computer_name`). 2. Клиентскиот интерфејс праќа барање `POST /api/chat` со полето `question`. 3. Серверот го чита `tenant_id` од корисничката сесија и проверува пристап. 4. Серверот гради RAG контекст преку читање на релевантни записи од базата: * `sysmon_events` * `computer_history` * `computer_processes` (филтрирани според `tenant_id` и, доколку е зададено, `computer_name`) 5. Серверот го повикува LLM сервисот со креираниот контекст и поставеното прашање. 6. LLM сервисот враќа текстуален одговор. 7. Серверот го проследува одговорот до клиентскиот интерфејс. 8. Клиентскиот интерфејс го прикажува одговорот на корисникот. == Алтернативни текови / Грешки * Корисникот не е автентициран → HTTP 401 (Unauthorized) * Нема доволно податоци за градење контекст → информативен одговор од LLM * Проблем со LLM сервисот → HTTP 502 (Bad Gateway) или fallback порака == Табели што се засегаат * sysmon_events * computer_history * computer_processes