feat: 修复代码审核报告问题
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
"""配置管理 - 环境变量 + 默认值"""
|
||||
import os
|
||||
from pathlib import Path
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
"""应用配置"""
|
||||
|
||||
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
||||
|
||||
# RSSKeeper 连接
|
||||
RSSKEEPER_BASE_URL: str = "http://localhost:7329"
|
||||
|
||||
# LLM API(兼容 OpenAI 格式)
|
||||
OPENAI_API_KEY: str = ""
|
||||
OPENAI_BASE_URL: str = "https://api.openai.com/v1"
|
||||
OPENAI_MODEL: str = "gpt-4o-mini"
|
||||
OPENAI_TIMEOUT: int = 60
|
||||
OPENAI_MAX_RETRIES: int = 3
|
||||
|
||||
# dataClean 数据目录
|
||||
DATA_DIR: Path = Path("/app/data")
|
||||
DATABASE_URL: str = "/app/data/dataclean.db"
|
||||
|
||||
# 简报输出目录
|
||||
BRIEF_OUTPUT_DIR: Path = Path("/app/data/briefs")
|
||||
|
||||
# 调度时间(分钟)
|
||||
SUMMARIZE_INTERVAL_MINUTES: int = 60
|
||||
TAG_SCORE_INTERVAL_MINUTES: int = 1440
|
||||
DAILY_BRIEF_HOUR: int = 8
|
||||
DAILY_BRIEF_MINUTE: int = 0
|
||||
|
||||
# 去重阈值
|
||||
TITLE_SIMILARITY_THRESHOLD: float = 0.85
|
||||
CONTENT_SIMILARITY_THRESHOLD: float = 0.80
|
||||
|
||||
# 摘要长度
|
||||
MAX_AI_SUMMARY_LENGTH: int = 300
|
||||
MIN_ORIGINAL_SUMMARY_LENGTH: int = 100
|
||||
|
||||
# 每篇简报每个分类显示文章数
|
||||
BRIEF_TOP_N_PER_CATEGORY: int = 10
|
||||
|
||||
# 日志级别
|
||||
LOG_LEVEL: str = "INFO"
|
||||
|
||||
# Web UI / API 安全
|
||||
# 为空时不启用 API Token 鉴权(仅建议在内网使用);生产环境请设置强密码
|
||||
API_TOKEN: str = ""
|
||||
# CORS 允许来源,逗号分隔;生产环境请填写具体域名,如 "https://dataclean.example.com"
|
||||
CORS_ALLOWED_ORIGINS: str = ""
|
||||
|
||||
@property
|
||||
def database_path(self) -> str:
|
||||
"""返回 SQLite 数据库路径"""
|
||||
return str(Path(self.DATABASE_URL))
|
||||
|
||||
@property
|
||||
def brief_output_dir_path(self) -> Path:
|
||||
"""返回简报输出目录"""
|
||||
return self.BRIEF_OUTPUT_DIR
|
||||
|
||||
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user