-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
64 lines (54 loc) · 3.94 KB
/
Copy path.env.example
File metadata and controls
64 lines (54 loc) · 3.94 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
# ─────────────────────────────────────────────────────────────────────────────
# Testify configuration. Copy to `.env` and fill in. NEVER commit `.env`.
# Every var has a safe default; with none set, the app runs in MOCK mode offline.
# ─────────────────────────────────────────────────────────────────────────────
# App
APP_NAME=Testify
ENV=development # development | production
LOG_LEVEL=INFO
HOST=0.0.0.0
PORT=8000
# Global offline switch. true => every stage uses its mock/fixture impl (no GPU,
# no network, no keys). Great for demos, CI, and laptop dev. Leave false to use
# real providers below.
MOCK_MODE=false
# ── Gemma reasoning endpoint (OpenAI-compatible) ────────────────────────────────
# The synthesizer is endpoint-agnostic — point these at Fireworks AI, Google AI
# Studio's OpenAI shim, or any OpenAI-compatible server.
FIREWORKS_API_KEY=
FIREWORKS_BASE_URL=https://api.fireworks.ai/inference/v1
SYNTH_MODEL=gemma-4-31b-it
# ── FREE real Gemma, NO credit card (Google AI Studio) ──────────────────────────
# Compliance grading is a TEXT task (a speaker-attributed transcript + a rule set), so
# Gemma being text-only on the Google shim is FINE here — this product uses REAL Gemma
# with no multimodal workaround. Run a real audit with zero cost / no card:
# 1) free key (no card): https://aistudio.google.com/apikey
# 2) set:
# SYNTHESIZER=fireworks
# FIREWORKS_API_KEY=<your Google AI Studio key>
# FIREWORKS_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
# SYNTH_MODEL=gemma-4-31b-it
# For the $2k "Best AMD-Hosted Gemma" prize, run Gemma on the MI300X (SYNTHESIZER=amd).
# ── AMD-hosted Gemma via local vLLM on the MI300X (OpenAI-compatible) ────────────
AMD_LLM_BASE_URL=http://localhost:8001/v1
AMD_LLM_MODEL=google/gemma-3-27b-it
AMD_LLM_API_KEY=EMPTY # vLLM ignores the value but the client needs one
# ── Provider selection ──────────────────────────────────────────────────────────
# transcriber: local | mock
TRANSCRIBER=local
# synthesizer: fireworks | amd | mock
SYNTHESIZER=fireworks
# ── Local ASR model (runs on AMD MI300X via ROCm, or CPU fallback) ──────────────
WHISPER_MODEL=openai/whisper-large-v3 # use whisper-small/base on CPU laptops
HF_TOKEN= # for gated weights / faster HF downloads
# Force device: auto | cuda | cpu (auto = GPU if torch.cuda.is_available())
DEVICE=auto
# ── Compliance rule set ─────────────────────────────────────────────────────────
RULESET_PATH=fixtures/default_ruleset.json # FDCPA/TCPA starter set (override per-request too)
# ── Media / pipeline tuning ─────────────────────────────────────────────────────
MAX_AUDIO_SECONDS=3600 # reject recordings longer than this
MAX_UPLOAD_MB=512
YTDLP_COOKIES_FROM_BROWSER= # e.g. "chrome" for login-walled hosts (optional)
# ── Storage ─────────────────────────────────────────────────────────────────────
DATA_DIR=./data # sqlite db + working files live here
DATABASE_URL=sqlite:///./data/testify.db