Files
realtime_voice_service/.env.example
T
2026-05-02 13:33:12 +05:00

83 lines
5.5 KiB
Bash

REALTIME_VOICE_HTTP_HOST=0.0.0.0
REALTIME_VOICE_HTTP_PORT=8000
REALTIME_VOICE_AUDIOSOCKET_HOST=0.0.0.0
REALTIME_VOICE_AUDIOSOCKET_PORT=9092
REALTIME_VOICE_SAMPLE_RATE_HZ=16000
LLM_PROVIDER=openai
OPENAI_API_KEY=
OPENAI_BASE_URL=
OPENAI_LLM_MODEL=gpt-4o-mini
OPENAI_LLM_SYSTEM_PROMPT=Ты Айнур, лаконичный русскоязычный голосовой оператор контакт-центра DigiOps. Всегда отвечай на русском естественно, кратко и в одном спокойном стиле для голосового воспроизведения. Когда говоришь о себе, всегда используй женский род: могла, смогла, сделала, готова, проверила, нашла. Никогда не добавляй собственные фразы ожидания. Если нужна короткая фраза ожидания, голосовой сервис добавит её отдельно, поэтому отвечай сразу и не добавляй собственную фразу ожидания. Если клиент спрашивает, робот ты, ИИ или человек, отвечай ровно: "Да, я голосовой агент контакт-центра DigiOps." Не завершай диалог самостоятельно. Говори «до свидания» только если клиент явно попрощался или попросил завершить разговор. Простые «спасибо» или «благодарю» не считай просьбой завершить разговор. Телефонные номера читай по цифрам. Предпочитай понятные формулировки, удобные для ударения, и избегай неоднозначных по ударению слов. Не используй Markdown, URL или таблицы.
OPENAI_LLM_ENABLE_TOOLS=true
OPENAI_LLM_MAX_TOOL_ROUNDTRIPS=2
OPENAI_TIMEOUT_SECONDS=30
SERPER_API_KEY=
SERPER_API_BASE=https://google.serper.dev
SERPER_SEARCH_GL=kz
SERPER_SEARCH_HL=ru
SERPER_SEARCH_NUM=5
OPENAI_STT_MODEL=whisper-1
OPENAI_STT_LANGUAGE=ru
OPENAI_STT_TIMEOUT_SECONDS=30
OLLAMA_BASE_URL=http://host.docker.internal:11434
OLLAMA_LLM_MODEL=qwen2.5:1.5b
OLLAMA_TIMEOUT_SECONDS=20
OLLAMA_LLM_TEMPERATURE=0.3
OLLAMA_LLM_SYSTEM_PROMPT=Ты Айнур, голосовой ИИ-оператор. Всегда отвечай только на русском, коротко и по делу. Когда говоришь о себе, всегда используй женский род: могла, смогла, сделала, готова, проверила, нашла. Не завершай диалог самостоятельно и говори «до свидания» только если клиент явно попрощался или попросил завершить разговор.
OLLAMA_LLM_MAX_CONTEXT_MESSAGES=4
OLLAMA_LLM_NUM_PREDICT=64
OLLAMA_LLM_NUM_CTX=1024
STT_PROVIDER=openai
STT_FALLBACK_PROVIDER=elevenlabs
# Empty means auto-detect the first language-choice answer, then use Kazakh STT for name capture.
STT_NAME_CAPTURE_LANGUAGE_CODE=
STT_PROMPT=
STT_PROMPT_RU=Это русская речь по телефону. Точно распознавай короткие ответы, имена, фамилии, слова благодарности и прощания. Если человек представился одним словом, сохраняй его как имя. Номера телефонов записывай цифрами.
STT_PROMPT_KZ=Бұл қазақ тіліндегі телефон арқылы сөйлесу. Қысқа жауаптарды, есімдерді, тілді таңдауды және қоштасуды дәл таны. Клиент бір сөзбен танысса, оны есім ретінде сақта. Телефон нөмірлерін цифрлармен жаз.
TTS_PROVIDER=elevenlabs
REALTIME_VOICE_INITIAL_GREETING_RU_TEXT=Здравствуйте, мое имя Айну́р. На каком языке Вам удобнее общаться: на казахском или русском?
REALTIME_VOICE_INITIAL_GREETING_KK_TEXT=Сәлеметсіз бе, менің атым Айнұр. Сізге қай тілде сөйлескен ыңғайлы: қазақша ма, орысша ма?
ENABLE_AUDIO_DUMP=false
AUDIO_DUMP_DIR=debug_audio
ELEVENLABS_API_KEY=
ELEVENLABS_API_BASE=https://api.elevenlabs.io
ELEVENLABS_TTS_VOICE_ID=
# Use eleven_v3 for Kazakh/Russian. Switch back to v2 anytime with eleven_flash_v2_5 or eleven_multilingual_v2.
ELEVENLABS_TTS_MODEL_ID=eleven_v3
ELEVENLABS_TTS_TRANSPORT=auto
ELEVENLABS_TTS_LANGUAGE_CODE=ru
ELEVENLABS_TTS_OUTPUT_FORMAT=pcm_16000
ELEVENLABS_TTS_SPEED=1.2
ELEVENLABS_STT_MODEL_ID=scribe_v2
ELEVENLABS_STT_REALTIME_MODEL_ID=scribe_v2_realtime
ELEVENLABS_STT_LANGUAGE_CODE=ru
ELEVENLABS_STT_USE_REALTIME=true
ELEVENLABS_STT_ALLOW_BATCH_FALLBACK=true
ELEVENLABS_TIMEOUT_SECONDS=30
YANDEX_STT_API_KEY=
YANDEX_STT_IAM_TOKEN=
YANDEX_STT_FOLDER_ID=
YANDEX_STT_LANGUAGE=ru-RU
YANDEX_STT_TOPIC=general
VAD_THRESHOLD=0.5
VAD_NEGATIVE_THRESHOLD=
VAD_SILENCE_TIMEOUT_MS=420
VAD_SPEECH_PAD_MS=180
VAD_MIN_SPEECH_DURATION_MS=0
VAD_USE_ONNX=false
REALTIME_VOICE_INITIAL_GREETING_TEXT=
REALTIME_VOICE_INITIAL_GREETING_USE_SINGLE_TEXT=false
SEMANTIC_ENDPOINTING_HOLD_MS=600
REALTIME_VOICE_FILLER_DELAY_MS=300
REALTIME_VOICE_TTS_CHUNK_SOFT_MIN_CHARS=10
REALTIME_VOICE_TTS_CHUNK_SOFT_MIN_WORDS=2