Przejdź do głównej zawartości

AI Pipeline Overview

AI Suite to 149 plików, ~22.6k LOC - największy moduł w Vista.

graph TB
subgraph Frontend["AI Suite Frontend (149 files, 22.6k LOC)"]
subgraph Engine["Engine Layer"]
AIChatContext[AIChatContext]
AIChatProvider[AIChatProvider]
AssistantHostManager[AssistantHostManager]
end
subgraph Hosts["Host Components"]
FloatingHost[AIFloatingHost<br/>Orb + Panel]
SystemHost[AISystemHost<br/>Full-page]
SpecialistHost[AISpecialistHost<br/>Visit context]
end
subgraph Hooks["Core Hooks"]
useStreamingManager[useStreamingManager<br/>977 LOC]
useUnifiedAI[useUnifiedAI<br/>439 LOC]
useChatHistory[useChatHistory<br/>318 LOC]
useChatSending[useChatSending<br/>380 LOC]
end
subgraph UI["UI Components"]
InputArea[InputArea<br/>655 LOC]
ChatCanvas[AIChatCanvas<br/>1,078 LOC]
FloatingOrb[AIFloatingOrb<br/>570 LOC]
MessageList[FloatingMessageList]
end
subgraph Agents["AI Agents"]
NotesAgent[Notes Agent]
SuggestionsAgent[Suggestions Agent]
VoiceAgent[Voice Agent]
end
end
subgraph Backend["Rust Backend (40 commands)"]
UnifiedAI[unified_ai module]
SOAP[soap_generation.rs<br/>24,961 LOC]
Chat[chat/service.rs]
VectorMemory[vector_memory/]
Diagnostics[diagnostics.rs<br/>28,669 LOC]
end
Engine --> Hosts
Hooks --> Engine
UI --> Hooks
Agents --> Hooks
Hooks --> UnifiedAI
CategoryCommands
Chatunified_ai_chat, unified_ai_chat_stream, unified_ai_poll_response
SOAPstart_soap_generation, get_soap_generation_status, unified_ai_generate_soap
Suggestionsunified_ai_generate_suggestions, unified_ai_generate_tasks, unified_ai_generate_differential
Memoryget_vista_memory, save_vista_memory, ai_context_vault_*
Sessionsai_chat_session_save, ai_chat_sessions_list, ai_chat_session_load
Diagnosticsdiagnostics_ai_config, diagnostics_ai_curl, unified_ai_health_check
pie showData
title "Tauri Commands by Module (197 active)"
"Visits" : 25
"AI Suite" : 40
"Audio" : 16
"Patients" : 15
"Auth" : 18
"Tasks" : 9
"Calendar" : 10
"Settings" : 12
"Analytics" : 12
"Dictionary" : 7
"Clinical Notes" : 5
"Other" : 28
sequenceDiagram
participant UI as ChatPanel
participant Hook as useStreamingManager
participant Tauri as Tauri Events
participant Rust as unified_ai_chat_stream
UI->>Hook: sendMessage(text)
Hook->>Rust: invoke('unified_ai_chat_stream', {requestId})
Hook->>Tauri: listen('ai-stream-token:' + requestId)
Hook->>Tauri: listen('ai-stream-complete:' + requestId)
Hook->>Tauri: listen('ai-stream-error:' + requestId)
loop Token streaming
Rust->>Tauri: emit('ai-stream-token:' + requestId, token)
Tauri-->>Hook: onToken(token)
Hook->>UI: appendToken(token)
end
alt Success
Rust->>Tauri: emit('ai-stream-complete:' + requestId)
Tauri-->>Hook: onComplete()
Hook->>UI: finishMessage()
else Error
Rust->>Tauri: emit('ai-stream-error:' + requestId, error)
Tauri-->>Hook: onError(error)
Hook->>UI: showError()
end
Hook->>Tauri: unlisten(all listeners)

Vista implementuje zaawansowany system AI z automatycznym failover:

sequenceDiagram
participant UI as Frontend UI
participant UAI as Unified AI Client
participant SR as Service Resolver
participant LIB as LibraxisAI Cloud
participant MLX as Local MLX
participant OAI as OpenAI API
UI->>UAI: AI Request (transcribe/chat/generate)
UAI->>SR: Resolve Provider Chain
Note over SR: Provider Priority:<br/>1. LibraxisAI<br/>2. Local MLX<br/>3. OpenAI
SR->>LIB: Try Primary (LibraxisAI)
alt LibraxisAI Success
LIB->>SR: Response + Metrics
SR->>UAI: Success
UAI->>UI: Result
else LibraxisAI Failure
SR->>MLX: Try Secondary (MLX)
alt MLX Success
MLX->>SR: Response
SR->>UAI: Success
UAI->>UI: Result
else MLX Failure
SR->>OAI: Try Tertiary (OpenAI)
OAI->>SR: Response
SR->>UAI: Success
UAI->>UI: Result
end
end
Audio Recording
Speech-to-Text (Whisper)
Medical Context Analysis (LLM)
SOAP Structure Generation
Human Review & Approval