-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathconfig.docker.yml
More file actions
138 lines (120 loc) 路 4.29 KB
/
Copy pathconfig.docker.yml
File metadata and controls
138 lines (120 loc) 路 4.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# EfficientAI Docker Configuration File
# This config uses Docker service names for networking
# Application Settings
app:
name: "EfficientAI Voice AI Evaluation Platform"
version: "0.1.0"
debug: true
secret_key: "your-secret-key-here-change-in-production"
frontend_base_url: "http://localhost:8000"
# Server Settings
server:
host: "0.0.0.0"
port: 8000
# Operational endpoints (/metrics). /health is always open for load balancers.
# Add VPC CIDRs here if Prometheus scrapes /metrics from inside the VPC.
operational:
public: false
trusted_ips:
- "10.0.0.0/8"
# Database Configuration (Docker service name)
database:
url: "postgresql://efficientai:password@db:5432/efficientai"
# Redis Configuration (Docker service name)
redis:
url: "redis://redis:6379/0"
# Celery Configuration (Docker service names)
celery:
broker_url: "redis://redis:6379/0"
result_backend: "redis://redis:6379/0"
# File Storage
storage:
upload_dir: "/app/uploads"
max_file_size_mb: 500
allowed_audio_formats:
- "wav"
- "mp3"
- "flac"
- "m4a"
# S3 Configuration (for data sources integration)
s3:
enabled: true
bucket_name: "voiceai-evals-test"
region: "us-east-1"
access_key_id: "${S3_ACCESS_KEY_ID}"
secret_access_key: "${S3_SECRET_ACCESS_KEY}"
endpoint_url: null
prefix: "audio/"
# Speaker Diarization (pyannote.audio)
# Requires accepting model terms at https://huggingface.co/pyannote/speaker-diarization-3.1
diarization:
huggingface_token: # Set your HuggingFace token here (e.g., "hf_xxxxx")
num_speakers: 2 # Force exact speaker count (2 = agent + customer). Set to null for auto-detect.
# CORS Settings
cors:
origins:
- "http://localhost:3000"
- "http://localhost:8000"
# API Settings
api:
prefix: "/api/v1"
key_header: "X-API-Key"
rate_limit_per_minute: 60
# Observability (Loki log aggregation)
# storage: "filesystem" (default, local Docker volume) or "s3" (durable, for production)
# multi_tenant: false (default, single tenant) or true (per-org log isolation)
observability:
enabled: false
loki:
enabled: false
url: "http://loki:3100"
storage: filesystem
multi_tenant: false
platform_tenant: "platform"
# s3:
# bucket_name: "my-logs-bucket"
# region: "us-east-1"
# access_key_id: ""
# secret_access_key: ""
# prefix: "logs/"
auth:
providers:
- api_key
- local_password
# - external_oidc # requires EFFICIENTAI_LICENSE feature: oidc_sso
local_password:
# Lifetime of the Bearer tokens minted at POST /auth/login (in minutes).
# Keep this short; clients re-authenticate silently.
token_ttl_minutes: 720 # 12 hours
# Turn this off in Cloud SaaS to block self-serve signup.
allow_signup: true
# External OIDC (enterprise): bring your own IdP. Works with any
# OIDC-compliant provider. See README.md > Authentication & Deployment
# Recipes for copy-paste recipes for Okta, Azure AD, Google Workspace
# and AWS Cognito.
#
# oidc:
# issuer: "https://example.okta.com" # REQUIRED
# audience: "efficientai" # expected `aud` claim
# client_id: "0oa..." # SPA client id
# jwks_uri: "https://example.okta.com/oauth2/v1/keys" # optional, derived from issuer
# default_org_name: "Example Inc" # used when no org claim is present
# org_claim_path: ["https://efficientai.com/org"] # dotted path into the JWT to find the org name
# Judge Alignment (AlignEval-style hybrid integration).
# Per-org thresholds and judge model selection are UI-driven; only the
# operator kill switch + CSV upload limit live here.
judge_alignment:
enabled: true
csv_max_rows: 5000
# LLM gateway (optional). Per-org overrides in Integrations UI.
# llm_gateway:
# enabled: false
# type: bifrost # bifrost | litellm_proxy
# base_url: "http://localhost:8080/litellm"
# virtual_key: null
# master_key: null
# passthrough_provider_keys: true
# Enterprise License (JWT signed with RS256). Unlocks gated features like
# oidc_sso, mfa_enforce, audit_export, voice_playground, gepa_optimization.
# license:
# key: "eyJhbGciOi..."