Sign inSign up

phirumseng/plxy-callbot-worker

By phirumseng

•Updated about 1 month ago

PLXY AI Call Center scenario engine — runs call flows and drives the ASR, LLM and TTS providers

Image
Integration & delivery
Machine learning & AI
0

119

phirumseng/plxy-callbot-worker repository overview

⁠plxy-callbot-worker

Scenario engine of the PLXY AI Call Center. One session per live call: it resolves which scenario the dialled number maps to, walks the flow node by node, and calls the AI providers — speech-to-text, language model, text-to-speech — to actually hold the conversation.

Part of a five-image platform that answers calls from a SIP trunk, runs an AI conversation, and transfers to a 3CX agent when the flow says so.

📖 Deployment guide⁠ · Configuration reference⁠

⁠Where it sits

 plxy-voice-gateway ──WebSocket (one per call)──▶ plxy-callbot-worker
                                                        │
                                 REST (internal token)  ▼
                                                 plxy-callbot-api
                                                        ▲
                                          AI providers ─┘  (ASR · LLM · TTS)

⁠Ports

PortPurpose
29192Session WebSocket — the voice gateway opens one per call, inbound from the DMZ

⁠Configuration

VariableRequiredWhat it is
API_BASE_URL✅Control plane URL (http://callbot-api:29092 inside the stack)
VGW_BASE_URL✅Voice gateway URL — rendered speech is uploaded to its media spool
AI_PROVIDERFallback provider for every capability. Default simulator
AI_LLM_PROVIDER / AI_TTS_PROVIDER / AI_ASR_PROVIDEROverride one capability at a time
OLLAMA_BASE_URL / OLLAMA_MODELOn-premise LLM. Reachable from this container
AZURE_SPEECH_REGION / _VOICE / _LOCALESpeech provider. Locale defaults to km-KH
LLM_MAX_STEPSModel turns one call may take. Default 4
LLM_MAX_TOKENS_PER_CALLDefault 20000
LLM_MAX_SECONDS_PER_CALLDefault 30
⁠Choosing providers

AI_PROVIDER alone makes providers mutually exclusive, which is rarely what you want — an on-premise LLM with a hosted speech pair is AI_LLM_PROVIDER=ollama while AI_PROVIDER stays on the bundled default. The per-call ceilings above are closed by default and have no "unlimited" value: a bigger number is how you ask for more.

The bundled simulator provider is deterministic and needs no credentials — it exists so a fresh deployment can complete a real call before you sign a single AI contract.

⁠Secrets

Read from mounted files, never the environment: INTERNAL_API_TOKEN_FILE · VGW_CONTROL_TOKEN_FILE · VGW_WORKER_TOKEN_FILE · AZURE_SPEECH_KEY_FILE

⁠Replicas

Sessions are connection-scoped and hold no shared state, so this scales out freely. The stack runs two by default (WORKER_REPLICAS).

⁠Run it

This image is one service of a stack. Deploy the whole platform with the published Swarm stack files:

git clone https://github.com/SengPhirum/PLXY_AICC.git && cd PLXY_AICC
deploy/swarm/secrets-init.sh callbot prod
TAG=0.1.0 deploy/swarm/deploy.sh callbot prod

Full walkthrough: https://sengphirum.github.io/PLXY_AICC/setup-guide⁠

⁠Tags

latest tracks the newest release. Pin the version tag (0.1.0) in production, and use the same tag for all five images — they ship as one set.

⁠The other images

plxy-callbot-api⁠ · plxy-callbot-ui⁠ · plxy-voice-gateway⁠ · plxy-voice-gateway-media⁠

Tag summary

Content type

Image

Digest

sha256:8a73ed20c…

Size

116.5 MB

Last updated

about 1 month ago

docker pull phirumseng/plxy-callbot-worker