Phase 4 구현: Ollama LLM 연동 (다듬기, 번역, 스트리밍)
- LocalLLMService: Ollama REST API, 스트리밍 NDJSON 파싱, 5초 가용성 폴링 - 시스템 프롬프트: refine/translate/summarize/grammar/expand/custom 6개 액션 - VoiceModeService: 전사→LLM 후처리→텍스트 삽입, LLM 실패 시 원본 폴백 - LLM IPC 핸들러: status/models/process/cancel/serverUrl 8개 - StatusBar: Ollama 연결 상태 + 활성 모델 표시 - Preload: llm API 섹션 추가 - Bootstrap: llm-polling 초기화 단계 추가
This commit is contained in:
parent
517210af2f
commit
4a5cf6c819
10 changed files with 663 additions and 9 deletions
|
|
@ -5,6 +5,7 @@ import { initLoggerService, getLogger } from './services/LoggerService'
|
|||
import { initConfigService } from './services/ConfigService'
|
||||
import { getHotkeyService } from './services/HotkeyService'
|
||||
import { getVoiceModeService } from './services/VoiceModeService'
|
||||
import { getLocalLLMService } from './services/LocalLLMService'
|
||||
import {
|
||||
createMainWindow,
|
||||
preloadPopupWindows,
|
||||
|
|
@ -34,7 +35,8 @@ export async function bootstrap(): Promise<void> {
|
|||
{ name: 'ipc-handlers', critical: true, fn: initIpcHandlers },
|
||||
{ name: 'popup-preload', critical: false, fn: initPopupWindows },
|
||||
{ name: 'hotkey', critical: false, fn: initHotkey },
|
||||
{ name: 'voice-mode', critical: false, fn: initVoiceMode }
|
||||
{ name: 'voice-mode', critical: false, fn: initVoiceMode },
|
||||
{ name: 'llm-polling', critical: false, fn: initLLMPolling }
|
||||
]
|
||||
|
||||
for (const step of steps) {
|
||||
|
|
@ -120,3 +122,8 @@ async function initVoiceMode(): Promise<void> {
|
|||
setTimeout(() => hideRecordingTip(), 3000)
|
||||
})
|
||||
}
|
||||
|
||||
async function initLLMPolling(): Promise<void> {
|
||||
const llm = getLocalLLMService()
|
||||
llm.startPolling()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue