aea39a00ae
Co-authored-by: Cursor <cursoragent@cursor.com>
126 lines
4.4 KiB
Python
126 lines
4.4 KiB
Python
"""
|
||
Trading Studio 全局配置模块
|
||
统一存放局域网节点、模型名称、固定 Prompt 及本地路径。
|
||
|
||
服务器本地覆盖:复制 .env.example 为 .env 并修改(不入 Git),无需改 config.py。
|
||
"""
|
||
|
||
import os
|
||
from pathlib import Path
|
||
|
||
|
||
def _load_dotenv() -> None:
|
||
"""加载项目根目录 .env(简单 KEY=VALUE 格式,无第三方依赖)。"""
|
||
env_path = Path(__file__).resolve().parent / ".env"
|
||
if not env_path.is_file():
|
||
return
|
||
for raw in env_path.read_text(encoding="utf-8").splitlines():
|
||
line = raw.strip()
|
||
if not line or line.startswith("#") or "=" not in line:
|
||
continue
|
||
key, val = line.split("=", 1)
|
||
key = key.strip()
|
||
val = val.strip().strip('"').strip("'")
|
||
if key and key not in os.environ:
|
||
os.environ[key] = val
|
||
|
||
|
||
_load_dotenv()
|
||
|
||
|
||
def _env_str(key: str, default: str) -> str:
|
||
return os.environ.get(key, default).strip()
|
||
|
||
|
||
def _env_int(key: str, default: int) -> int:
|
||
try:
|
||
return int(os.environ.get(key, str(default)).strip())
|
||
except ValueError:
|
||
return default
|
||
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# 网络与服务
|
||
# ---------------------------------------------------------------------------
|
||
# 远程 Ollama 节点(局域网大模型审查润色)
|
||
# 生产环境请在 .env 中设置 OLLAMA_HOST,避免 git pull 冲突
|
||
OLLAMA_HOST = _env_str("OLLAMA_HOST", "192.168.8.64")
|
||
OLLAMA_PORT = _env_int("OLLAMA_PORT", 11434)
|
||
OLLAMA_URL = f"http://{OLLAMA_HOST}:{OLLAMA_PORT}/api/chat"
|
||
|
||
# 指定无限制版 Gemma4 模型
|
||
MODEL_NAME = _env_str("MODEL_NAME", "huihui_ai/gemma-4-abliterated:e4b")
|
||
|
||
# Gradio 中控固定端口(硬性死规则)
|
||
HOST = "0.0.0.0"
|
||
PORT = 5683
|
||
|
||
# HTTP 请求超时(秒)
|
||
OLLAMA_TIMEOUT = 60
|
||
|
||
# 健康检查快速超时(秒)— 避免平板首屏被长时间阻塞
|
||
HEALTH_CHECK_CONNECT_TIMEOUT = 2
|
||
HEALTH_CHECK_READ_TIMEOUT = 3
|
||
HEALTH_CHECK_CACHE_SECONDS = 30
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# LLM 系统 Prompt
|
||
# ---------------------------------------------------------------------------
|
||
SYSTEM_PROMPT = (
|
||
"你是一个冷静、极其严格的数字资产量化交易员。"
|
||
"请把下面这段口语化、包含结巴和逻辑混乱的交易复盘录音转写,"
|
||
"润色成一段逻辑清晰、行文通顺的 B 站长视频反思配音稿。"
|
||
"语气要内向、克制、严谨。"
|
||
"如果原视频中有由于心态不好、违背交易纪律(如手贱乱开仓、提前平仓)"
|
||
"导致少赚或亏损的部分,请用冷酷、严厉的语气狠狠地自我吐槽、反思该点。"
|
||
"去掉所有无意义的口头禅,字数不做删减。"
|
||
)
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# Faster-Whisper 配置
|
||
# ---------------------------------------------------------------------------
|
||
WHISPER_MODEL_SIZE = "small"
|
||
WHISPER_DEVICE = "cuda"
|
||
WHISPER_COMPUTE_TYPE = "float16"
|
||
WHISPER_LANGUAGE = "zh"
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# ChatTTS 配置
|
||
# ---------------------------------------------------------------------------
|
||
# 标准生产安装路径(/opt,root 部署)
|
||
INSTALL_DIR = Path("/opt/Trading_Studio")
|
||
|
||
# 项目根目录(开发/生产均自适应,以实际 app.py 所在目录为准)
|
||
BASE_DIR = Path(__file__).resolve().parent
|
||
|
||
# 固定音色 Embedding 存储路径
|
||
SPEAKER_EMB_PATH = BASE_DIR / "speaker_emb.pt"
|
||
|
||
# 合成音频输出目录
|
||
OUTPUT_DIR = BASE_DIR / "outputs"
|
||
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
||
|
||
# ChatTTS 采样率(Hz)
|
||
TTS_SAMPLE_RATE = 24000
|
||
|
||
# 音色样本时长建议(秒)
|
||
SPEAKER_SAMPLE_MIN_SEC = 10
|
||
SPEAKER_SAMPLE_MAX_SEC = 30
|
||
|
||
# TTS 推理默认参数(低 temperature 有助于音色稳定)
|
||
TTS_TEMPERATURE = 0.3
|
||
TTS_TOP_P = 0.7
|
||
TTS_TOP_K = 20
|
||
TTS_SPEED_PROMPT = "[speed_5]"
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# 上传临时文件目录
|
||
# ---------------------------------------------------------------------------
|
||
UPLOAD_DIR = BASE_DIR / "uploads"
|
||
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
|
||
|
||
# ---------------------------------------------------------------------------
|
||
# Git 仓库(文档引用)
|
||
# ---------------------------------------------------------------------------
|
||
GIT_REPO_URL = "https://git.bz121.com/dekun/Trading_Studio.git"
|