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
|
|
@ -307,6 +307,21 @@
|
|||
"license.feature.meeting_summary": "회의 요약",
|
||||
"license.feature.local_rag": "로컬 RAG",
|
||||
"license.feature.os_automation": "OS 자동화",
|
||||
"license.feature.llmProcess": "LLM 처리",
|
||||
"license.feature.liveCaption": "실시간 자막",
|
||||
"license.feature.screenContext": "화면 컨텍스트",
|
||||
"license.feature.voiceCommand": "음성 명령어",
|
||||
"license.feature.llmChain": "LLM 체인",
|
||||
"license.feature.voiceMemo": "음성 메모",
|
||||
"license.feature.historyUnlimited": "무제한 히스토리",
|
||||
"license.feature.historyExport": "히스토리 내보내기",
|
||||
"license.feature.customInstruction": "커스텀 명령어 생성",
|
||||
"license.feature.fileTranscription": "파일 전사",
|
||||
"license.feature.voiceConversation": "음성 대화",
|
||||
"license.feature.dictationTemplate": "받아쓰기 템플릿",
|
||||
"license.feature.meetingSummary": "회의 요약",
|
||||
"license.feature.localRag": "로컬 RAG",
|
||||
"license.feature.osAutomation": "OS 자동화",
|
||||
"license.pro.required": "PRO 필요",
|
||||
"license.proPlus.required": "PRO+ 필요",
|
||||
"license.included": "포함",
|
||||
|
|
@ -327,5 +342,80 @@
|
|||
"license.perDay": "회/일",
|
||||
"license.unlimited": "무제한",
|
||||
"license.locked": "잠금",
|
||||
"license.nav": "라이선스"
|
||||
"license.nav": "라이선스",
|
||||
|
||||
"fileTranscription.title": "파일 전사",
|
||||
"fileTranscription.dropZone": "오디오/비디오 파일을 여기에 드래그하세요",
|
||||
"fileTranscription.dropZoneHint": "MP3, WAV, M4A, MP4, MKV, WEBM 지원",
|
||||
"fileTranscription.converting": "변환 중...",
|
||||
"fileTranscription.processing": "전사 중...",
|
||||
"fileTranscription.progress": "청크 {{current}} / {{total}}",
|
||||
"fileTranscription.complete": "전사 완료",
|
||||
"fileTranscription.copyAll": "전체 복사",
|
||||
"fileTranscription.cancel": "취소",
|
||||
"fileTranscription.retry": "다시 시도",
|
||||
"fileTranscription.error.invalidFormat": "지원하지 않는 파일 형식입니다",
|
||||
"fileTranscription.error.unknown": "알 수 없는 오류",
|
||||
|
||||
"meetingSummary.title": "회의록 요약",
|
||||
"meetingSummary.generating": "요약 생성 중...",
|
||||
"meetingSummary.summary": "요약",
|
||||
"meetingSummary.decisions": "핵심 결정사항",
|
||||
"meetingSummary.actionItems": "할 일 목록",
|
||||
"meetingSummary.exportMarkdown": "마크다운 내보내기",
|
||||
"meetingSummary.noSummary": "요약이 없습니다",
|
||||
"meetingSummary.generate": "요약 생성",
|
||||
|
||||
"template.title": "딕테이션 템플릿",
|
||||
"template.create": "새 템플릿",
|
||||
"template.edit": "템플릿 편집",
|
||||
"template.delete": "삭제",
|
||||
"template.name": "템플릿 이름",
|
||||
"template.description": "설명",
|
||||
"template.fields": "필드",
|
||||
"template.addField": "필드 추가",
|
||||
"template.fieldName": "필드명",
|
||||
"template.fieldLabel": "라벨",
|
||||
"template.fieldPrompt": "음성 안내",
|
||||
"template.outputFormat": "출력 포맷",
|
||||
"template.startSession": "시작",
|
||||
"template.cancelSession": "세션 취소",
|
||||
"template.empty": "템플릿이 없습니다",
|
||||
|
||||
"nav.conversation": "대화",
|
||||
"conversation.title": "음성 대화",
|
||||
"conversation.idle": "대기",
|
||||
"conversation.listening": "듣는 중",
|
||||
"conversation.thinking": "생각 중",
|
||||
"conversation.speaking": "말하는 중",
|
||||
"conversation.empty": "D3RO에게 말을 걸어보세요",
|
||||
"conversation.emptyHint": "마이크 버튼을 누르거나 텍스트를 입력하세요",
|
||||
"conversation.inputPlaceholder": "메시지 입력...",
|
||||
"conversation.end": "종료",
|
||||
"conversation.clearHistory": "대화 초기화",
|
||||
|
||||
"nav.knowledge": "지식 베이스",
|
||||
"rag.title": "지식 베이스",
|
||||
"rag.addDocument": "문서 추가",
|
||||
"rag.documents": "문서",
|
||||
"rag.noDocuments": "문서가 없습니다",
|
||||
"rag.chunks": "청크",
|
||||
"rag.indexed": "인덱싱 완료",
|
||||
"rag.pending": "대기 중",
|
||||
"rag.indexing": "인덱싱 중",
|
||||
"rag.reindex": "재인덱싱",
|
||||
"rag.askQuestion": "질문하기",
|
||||
"rag.queryPlaceholder": "문서에 대해 질문하세요...",
|
||||
"rag.searching": "검색 중...",
|
||||
"rag.sources": "참조 문서",
|
||||
"rag.adding": "추가 중...",
|
||||
"rag.parsing": "문서 분석 중...",
|
||||
|
||||
"voiceAction.title": "음성 액션",
|
||||
"voiceAction.execute": "실행",
|
||||
"voiceAction.presets": "프리셋 명령",
|
||||
"voiceAction.history": "실행 이력",
|
||||
"voiceAction.noHistory": "실행 이력이 없습니다",
|
||||
"voiceAction.blocked": "차단됨 (위험 명령)",
|
||||
"voiceAction.executed": "실행됨"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue