AI Commands
Przegląd
Dział zatytułowany „Przegląd”Unified AI to centralna warstwa AI w Viście. Wszystkie wywołania AI przechodzą przez backend Tauri (unified_ai_* commands).
Client: src/services/ai/UnifiedAIClient.ts
Types: src/types/api/ai.ts
flowchart TB subgraph "Frontend" AISuite[AI Suite Panel] Chat[Chat Component] SOAP[SOAP Generator] Tasks[Task Suggestions] end
subgraph "UnifiedAIClient" chat[chat / chatStream] transcribe[transcribe] synthesize[synthesize] generateSOAP[generateSOAP] analyzeDoc[analyzeDocument] end
subgraph "Backend" unified_ai_chat unified_ai_chat_stream unified_ai_transcribe unified_ai_synthesize unified_ai_generate_soap unified_ai_analyze_document end
AISuite --> chat Chat --> chat SOAP --> generateSOAP Tasks --> chat
chat --> unified_ai_chat chat --> unified_ai_chat_streamChat Commands
Dział zatytułowany „Chat Commands”unified_ai_chat
Dział zatytułowany „unified_ai_chat”Główne API chatu w AI Suite.
UnifiedAIClient.chat(message: string, options?: ChatOptions): Promise<ChatResponse>
// ImplementationinvokeWithSession('unified_ai_chat', buildChatPayload(...))// → normalizeChatResponse(result)unified_ai_chat_stream
Dział zatytułowany „unified_ai_chat_stream”Streaming odpowiedzi z tokenami.
UnifiedAIClient.chatStream( message: string, options: ChatOptions, onToken: (token: string) => void, onComplete: (response: ChatResponse) => void, onError: (error: Error) => void)
// Events'ai-stream-token:<requestId>' → onToken'ai-stream-complete:<requestId>' → onComplete'ai-stream-error:<requestId>' → onError
// Fire-and-forgetinvokeWithSession('unified_ai_chat_stream', buildChatPayload(..., { request_id }))unified_ai_chat_background
Dział zatytułowany „unified_ai_chat_background”Chat w tle, bez pełnego UI.
UnifiedAIClient.chatBackground(message: string, options?: ChatOptions)// → invokeWithSession('unified_ai_chat_background', payload)unified_ai_cancel_stream
Dział zatytułowany „unified_ai_cancel_stream”Przerwanie streamingu.
UnifiedAIClient.cancelStream(requestId: string)// → safeInvoke('unified_ai_cancel_stream', { requestId })Polling & Events
Dział zatytułowany „Polling & Events”// Poll dłużej trwających odpowiedziUnifiedAIClient.pollResponse(responseId, { canonicalModel })// → 'unified_ai_poll_response'
// Lista eventów odpowiedziUnifiedAIClient.listResponseEvents(responseId, { canonicalModel, starting_after })// → 'unified_ai_list_response_events'Transcription & TTS
Dział zatytułowany „Transcription & TTS”unified_ai_transcribe
Dział zatytułowany „unified_ai_transcribe”UnifiedAIClient.transcribe(audioBlob: Blob, options?: TranscribeOptions): Promise<TranscriptionResponse>
// FlowBlob → Array<number> → invokeWithSession('unified_ai_transcribe', { audioData, language, format})// → normalizeTranscriptionResponse(result)unified_ai_synthesize
Dział zatytułowany „unified_ai_synthesize”Text-to-Speech.
UnifiedAIClient.synthesize(text: string, options?: TTSOptions): Promise<Blob>
// FlowinvokeWithSession('unified_ai_synthesize', { text, voice, language})// → number[] (audioData) → Blob('audio/mp3')SOAP & Documents
Dział zatytułowany „SOAP & Documents”unified_ai_generate_soap
Dział zatytułowany „unified_ai_generate_soap”Generowanie notatek SOAP.
UnifiedAIClient.generateSOAP( visitContext: VisitContext, templateType?: string, userId?: string): Promise<SOAPResponse>
// Wymaga user_idsafeInvoke('unified_ai_generate_soap', { visit_context, template_type, user_id})unified_ai_analyze_document
Dział zatytułowany „unified_ai_analyze_document”Analiza obrazów/PDF/tekstu.
UnifiedAIClient.analyzeDocument( documentContent: string | ArrayBuffer, documentType: 'image' | 'pdf' | 'text', analysisPrompt: string): Promise<AnalysisResponse>
// → invokeWithSession('unified_ai_analyze_document', { ... })Task Suggestions
Dział zatytułowany „Task Suggestions”Service: src/services/aiTaskSuggestionsService.ts
| Command | Description |
|---|---|
unified_ai_generate_tasks | Generuje sugestie zadań |
unified_ai_list_task_suggestions | Lista sugestii dla wizyty |
unified_ai_accept_task_suggestions | Akceptacja sugestii |
unified_ai_dismiss_task_suggestions | Odrzucenie sugestii |
// Get suggestions via chatUnifiedAIClient.getSuggestions(visitContext, suggestionType?)// → chat(..., { canonicalModel: 'ai-suggestions' })Health & Diagnostics
Dział zatytułowany „Health & Diagnostics”unified_ai_health_check
Dział zatytułowany „unified_ai_health_check”UnifiedAIClient.healthCheck(canonicalModel?: string): Promise<HealthStatus>// → invokeWithSession('unified_ai_health_check', { canonical_model })unified_ai_get_model_mapping
Dział zatytułowany „unified_ai_get_model_mapping”Mapowanie nazw kanonicznych na modele.
UnifiedAIClient.getModelMapping(canonicalModel: string): Promise<ModelMapping>// → safeInvoke('unified_ai_get_model_mapping', { canonical_model })
// Canonical models'chat' → konkretny model chatu'ai-suggestions' → model dla sugestii'vision' → model dla obrazówunified_ai_test_providers
Dział zatytułowany „unified_ai_test_providers”UnifiedAIClient.testProviders(apiKeyOverride?: string): Promise<ProviderStatus[]>// → invokeWithSession('unified_ai_test_providers', { api_key_override })Other Diagnostics
Dział zatytułowany „Other Diagnostics”| Command | Service |
|---|---|
unified_ai_connectivity_probe | aiDiagnosticsService |
unified_ai_mark_full_success | backgroundJobs |
unified_ai_generate_suggestions | errorHandlingService |
unified_ai_generate_differential | differentialService |
Chat History & Drafts
Dział zatytułowany „Chat History & Drafts”Hook: src/features/ai-suite/hooks/useChatHistory.ts
ai_chat_draft_load
Dział zatytułowany „ai_chat_draft_load”loadDraft(): Promise<ChatMessage[]>// → safeInvoke('ai_chat_draft_load', { context_key: storageKey })ai_chat_draft_save
Dział zatytułowany „ai_chat_draft_save”persistDraft(messages: ChatMessage[]): Promise<void>
// Respects storage policyif (!storagePolicy.shouldSaveChatHistory()) { messages = []; // Send empty if history disabled}
// → safeInvoke('ai_chat_draft_save', { context_key, messages })Chat Sessions
Dział zatytułowany „Chat Sessions”API: src/types/api/ai.ts → chatSessionsApi
ai_chat_session_save
Dział zatytułowany „ai_chat_session_save”Trwały zapis historii rozmowy.
chatSessionsApi.save({ visitId?: string, messages: ChatMessage[]})
// → safeInvoke('ai_chat_session_save', {// visit_id,// messages: [{ role, content, timestamp }]// })ai_chat_sessions_list
Dział zatytułowany „ai_chat_sessions_list”chatSessionsApi.list({ limit?: number, // default 20 offset?: number, // default 0 visitId?: string})// → safeInvoke('ai_chat_sessions_list', { limit, offset, visit_id })AI Context Vault
Dział zatytułowany „AI Context Vault”Pamięć kontekstowa AI - przechowywanie snippetów do promptów.
API: src/types/api/ai.ts → contextVaultApi
ai_context_vault_upsert
Dział zatytułowany „ai_context_vault_upsert”contextVaultApi.upsert(entries: ContextEntry[])
interface ContextEntry { namespace: string; visit_id?: string; label: string; snippet: string; metadata?: Record<string, any>;}
// → safeInvoke('ai_context_vault_upsert', { entries })ai_context_vault_query
Dział zatytułowany „ai_context_vault_query”Wyszukiwanie podobnych fragmentów (embedding lub tekst).
contextVaultApi.query({ namespace: string, query?: string, query_embedding?: number[], limit?: number})// → safeInvoke('ai_context_vault_query', params)ai_context_vault_clear
Dział zatytułowany „ai_context_vault_clear”contextVaultApi.clear(namespace?: string)// → safeInvoke('ai_context_vault_clear', { namespace })Detached Window
Dział zatytułowany „Detached Window”vista_apply_glass
Dział zatytułowany „vista_apply_glass”Efekt “glass” dla odłączonego okna asystenta.
if (isTauriEnv) { safeInvoke('vista_apply_glass', { label: DETACHED_WINDOW_LABEL });}Commands Summary
Dział zatytułowany „Commands Summary”| Category | Commands |
|---|---|
| Chat | unified_ai_chat, unified_ai_chat_stream, unified_ai_chat_background, unified_ai_cancel_stream |
| Polling | unified_ai_poll_response, unified_ai_list_response_events |
| Audio | unified_ai_transcribe, unified_ai_synthesize |
| Documents | unified_ai_generate_soap, unified_ai_analyze_document |
| Tasks | unified_ai_generate_tasks, unified_ai_list_task_suggestions, unified_ai_accept_task_suggestions, unified_ai_dismiss_task_suggestions |
| Health | unified_ai_health_check, unified_ai_get_model_mapping, unified_ai_test_providers |
| Drafts | ai_chat_draft_load, ai_chat_draft_save |
| Sessions | ai_chat_session_save, ai_chat_sessions_list |
| Vault | ai_context_vault_upsert, ai_context_vault_query, ai_context_vault_clear |
Powiązane dokumenty
Dział zatytułowany „Powiązane dokumenty”- AI Suite Overview - Feature documentation
- SOAP Generation - SOAP notes pipeline
- Backend: Unified AI - Backend implementation