Phase 12~13 전체 구현: Pro+ 피처 6종 + 음성 대화 + RAG + OS 자동화
Phase 12: - FileTranscriptionService: ffmpeg PCM 변환 + 30초 청크 순차 STT - MeetingSummaryService: 자막 세션 → LLM 자동 요약 + DB summaryText - DictationTemplateService: 필드별 음성 입력 상태 머신 + 프리셋 3개 Phase 13.1: - VoiceConversationService: STT→Ollama /api/chat→TTS 대화 루프 (10턴) - TTSPlaybackService: Windows SAPI 문장 단위 큐 재생 - LocalLLMService.chatStream: Ollama /api/chat 스트리밍 Phase 13.2: - RAGService: Ollama 임베딩 + SQLite 벡터 + 코사인 유사도 검색 - KnowledgeBasePage: 문서 관리 + 질문/답변 UI - PDF 파서: zlib FlateDecode 해제 + BT/ET 텍스트 추출 Phase 13.3: - VoiceActionService: LLM JSON 액션 플랜 생성 + 실행 - 프리셋 6개 (크롬/메모장/탐색기/볼륨), 위험 명령 차단 공통: IPC ~70채널, 에러코드 780-878, i18n 100+키 버그픽스: 라이선스 로컬 키 우선, i18n featureLabel, DOM 중첩
This commit is contained in:
parent
a31f96bbb8
commit
eb83682269
38 changed files with 5678 additions and 19 deletions
|
|
@ -300,13 +300,28 @@
|
|||
"license.feature.voice_memo": "Voice Memo",
|
||||
"license.feature.history_unlimited": "Unlimited History",
|
||||
"license.feature.history_export": "History Export",
|
||||
"license.feature.custom_instruction_create": "Custom Instruction Create",
|
||||
"license.feature.custom_instruction_create": "Custom Instruction",
|
||||
"license.feature.file_transcription": "File Transcription",
|
||||
"license.feature.voice_conversation": "Voice Conversation",
|
||||
"license.feature.dictation_template": "Dictation Template",
|
||||
"license.feature.meeting_summary": "Meeting Summary",
|
||||
"license.feature.local_rag": "Local RAG",
|
||||
"license.feature.os_automation": "OS Automation",
|
||||
"license.feature.llmProcess": "LLM Processing",
|
||||
"license.feature.liveCaption": "Live Caption",
|
||||
"license.feature.screenContext": "Screen Context",
|
||||
"license.feature.voiceCommand": "Voice Commands",
|
||||
"license.feature.llmChain": "LLM Chain",
|
||||
"license.feature.voiceMemo": "Voice Memo",
|
||||
"license.feature.historyUnlimited": "Unlimited History",
|
||||
"license.feature.historyExport": "History Export",
|
||||
"license.feature.customInstruction": "Custom Instruction",
|
||||
"license.feature.fileTranscription": "File Transcription",
|
||||
"license.feature.voiceConversation": "Voice Conversation",
|
||||
"license.feature.dictationTemplate": "Dictation Template",
|
||||
"license.feature.meetingSummary": "Meeting Summary",
|
||||
"license.feature.localRag": "Local RAG",
|
||||
"license.feature.osAutomation": "OS Automation",
|
||||
"license.pro.required": "PRO Required",
|
||||
"license.proPlus.required": "PRO+ Required",
|
||||
"license.included": "Included",
|
||||
|
|
@ -327,5 +342,80 @@
|
|||
"license.perDay": "/day",
|
||||
"license.unlimited": "Unlimited",
|
||||
"license.locked": "Locked",
|
||||
"license.nav": "License"
|
||||
"license.nav": "License",
|
||||
|
||||
"fileTranscription.title": "File Transcription",
|
||||
"fileTranscription.dropZone": "Drop audio/video file here",
|
||||
"fileTranscription.dropZoneHint": "Supports MP3, WAV, M4A, MP4, MKV, WEBM",
|
||||
"fileTranscription.converting": "Converting...",
|
||||
"fileTranscription.processing": "Transcribing...",
|
||||
"fileTranscription.progress": "Chunk {{current}} / {{total}}",
|
||||
"fileTranscription.complete": "Transcription complete",
|
||||
"fileTranscription.copyAll": "Copy All",
|
||||
"fileTranscription.cancel": "Cancel",
|
||||
"fileTranscription.retry": "Retry",
|
||||
"fileTranscription.error.invalidFormat": "Unsupported file format",
|
||||
"fileTranscription.error.unknown": "Unknown error",
|
||||
|
||||
"meetingSummary.title": "Meeting Summary",
|
||||
"meetingSummary.generating": "Generating summary...",
|
||||
"meetingSummary.summary": "Summary",
|
||||
"meetingSummary.decisions": "Key Decisions",
|
||||
"meetingSummary.actionItems": "Action Items",
|
||||
"meetingSummary.exportMarkdown": "Export as Markdown",
|
||||
"meetingSummary.noSummary": "No summary available",
|
||||
"meetingSummary.generate": "Generate Summary",
|
||||
|
||||
"template.title": "Dictation Templates",
|
||||
"template.create": "New Template",
|
||||
"template.edit": "Edit Template",
|
||||
"template.delete": "Delete",
|
||||
"template.name": "Template Name",
|
||||
"template.description": "Description",
|
||||
"template.fields": "Fields",
|
||||
"template.addField": "Add Field",
|
||||
"template.fieldName": "Field Name",
|
||||
"template.fieldLabel": "Label",
|
||||
"template.fieldPrompt": "Voice Prompt",
|
||||
"template.outputFormat": "Output Format",
|
||||
"template.startSession": "Start",
|
||||
"template.cancelSession": "Cancel Session",
|
||||
"template.empty": "No templates",
|
||||
|
||||
"nav.conversation": "Talk",
|
||||
"conversation.title": "Voice Conversation",
|
||||
"conversation.idle": "Idle",
|
||||
"conversation.listening": "Listening",
|
||||
"conversation.thinking": "Thinking",
|
||||
"conversation.speaking": "Speaking",
|
||||
"conversation.empty": "Talk to D3RO",
|
||||
"conversation.emptyHint": "Press the mic button or type a message",
|
||||
"conversation.inputPlaceholder": "Type a message...",
|
||||
"conversation.end": "End",
|
||||
"conversation.clearHistory": "Clear history",
|
||||
|
||||
"nav.knowledge": "Knowledge",
|
||||
"rag.title": "Knowledge Base",
|
||||
"rag.addDocument": "Add Document",
|
||||
"rag.documents": "Documents",
|
||||
"rag.noDocuments": "No documents",
|
||||
"rag.chunks": "chunks",
|
||||
"rag.indexed": "Indexed",
|
||||
"rag.pending": "Pending",
|
||||
"rag.indexing": "Indexing",
|
||||
"rag.reindex": "Reindex",
|
||||
"rag.askQuestion": "Ask a Question",
|
||||
"rag.queryPlaceholder": "Ask about your documents...",
|
||||
"rag.searching": "Searching...",
|
||||
"rag.sources": "Sources",
|
||||
"rag.adding": "Adding...",
|
||||
"rag.parsing": "Parsing document...",
|
||||
|
||||
"voiceAction.title": "Voice Actions",
|
||||
"voiceAction.execute": "Execute",
|
||||
"voiceAction.presets": "Preset Commands",
|
||||
"voiceAction.history": "Action History",
|
||||
"voiceAction.noHistory": "No action history",
|
||||
"voiceAction.blocked": "Blocked (unsafe)",
|
||||
"voiceAction.executed": "Executed"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue