Files
stock_cursor_v0/backend/config.py
2026-06-15 01:26:39 +08:00

70 lines
2.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""中台配置。优先读环境变量,便于以后切换部署环境。
可在 backend/.env 写入密钥(大模型 key、邮箱、推送 token无需改代码。
"""
import os
try:
from dotenv import load_dotenv
load_dotenv(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".env"))
except Exception:
pass
PG_USER = os.getenv("PG_USER", "postgres")
PG_PASSWORD = os.getenv("PG_PASSWORD", "13142324")
PG_HOST = os.getenv("PG_HOST", "localhost")
PG_PORT = os.getenv("PG_PORT", "5432")
PG_DB = os.getenv("PG_DB", "stock_cs")
DB_URL = f"postgresql+psycopg2://{PG_USER}:{PG_PASSWORD}@{PG_HOST}:{PG_PORT}/{PG_DB}"
DB_URL_DEFAULT = f"postgresql+psycopg2://{PG_USER}:{PG_PASSWORD}@{PG_HOST}:{PG_PORT}/postgres"
# 默认入库股票池(沪深龙头 + 自选)。可在「数据中台」页或环境变量扩展。
DEFAULT_UNIVERSE = [
"600519", "300750", "002594", "688981", "300059", "601012",
"600036", "601318", "000858", "002415", "600276", "002230",
"601899", "600030", "000333", "002475", "300760", "601166",
"688111", "600887",
]
# 收盘后定时任务时间24h制本地时区
INGEST_HOUR = int(os.getenv("INGEST_HOUR", "15"))
INGEST_MINUTE = int(os.getenv("INGEST_MINUTE", "35"))
# ---- 大模型OpenAI 兼容DeepSeek/通义/Kimi 等均可)----
# 配置环境变量 LLM_API_KEY 后即启用真实大模型,否则走内置规则点评。
LLM_API_KEY = os.getenv("LLM_API_KEY", "")
LLM_BASE_URL = os.getenv("LLM_BASE_URL", "https://api.deepseek.com/v1")
LLM_MODEL = os.getenv("LLM_MODEL", "deepseek-chat")
LLM_TIMEOUT = int(os.getenv("LLM_TIMEOUT", "40"))
# ---- 推送通知 ----
# 邮件SMTP
SMTP_HOST = os.getenv("SMTP_HOST", "")
SMTP_PORT = int(os.getenv("SMTP_PORT", "465"))
SMTP_USER = os.getenv("SMTP_USER", "")
SMTP_PASSWORD = os.getenv("SMTP_PASSWORD", "") # 邮箱授权码
SMTP_TO = os.getenv("SMTP_TO", "") # 收件人,多个用逗号
# Server酱 Turbo微信推送最简单
SERVERCHAN_KEY = os.getenv("SERVERCHAN_KEY", "")
# 企业微信群机器人 webhook
WECOM_WEBHOOK = os.getenv("WECOM_WEBHOOK", "")
# PushPlus微信推送
PUSHPLUS_TOKEN = os.getenv("PUSHPLUS_TOKEN", "")
# ---- Redis 缓存 ----
REDIS_HOST = os.getenv("REDIS_HOST", "localhost")
REDIS_PORT = int(os.getenv("REDIS_PORT", "6379"))
REDIS_DB = int(os.getenv("REDIS_DB", "0"))
REDIS_PASSWORD = os.getenv("REDIS_PASSWORD", "")
# ---- 鉴权配置 ----
SECRET_KEY = os.getenv("SECRET_KEY", "your-secret-key-change-in-production")
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = int(os.getenv("ACCESS_TOKEN_EXPIRE_MINUTES", "10080")) # 7天
# API Key 模式(可选,用于外部调用)
API_KEYS = os.getenv("API_KEYS", "").split(",") if os.getenv("API_KEYS") else []
# 默认管理员账号(首次启动时创建)
DEFAULT_ADMIN_USERNAME = os.getenv("DEFAULT_ADMIN_USERNAME", "admin")
DEFAULT_ADMIN_PASSWORD = os.getenv("DEFAULT_ADMIN_PASSWORD", "admin123")