feat(pitch-deck): add AI Presenter mode with LiteLLM migration and FAQ system
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 27s
CI / test-python-voice (push) Successful in 25s
CI / test-bqas (push) Successful in 25s
CI / Deploy (push) Successful in 4s
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 27s
CI / test-python-voice (push) Successful in 25s
CI / test-bqas (push) Successful in 25s
CI / Deploy (push) Successful in 4s
- Migrate chat API from Ollama to LiteLLM (OpenAI-compatible SSE) - Add 15-min presenter storyline with bilingual scripts for all 20 slides - Add FAQ system (30 entries) with keyword matching for instant answers - Add IntroPresenterSlide with avatar placeholder and start button - Add PresenterOverlay (progress bar, subtitle text, play/pause/stop) - Add AvatarPlaceholder with pulse animation during speaking - Add usePresenterMode hook (state machine: idle→presenting→paused→answering→resuming) - Add 'P' keyboard shortcut to toggle presenter mode - Support [GOTO:slide-id] markers in chat responses - Dynamic slide count (was hardcoded 13, now from SLIDE_ORDER) - TTS stub prepared for future Piper integration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
20
pitch-deck/lib/presenter/tts-client.ts
Normal file
20
pitch-deck/lib/presenter/tts-client.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { Language } from '../types'
|
||||
|
||||
/**
|
||||
* TTS Stub — prepared for future Piper TTS integration via compliance-tts-service (:8095)
|
||||
* POST /synthesize { text, voice: 'de_DE-thorsten-high' }
|
||||
* Returns audio URL from MinIO
|
||||
*/
|
||||
export async function synthesizeSpeech(text: string, lang: Language): Promise<string | null> {
|
||||
// TODO: Connect to compliance-tts-service
|
||||
// const voice = lang === 'de' ? 'de_DE-thorsten-high' : 'en_US-lessac-high'
|
||||
// const res = await fetch('http://compliance-tts-service:8095/synthesize', {
|
||||
// method: 'POST',
|
||||
// headers: { 'Content-Type': 'application/json' },
|
||||
// body: JSON.stringify({ text, voice }),
|
||||
// })
|
||||
// if (!res.ok) return null
|
||||
// const data = await res.json()
|
||||
// return data.audio_url
|
||||
return null
|
||||
}
|
||||
Reference in New Issue
Block a user