forked from EfficientAI-tech/efficientAI
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.docker.yml
More file actions
121 lines (105 loc) 路 3.74 KB
/
Copy pathconfig.docker.yml
File metadata and controls
121 lines (105 loc) 路 3.74 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
# 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"
# Server Settings
server:
host: "0.0.0.0"
port: 8000
# 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
# Enterprise License (JWT signed with RS256). Unlocks gated features like
# oidc_sso, mfa_enforce, audit_export, voice_playground, gepa_optimization.
# license:
# key: "eyJhbGciOi..."