70 lines
2.9 KiB
Python
70 lines
2.9 KiB
Python
"""中台配置。优先读环境变量,便于以后切换部署环境。
|
||
|
||
可在 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")
|