Initial commit: avc-phone-ai codebase + CLAUDE.md
This commit is contained in:
62
.env.example
Normal file
62
.env.example
Normal file
@@ -0,0 +1,62 @@
|
||||
# Copy to .env and fill in. run.sh auto-loads it.
|
||||
|
||||
# ── Public ingress (Twilio dials this back) ──────────────────────────────────
|
||||
# Public hostname; nginx terminates TLS here and proxies to the app. Must match the
|
||||
# Twilio webhook host (Twilio signs https://PUBLIC_HOST/voice).
|
||||
PUBLIC_HOST=voip.activeblue.net
|
||||
PORT=8200
|
||||
# App bind address. Default 127.0.0.1 (nginx proxies in locally) — not exposed on LAN.
|
||||
BIND_HOST=127.0.0.1
|
||||
|
||||
# ── Twilio ───────────────────────────────────────────────────────────────────
|
||||
# From console.twilio.com. Account SID + a Standard API Key (scoped to this app,
|
||||
# revocable independently). The Auth Token stays in the Twilio console only — never on
|
||||
# this server. Create the key under Account → API Keys → Create Standard key, name it
|
||||
# avc-phone-agent-prod; the Secret is shown once. Used to auto-hang-up the carrier leg
|
||||
# and validate inbound webhook signatures.
|
||||
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
TWILIO_API_KEY_SID=SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
TWILIO_API_KEY_SECRET=your_api_key_secret_here
|
||||
# Inbound webhook signature validation is ON whenever TWILIO_API_KEY_SECRET is set.
|
||||
# Set to false only for local testing without real Twilio requests.
|
||||
TWILIO_VALIDATE=true
|
||||
# Shared secret embedded in the Media Stream wss URL to gate /ws. Set a stable random
|
||||
# value (e.g. `openssl rand -base64 24`); if blank, one is generated per process start.
|
||||
STREAM_TOKEN=
|
||||
|
||||
# ── Odoo appointment integration ─────────────────────────────────────────────
|
||||
# Leave ODOO_USER/ODOO_API_KEY blank to disable Odoo and log requests to JSONL only.
|
||||
# Same creds the activeblue-agent container uses (docker inspect activeblue-agent).
|
||||
# Verified working against db1 with ODOO_TARGET=crm.
|
||||
ODOO_URL=http://localhost:8069
|
||||
ODOO_DB=db1
|
||||
ODOO_USER=mr.garcia09@gmail.com
|
||||
ODOO_API_KEY=
|
||||
ODOO_TARGET=crm # crm = callback lead (recommended) | calendar = tentative event
|
||||
|
||||
# ── Capacity ─────────────────────────────────────────────────────────────────
|
||||
# Max simultaneous calls (each uses GPU; Ollama serializes generation). Over-cap
|
||||
# callers hear BUSY_MESSAGE and are hung up. Tune to your GPU headroom (2-3 typical).
|
||||
MAX_CONCURRENT_CALLS=2
|
||||
# BUSY_MESSAGE=Thank you for calling Advanced Vision Care. All of our lines are busy right now. Please call back in a few minutes. Goodbye.
|
||||
|
||||
# ── Models (defaults are fine) ───────────────────────────────────────────────
|
||||
OLLAMA_MODEL=llama3.1:8b
|
||||
OLLAMA_URL=http://127.0.0.1:11434/v1
|
||||
# LLM provider: ollama (local, default) | anthropic (Claude API). Flip to A/B test Claude.
|
||||
LLM_PROVIDER=ollama
|
||||
ANTHROPIC_API_KEY=
|
||||
# Default is the most capable model; for low-latency phone voice prefer claude-haiku-4-5
|
||||
# (fastest) or claude-sonnet-4-6 (balance).
|
||||
ANTHROPIC_MODEL=claude-opus-4-8
|
||||
# ── STT: Deepgram (real-time, in-call only) ──────────────────────────────────
|
||||
# Nova-2 delivers end-of-utterance in <300ms (vs Whisper's 1-3s buffering). Key from
|
||||
# console.deepgram.com. Model is fixed to nova-2 in code; DEEPGRAM_MODEL is informational.
|
||||
DEEPGRAM_API_KEY=
|
||||
DEEPGRAM_MODEL=nova-2
|
||||
# Whisper is retained for POST-CALL transcription only (Phase 3), not the live pipeline.
|
||||
WHISPER_MODEL=base
|
||||
WHISPER_DEVICE=cuda
|
||||
WHISPER_COMPUTE=float16
|
||||
KOKORO_VOICE=af_heart
|
||||
KOKORO_MODEL_DIR=/home/tocmo0nlord/pipecat-run/models
|
||||
Reference in New Issue
Block a user