feat: add configurable Bailian AI cell call runtime

This commit is contained in:
2026-09-14 23:10:39 +08:00
parent 9bade94ada
commit 5dd69b8779
36 changed files with 6455 additions and 30 deletions
+55
View File
@@ -16,6 +16,8 @@ services:
interval: 5s
timeout: 3s
retries: 12
ports:
- "127.0.0.1:${RABBITMQ_PORT:-5672}:5672"
volumes:
- rabbitmq_data:/var/lib/rabbitmq
logging:
@@ -38,6 +40,8 @@ services:
BROKER_MODE: "rabbit"
RABBITMQ_URL: "${RABBITMQ_URL:?Set RABBITMQ_URL}"
HTTP_TOKENS: "${HTTP_TOKENS:?Set HTTP_TOKENS}"
AI_CONFIG_ISSUER: "${AI_CONFIG_ISSUER:-}"
AI_CONFIG_AUDIENCE: "${AI_CONFIG_AUDIENCE:-}"
AGENT_CALL_SIP_READONLY_URL: "${AGENT_CALL_SIP_READONLY_URL:-}"
AGENT_CALL_SIP_READONLY_TOKEN: "${AGENT_CALL_SIP_READONLY_TOKEN:-}"
AGENT_CALL_SIP_READONLY_CA_FILE: >-
@@ -56,6 +60,57 @@ services:
driver: json-file
options: {max-size: "10m", max-file: "3"}
cell-worker:
build:
context: .
dockerfile: Dockerfile
profiles: ["real-cell"]
restart: unless-stopped
init: true
entrypoint: ["python", "-m", "agent_call.cell_worker_main"]
network_mode: host
depends_on:
rabbitmq:
condition: service_healthy
environment:
AGENT_CALL_AI_PROFILE: >-
${AGENT_CALL_AI_PROFILE:-/app/configs/ai-test.bailian.example.yaml}
AGENT_CALL_PROMPT_FILE: >-
${AGENT_CALL_PROMPT_FILE:-/app/prompts/test-call.txt}
AGENT_CALL_TENANT_KEY: >-
${AGENT_CALL_TENANT_KEY:?Set AGENT_CALL_TENANT_KEY}
AGENT_CALL_EXECUTION_LEDGER: >-
${AGENT_CALL_EXECUTION_LEDGER:-/data/cell-executions.sqlite3}
RABBITMQ_URL: "${RABBITMQ_URL:?Set RABBITMQ_URL}"
BAILIAN_API_KEY: "${BAILIAN_API_KEY:?Set BAILIAN_API_KEY}"
BAILIAN_BASE_URL: "${BAILIAN_BASE_URL:?Set BAILIAN_BASE_URL}"
BAILIAN_WSS_BASE_URL: "${BAILIAN_WSS_BASE_URL:?Set BAILIAN_WSS_BASE_URL}"
BAILIAN_TTS_WSS_BASE_URL: "${BAILIAN_TTS_WSS_BASE_URL:-}"
BAILIAN_TTS_MODEL: "${BAILIAN_TTS_MODEL:-cosyvoice-v3.5-plus}"
BAILIAN_TTS_VOICE: "${BAILIAN_TTS_VOICE:?Set BAILIAN_TTS_VOICE}"
BAILIAN_ASR_MODEL: "${BAILIAN_ASR_MODEL:-fun-asr-realtime}"
CELL_ARI_URL: "${CELL_ARI_URL:-http://127.0.0.1:8088}"
CELL_ARI_USERNAME: "${CELL_ARI_USERNAME:-outbound}"
CELL_ARI_PASSWORD: "${CELL_ARI_PASSWORD:?Set CELL_ARI_PASSWORD}"
CELL_ARI_APP: "${CELL_ARI_APP:-agent-call}"
CELL_SIP_TRUNK_ID: "${CELL_SIP_TRUNK_ID:?Set CELL_SIP_TRUNK_ID}"
CELL_CALLER_ID: "${CELL_CALLER_ID:?Set CELL_CALLER_ID}"
CELL_RTP_BIND_HOST: "${CELL_RTP_BIND_HOST:-127.0.0.1}"
CELL_RECORDING_DIR: "${CELL_RECORDING_DIR:-/data/recordings}"
volumes:
- agent_call_data:/data
tmpfs:
- /tmp:rw,noexec,nosuid,size=64m
read_only: false
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
pids_limit: 256
mem_limit: 1g
cpus: 2
logging:
driver: json-file
options: {max-size: "10m", max-file: "3"}
sip-management:
build:
context: .