설정 참조¶
아래 값은 현재 코드의 기본값입니다. 프로파일 YAML, Helm values, ConfigMap, Secret 환경변수가 오버라이드할 수 있으므로 실제 파드의 환경과 함께 확인해야 합니다.
연결·인증¶
| 키 | 기본값 | 설명 |
|---|---|---|
server.port |
8080 |
WebSocket·보조 HTTP |
management.server.port |
9090 |
Actuator 전용, 외부 노출 금지 |
app.auth.mode |
permissive |
disabled, permissive, enforced |
app.client-secret.public-key-pem |
빈 값 | Ed25519 세션 토큰 검증 공개키 |
sohri.websocket.max-sessions |
1000 |
파드당 WebSocket 상한 |
sohri.websocket.session-timeout |
300000 ms |
고부하 시 유휴 정리 기준 |
sohri.websocket.cleanup-interval |
60000 ms |
세션 정리 주기 |
CLIENT_SECRET_SIGNING_PUBLIC_KEY가 비어 있으면 토큰 경로는 fail-closed지만 API key 경로에는
영향이 없습니다. credential은 Authorization, WebSocket subprotocol, query 순서로 찾습니다.
핸드셰이크 쿼리¶
| 정본 | 별칭 | 기본·허용값 | 적용 |
|---|---|---|---|
minSpeech |
minspeech, min_speech |
기본 0.3, 0.1..1800초 |
다음 EPD 연결 |
endSilence |
endsilence, end_silence |
기본 1.2, 0.1..5.0초 |
다음 EPD 연결 |
epdTimeout |
timeout, epd_timeout |
기본 7.0, 0.1..1800초 |
다음 EPD 연결 |
continuousAudio |
continuous_audio |
false |
TIMEOUT 뒤 다음 PCM에서 재연결 |
ttsSampleRate |
tts_sample_rate |
16000, 24000, 48000 |
프로바이더 지원값과 교차 |
ttsStream |
tts_stream |
v1만 인식 |
서버 플래그와 AND |
EPD 쿼리의 범위 밖 유한 양수는 경계값으로 보정합니다. 숫자가 아니거나 0 이하·NaN·무한대면
무시합니다. 최종 설정은 minSpeech <= timeout이어야 합니다. 반면 epd_config_update 메시지는
범위 밖 값을 보정하지 않고 400으로 거절합니다.
분석·최종화¶
| 키 | 기본값 | 설명 |
|---|---|---|
sohri.analysis.deferred-enabled |
false |
true면 종료 시 누적 분석 |
sohri.analysis.deferred-flush-timeout-ms |
30000 |
지연 분석 flush 대기 |
sohri.analysis.openai-immediate-timeout-ms |
30000 |
OpenAI 즉시 분석 최종 대기 |
sohri.analysis.openai-immediate-max-per-session |
128 |
세션별 추적 상한 |
sohri.analysis.openai-immediate-max-sessions |
2048 |
추적 세션 상한 |
sohri.analysis.conversation-summary-timeout-seconds |
15 |
일반 요약 holder 상한 |
sohri.analysis.biomarker-summary-timeout-seconds |
30 |
바이오마커 요약 holder 상한 |
대기 중 record tail은 별도 고정 상한 5초를 사용합니다.
SOHRI DM·EPD¶
| 키 | 기본값 | 설명 |
|---|---|---|
mago.epd-url |
wss://api.magovoice.com/epdx/ |
EPD WebSocket |
mago.bearer-token |
빈 값 | EPD credential |
sohri.epd.activity-idle-timeout-ms |
45000 |
terminal 없는 activity 정리 |
sohri.epd.cancelled-end.mode |
PERSIST |
PERSIST 또는 DROP |
sohri.dm.base-url |
http://sohri-graph-builder:59212 |
DM base URL |
sohri.dm.api-version |
v1 |
DM 경로 버전 |
sohri.dm.reclaim.connect-timeout |
2s |
DM 세션 회수 연결 timeout |
sohri.dm.reclaim.read-timeout |
8s |
DM 세션 회수 read timeout |
sohri.dm.auxiliary-lease.max-user-wait-ms |
3000 |
보조 lease 뒤 USER 대기 상한 |
EPD URL과 DM URL은 배포 환경에서 내부 서비스 주소로 바뀔 수 있습니다.
TTS¶
| 키 | 기본값 | 설명 |
|---|---|---|
sohri.tts.default-voice-preset |
female_warm |
세션 미지정 시 preset |
sohri.tts.default-provider |
clova |
preset 실패 시 기본 provider |
sohri.tts.max-frame-bytes |
3145728 |
레거시 단일 WAV 상한 |
sohri.tts.streaming.enabled |
false |
스트리밍 서버 스위치 |
sohri.tts.streaming.chunk-millis |
100 |
목표 청크 길이 |
sohri.tts.streaming.max-chunk-bytes |
65536 |
청크 상한 |
sohri.tts.streaming.max-total-bytes |
3145728 |
스트림 총량 상한 |
sohri.tts.streaming.connect-timeout |
5s |
전용 HTTP 연결 timeout |
sohri.tts.streaming.read-timeout |
10s |
청크 간 stall guard |
sohri.tts.voice-preset.cache-ttl |
10m |
preset 조회 캐시 |
프로바이더별 자격증명은 CLOVA_CLIENT_ID, CLOVA_CLIENT_SECRET,
FISH_AUDIO_API_KEY, INWORLD_API_KEY 등으로 주입합니다. Gemini TTS는 API key가 아니라
ADC/Workload Identity를 사용하며 GEMINI_TTS_ENABLED 기본값은 false입니다.
OpenAI Realtime¶
| 키 | env | 기본값 |
|---|---|---|
sohri.openai-realtime.enabled |
OPENAI_REALTIME_ENABLED |
false |
.api-key |
OPENAI_API_KEY |
빈 값 |
.endpoint |
OPENAI_REALTIME_ENDPOINT |
wss://api.openai.com/v1/realtime |
.model |
OPENAI_REALTIME_MODEL |
gpt-realtime |
.voice |
OPENAI_REALTIME_VOICE |
marin |
.connect-timeout |
OPENAI_REALTIME_CONNECT_TIMEOUT |
10s |
.upstream-close-timeout |
OPENAI_REALTIME_UPSTREAM_CLOSE_TIMEOUT |
2s |
.session-timeout |
OPENAI_REALTIME_SESSION_TIMEOUT |
55m |
.max-sessions |
OPENAI_REALTIME_MAX_SESSIONS |
200 |
.client-instructions-enabled |
OPENAI_REALTIME_CLIENT_INSTRUCTIONS_ENABLED |
false |
.max-client-instructions-characters |
OPENAI_REALTIME_MAX_CLIENT_INSTRUCTIONS_CHARACTERS |
2000 |
.max-pending-audio-sends |
OPENAI_REALTIME_MAX_PENDING_AUDIO_SENDS |
100 |
.max-input-buffer-bytes |
OPENAI_REALTIME_MAX_INPUT_BUFFER_BYTES |
1920000 |
.max-bot-audio-bytes |
OPENAI_REALTIME_MAX_BOT_AUDIO_BYTES |
12000000 |
현재 Helm 배포 값에는 OPENAI_REALTIME_ENABLED 배선이 없습니다. 요약용 OPENAI_API_KEY가
주입된 것과 Realtime 엔진 활성화는 별개입니다.
마음온·아카이빙¶
| 키 | 기본값 | 설명 |
|---|---|---|
sohri.maumon.enabled |
false |
사용자·대화 컨텍스트 조회 |
sohri.maumon.write-back-enabled |
false |
요약 회신, 조회와 독립 |
sohri.maumon.connect-timeout |
2s |
조회·쓰기 연결 timeout |
sohri.maumon.read-timeout |
3s |
조회 read timeout |
sohri.maumon.write-read-timeout |
10s |
write-back read timeout |
sohri.maumon.cache-ttl |
5m |
사용자 조회 캐시 |
sohri.audio-archival.enabled |
false |
SOHRI USER Pub/Sub |
sohri.audio-archival.user-direct-enabled |
false |
OpenAI USER 직접 보관 |
sohri.audio-archival.bot-enabled |
false |
BOT 직접 보관 |
sohri.audio-archival.bot-stream-max-bytes |
3145728 |
BOT 스트림 누적 상한 |
현재 staging Helm 값은 기본값과 달리 인증 enforced, 즉시 분석, TTS 스트리밍, 마음온
조회·write-back, USER/BOT 아카이빙을 활성화합니다. 이는 staging 상태이며 다른 환경의 보장을
의미하지 않습니다.