Files
ai-operator/.env.example
T

186 lines
5.1 KiB
Bash

APP_ENV=dev
LOG_LEVEL=debug
VOICE_PROVIDER=fake
DIALOGUE_DEFAULT_LANGUAGE=
DIALOGUE_DEFAULT_REGION_CODE=
DIALOGUE_ENFORCE_LANGUAGE_REGION=false
AGENT_NAME=Жанна
AGENT_COMPANY=QazAimaqGas
AGENT_INITIAL_GREETING_MODE=natural
AGENT_REQUIRE_EXPLICIT_LANGUAGE=false
AGENT_REQUIRE_REGION_BEFORE_HELP=false
AGENT_ALLOW_GLOBAL_KB_WITHOUT_REGION=true
LANGUAGE_SELECTION_ENABLED=false
LANGUAGE_CONFIDENCE_THRESHOLD=0.70
LANGUAGE_CHANGE_CONFIDENCE_THRESHOLD=0.90
LANGUAGE_ALLOW_CHANGE_AFTER_SELECTION=true
LANGUAGE_DEFAULT_ON_TIMEOUT=
REGION_RESOLVER_ENABLED=true
REGION_CONFIDENCE_THRESHOLD=0.70
REGION_CHANGE_CONFIDENCE_THRESHOLD=0.90
REGION_ALLOW_CHANGE_AFTER_SELECTION=true
REGION_DEFAULT_ON_TIMEOUT=
REGION_ENABLE_DISABLED_SPECIAL_REGIONS=false
ASTERISK_ARI_URL=http://127.0.0.1:8088/ari
ASTERISK_ARI_WS_URL=ws://127.0.0.1:8088/ari/events
ASTERISK_ARI_USER=ai_operator
ASTERISK_ARI_PASSWORD=CHANGE_ME
ASTERISK_ARI_APP=ai-operator
ASTERISK_ARI_WS_AUTH_MODE=basic
ASTERISK_MEDIA_MODE=chan_websocket
ASTERISK_MEDIA_CODEC=slin16
ASTERISK_MEDIA_WS_BASE_URL=ws://127.0.0.1:8088/media
OPENAI_API_KEY=
OPENAI_REALTIME_URL=wss://api.openai.com/v1/realtime
OPENAI_REALTIME_MODEL=gpt-realtime-2
OPENAI_REALTIME_VOICE=marin
OPENAI_REALTIME_INSTRUCTIONS=
OPENAI_REALTIME_INPUT_AUDIO_FORMAT=pcm16
OPENAI_REALTIME_OUTPUT_AUDIO_FORMAT=pcm16
OPENAI_REALTIME_INPUT_SAMPLE_RATE=24000
OPENAI_REALTIME_OUTPUT_SAMPLE_RATE=24000
OPENAI_REALTIME_TURN_DETECTION=server_vad
OPENAI_REALTIME_REASONING_EFFORT=low
OPENAI_REALTIME_CONNECT_TIMEOUT=10s
OPENAI_REALTIME_SESSION_TIMEOUT=60s
OPENAI_REALTIME_MAX_AUDIO_CHUNK_BYTES=32768
OPENAI_REALTIME_LIVE_SMOKE_ENABLED=false
OPENAI_REALTIME_INITIAL_GREETING=true
OPENAI_REALTIME_MAX_SESSION_SECONDS=60
OPENAI_REALTIME_MAX_INPUT_AUDIO_BYTES=10485760
OPENAI_REALTIME_MAX_OUTPUT_AUDIO_BYTES=10485760
STT_PROVIDER=elevenlabs
ELEVENLABS_STT_MODE=realtime
ELEVENLABS_STT_MODEL=scribe_realtime_v2
ELEVENLABS_STT_LANGUAGE_AUTO=true
ELEVENLABS_STT_LANGUAGE_CODE=
ELEVENLABS_STT_SAMPLE_RATE=16000
ELEVENLABS_STT_INPUT_FORMAT=pcm_16000
ELEVENLABS_STT_PARTIAL_ENABLED=true
ELEVENLABS_STT_COMMITTED_ONLY_FOR_LLM=true
ELEVENLABS_STT_TIMEOUT=15s
LLM_PROVIDER=openai
LLM_MODEL=gpt-4.1-nano
LLM_TEMPERATURE=0.2
LLM_MAX_OUTPUT_TOKENS=300
LLM_TIMEOUT=15s
LLM_STREAM=true
LLM_MAX_TOOL_LOOPS=3
LLM_FIRST_CHUNK_TIMEOUT_MS=1200
LLM_STREAM_CHUNK_MIN_CHARS=30
LLM_STREAM_CHUNK_MAX_CHARS=160
ELEVENLABS_API_KEY=
ELEVENLABS_VOICE_ID_RU=
ELEVENLABS_VOICE_ID_KK=
ELEVENLABS_TTS_MODE=websocket
ELEVENLABS_TTS_MODEL_ID=eleven_flash_v2_5
ELEVENLABS_TTS_EXPRESSIVE_MODEL_ID=eleven_v3
ELEVENLABS_TTS_OUTPUT_FORMAT=pcm_16000
ELEVENLABS_TTS_SAMPLE_RATE=16000
ELEVENLABS_TTS_STABILITY=0.42
ELEVENLABS_TTS_SIMILARITY_BOOST=0.8
ELEVENLABS_TTS_STYLE=0.25
ELEVENLABS_TTS_USE_SPEAKER_BOOST=true
ELEVENLABS_TTS_OPTIMIZE_STREAMING_LATENCY=3
ELEVENLABS_TTS_TIMEOUT=15s
VOICE_NATURALNESS_ENABLED=true
VOICE_AUDIO_TAGS_ENABLED=true
VOICE_AUDIO_TAGS_MODE=controlled
VOICE_ALLOW_NONVERBAL_TAGS=true
VOICE_ALLOW_COUGH=false
VOICE_ALLOW_LAUGH=true
VOICE_MAX_AUDIO_TAGS_PER_RESPONSE=2
VOICE_REMOVE_AUDIO_TAGS_FROM_TRANSCRIPT=true
PIPELINE_INITIAL_GREETING=true
PIPELINE_BARGE_IN=true
PIPELINE_FLUSH_ON_USER_SPEECH=true
PIPELINE_MAX_TURN_SECONDS=20
PIPELINE_MAX_RESPONSE_CHARS=600
PIPELINE_ALLOW_GLOBAL_KB_WITHOUT_REGION=true
PIPELINE_TTFB_TARGET_MS=1200
PIPELINE_TTS_START_AFTER_CHARS=60
PIPELINE_TTS_START_AFTER_PUNCTUATION=true
DATABASE_URL=
DATABASE_MAX_OPEN_CONNS=10
DATABASE_MAX_IDLE_CONNS=5
DATABASE_CONN_MAX_LIFETIME=30m
DATABASE_MIGRATIONS_ENABLED=true
EMBEDDING_PROVIDER=fake
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIMENSIONS=1536
EMBEDDING_BATCH_SIZE=32
EMBEDDING_MAX_INPUT_CHARS=8000
EMBEDDING_OPENAI_LIVE_ENABLED=false
KB_CROSS_LANGUAGE_FALLBACK=true
KB_DEFAULT_LIMIT=5
KB_MAX_LIMIT=10
KB_MIN_SCORE=0.20
KB_QUERY_MAX_CHARS=1000
HANDOFF_MODE=disabled_stub
HANDOFF_ENABLED=false
HANDOFF_TARGET_ENDPOINT=
HANDOFF_DIALPLAN_CONTEXT=
HANDOFF_DIALPLAN_EXTENSION=
HANDOFF_DIALPLAN_PRIORITY=1
HANDOFF_QUEUE_NAME=
HANDOFF_TIMEOUT=30s
HANDOFF_MAX_ATTEMPTS=1
HANDOFF_PLAY_MESSAGE_BEFORE_TRANSFER=true
HANDOFF_HANGUP_AFTER_STUB=false
HANDOFF_ALLOW_IN_TEST_ROUTE_ONLY=true
HANDOFF_MAX_SUMMARY_CHARS=500
FALLBACK_MAX_LANGUAGE_FAILURES=3
FALLBACK_MAX_REGION_FAILURES=3
FALLBACK_MAX_NO_ANSWER=2
FALLBACK_MAX_KB_UNAVAILABLE=1
FALLBACK_MAX_AI_ERRORS=1
FALLBACK_MAX_MEDIA_ERRORS=1
FALLBACK_MAX_TOOL_ERRORS=2
FALLBACK_CALL_TIMEOUT=5m
AUDIT_ENABLED=true
AUDIT_SINK=postgres
AUDIT_FAIL_CLOSED=false
AUDIT_STORE_TRANSCRIPTS=true
AUDIT_STORE_TRANSCRIPT_DELTAS=false
AUDIT_STORE_RAW_TRANSCRIPTS=false
AUDIT_STORE_REDACTED_TRANSCRIPTS=true
AUDIT_STORE_TOOL_ARGS=true
AUDIT_STORE_TOOL_RESULTS=true
AUDIT_STORE_KB_RESULTS=true
AUDIT_STORE_PROVIDER_EVENTS=true
AUDIT_STORE_MEDIA_STATS=true
AUDIT_MAX_TRANSCRIPT_CHARS=4000
AUDIT_MAX_TOOL_ARG_CHARS=4000
AUDIT_MAX_TOOL_RESULT_CHARS=8000
AUDIT_MAX_EVENT_METADATA_CHARS=8000
AUDIT_RETENTION_DAYS=180
TRANSCRIPT_RETENTION_DAYS=30
TOOL_AUDIT_RETENTION_DAYS=180
ERROR_AUDIT_RETENTION_DAYS=365
AUDIT_EXPORT_MAX_EVENTS=10000
AUDIT_REDACTION_ENABLED=true
AUDIT_REDACTION_STRICT=true
AUDIT_LOG_FULL_PHONE=false
AUDIT_LOG_FULL_IIN=false
AUDIT_LOG_FULL_CARD=false