Files
SayIt/server/config.example.yaml
T
crosswk a7e2dd6590 chore: 整合后端更新与文档,准备 0.0.4 发布
- 后端: ASR 性能优化与热词幻觉修复 (asr.py / main.py),调整 config.example.yaml vllm_max_model_len
- 补充 docs AI/ASR 服务提供商文档
- 同步客户端原生层(src-tauri)、overlay、recorder 等既有改动
- .gitignore 忽略 we-media/ 运营资料
2026-06-02 15:22:30 +08:00

109 lines
3.2 KiB
YAML

# =============================================================================
# SayIt Configuration
# =============================================================================
# Secrets (API keys, passwords) → .env
# Everything else → this file
# =============================================================================
server:
host: "0.0.0.0"
port: 8000
cors_origins: # Allowed CORS origins
- "*" # Default: allow all. Restrict in production.
# HTTPS reverse proxy (when not using ALB/CDN)
gateway:
host: "0.0.0.0"
port: 8443
backend_target: "http://127.0.0.1:8000"
tls_key_file: "certs/dev.key"
tls_cert_file: "certs/dev.crt"
paths:
prompt_dir: "prompts"
releases_dir: "releases"
# --- Speech Recognition ---
asr:
engine: "qwen3" # qwen3 / firered
model: "Qwen/Qwen3-ASR-1.7B"
device: "cuda:0"
language: "Chinese" # Chinese / English / Cantonese
itn: true # Inverse text normalization
vllm_gpu_util: 0.5
vllm_max_model_len: 16384
max_concurrency: 1
batch_max_size: 32
batch_wait_ms: 60
firered: # Only used when engine = "firered"
model_dir: "pretrained_models"
vad:
model: "fsmn-vad"
max_single_segment_time: 30000 # ms
# --- LLM Text Polishing ---
# Define all available providers below, then choose which one to use
# for desktop and web_demo. API keys go in .env file.
llm:
desktop: "openai" # Provider for desktop client
web_demo: "groq" # Provider for web demo (empty = disabled)
providers:
azure:
deployment: "gpt-4o"
api_version: "2024-12-01-preview"
timeout_sec: 15
openai:
base_url: "https://api.openai.com"
model: "gpt-4o-mini"
timeout_sec: 15
groq:
base_url: "https://api.groq.com/openai"
model: "qwen/qwen3-32b"
timeout_sec: 15
ollama:
url: "http://127.0.0.1:11434/api/generate"
model: "qwen2.5:7b"
timeout_sec: 15
# --- Landing Page ---
public_site:
app_name: "SayIt"
headline: "随口说,出色写。"
subheadline: "用说话代替打字,AI 实时把口语变成可以直接用的书面表达。"
download_label: "下载 Windows 客户端"
download_platform: "win32"
download_arch: "x64"
# --- Browser Demo ---
web_demo:
enabled: true
max_duration_sec: 600 # Max recording length per session (sec)
max_concurrency_per_ip: 3
# --- Admin Dashboard ---
# Password in .env (SAYIT_ADMIN_PASSWORD)
admin:
enabled: true
username: "admin"
# --- Logging ---
logging:
level: "INFO" # DEBUG / INFO / WARNING / ERROR
debug_asr: false # Log raw ASR input/output
debug_llm: false # Log raw LLM input/output
file: "runtime/logs/sayit.log"
retention_days: 14
slow_asr_ms: 5000 # Warn when ASR takes longer
slow_llm_ms: 8000 # Warn when LLM takes longer
# --- Telemetry ---
telemetry:
enabled: true
db: "sqlite" # sqlite / postgresql
db_path: "runtime/telemetry/sayit.sqlite3"
collect_window_title: true
collect_exe_path: true
node_id: "single-node-01"