2026-08-20 00:26:07 +08:00
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
"""
|
|
|
|
|
|
新闻智能跟踪系统 - 全局配置
|
|
|
|
|
|
所有环境相关配置集中在此,便于迁移与扩展。
|
|
|
|
|
|
后期接入真实数据源时,只需在 sources 适配层实现 fetch() 即可,其余逻辑不变。
|
|
|
|
|
|
"""
|
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
|
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
DATA_DIR = os.path.join(BASE_DIR, "data")
|
|
|
|
|
|
LOG_DIR = os.path.join(BASE_DIR, "logs")
|
|
|
|
|
|
STATIC_DIR = os.path.join(BASE_DIR, "static")
|
|
|
|
|
|
TEMPLATE_DIR = os.path.join(BASE_DIR, "templates")
|
|
|
|
|
|
DB_PATH = os.path.join(DATA_DIR, "news_tracker.db")
|
|
|
|
|
|
|
|
|
|
|
|
os.makedirs(DATA_DIR, exist_ok=True)
|
|
|
|
|
|
os.makedirs(LOG_DIR, exist_ok=True)
|
|
|
|
|
|
|
|
|
|
|
|
# ---------------- 服务 ----------------
|
|
|
|
|
|
SERVICE_PORT = 16100
|
|
|
|
|
|
SERVICE_HOST = "0.0.0.0"
|
|
|
|
|
|
SERVICE_NAME = "新闻智能跟踪系统"
|
|
|
|
|
|
|
2026-08-28 16:06:07 +08:00
|
|
|
|
# ---------------- 大模型(默认回退配置,运行时以网页里激活的 llm_providers 为准) ----------------
|
2026-08-20 00:26:07 +08:00
|
|
|
|
LLM_BASE_URL = "https://api.deepseek.com"
|
|
|
|
|
|
LLM_API_KEY = "sk-edb9df58ff574f8c98df1cd6a425e97c"
|
|
|
|
|
|
LLM_MODEL = "deepseek-v4-flash" # 推理型,分析质量高
|
|
|
|
|
|
LLM_TIMEOUT = 120
|
|
|
|
|
|
LLM_MAX_TOKENS = 1500
|
|
|
|
|
|
LLM_TEMPERATURE = 0.3
|
|
|
|
|
|
|
2026-08-28 16:06:07 +08:00
|
|
|
|
# 预置大模型接口(首次初始化写入 llm_providers 表,可在网页增删改 + 一键切换)
|
|
|
|
|
|
LLM_PROVIDERS_DEFAULT = [
|
|
|
|
|
|
{"name": "SiliconFlow(默认)", "base_url": "https://api.siliconflow.cn/v1",
|
|
|
|
|
|
"api_key": "sk-fhpoexpptvjghpnphtaxbkhjwulzovoqfffbckcfscjmwhcg",
|
|
|
|
|
|
"model": "deepseek-ai/DeepSeek-V4-Flash", "active": 1},
|
|
|
|
|
|
{"name": "DeepSeek 官方", "base_url": "https://api.deepseek.com",
|
|
|
|
|
|
"api_key": "sk-edb9df58ff574f8c98df1cd6a425e97c",
|
|
|
|
|
|
"model": "deepseek-v4-flash", "active": 0},
|
|
|
|
|
|
{"name": "Autodl(火山方舟中转)", "base_url": "https://www.autodl.art/api/v1",
|
|
|
|
|
|
"api_key": "F9MBfolzuapqTsD4KmUf9qen720rXvUZ3Sp3IrWiCTukqonx",
|
|
|
|
|
|
"model": "qwen3.6-plus", "active": 0},
|
|
|
|
|
|
{"name": "Local Qwen(内网)", "base_url": "http://121.40.164.32:18003/v1",
|
|
|
|
|
|
"api_key": "sk-xxxx",
|
|
|
|
|
|
"model": "unsloth/Qwen3.8-27B-Q6_K", "active": 0},
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
# ---------------- 网页采集(真实源抓取) ----------------
|
|
|
|
|
|
CRAWL_DEFAULTS = {
|
|
|
|
|
|
"per_source_links": 8, # 每源最多采集候选条目
|
|
|
|
|
|
"full_fetch_links": 5, # 其中最多几条抓取全文(存 full_text)
|
|
|
|
|
|
"crawl_timeout": 20, # 单页请求超时(秒)
|
|
|
|
|
|
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
|
|
|
|
|
|
"(KHTML, like Gecko) Chrome/124.0 Safari/537.36",
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-08-30 19:03:50 +08:00
|
|
|
|
# ---------------- web-capture-api(网页提取服务,数据源抓取走该接口) ----------------
|
|
|
|
|
|
# 数据源真实网页优先通过 web-capture-api 项目接口抓取(反爬强,可滚动态/选后端)。
|
|
|
|
|
|
# 每个数据源可单独设置获取方式(fetch_method)与抓取参数(capture_params)。
|
|
|
|
|
|
WEBCAPTURE_DEFAULTS = {
|
|
|
|
|
|
"enabled": 1,
|
|
|
|
|
|
"api_url": "http://121.40.164.32:16025", # web-capture-api 地址(本机默认 16025)
|
|
|
|
|
|
"timeout": 60, # 单次抓取超时(秒)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-08-20 00:26:07 +08:00
|
|
|
|
# ---------------- 邮件通知(默认值,可在设置区修改) ----------------
|
|
|
|
|
|
MAIL_DEFAULTS = {
|
|
|
|
|
|
"smtp_host": "mail.tphai.com",
|
|
|
|
|
|
"smtp_port": 587,
|
|
|
|
|
|
"smtp_user": "hz4th_coder@tphai.com",
|
|
|
|
|
|
"smtp_pass": "hz4th_coder@!",
|
|
|
|
|
|
"smtp_mode": "plain", # plain(无加密) / starttls / ssl
|
|
|
|
|
|
"email_to": "wlq@tphai.com",
|
|
|
|
|
|
"sender_name": "新闻智能跟踪",
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# ---------------- 自动化(默认值,可在设置区修改) ----------------
|
|
|
|
|
|
AUTO_DEFAULTS = {
|
2026-08-29 19:29:28 +08:00
|
|
|
|
"auto_collect": 1, # 是否自动定时采集(新闻监控机制)
|
|
|
|
|
|
"scan_interval_min": 30, # 采集扫描间隔(分钟,新闻源统一值,每源可覆盖)
|
2026-08-20 00:26:07 +08:00
|
|
|
|
"realtime_threshold": 80, # 总分 >= 该值 → 实时邮件通知
|
|
|
|
|
|
"llm_threshold": 60, # 规则分 >= 该值 → 进入 LLM 深度分析
|
|
|
|
|
|
"realtime_enabled": 1, # 是否启用实时重要资讯邮件
|
|
|
|
|
|
"summary_enabled": 1, # 是否启用每日汇总
|
|
|
|
|
|
"summary_time": "10:00", # 每日汇总时间
|
|
|
|
|
|
"summary_window_hours": 24, # 汇总窗口(往前 N 小时)
|
|
|
|
|
|
"max_summary_items": 15, # 汇总邮件最多条目数
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-08-29 19:29:28 +08:00
|
|
|
|
# ---------------- 定制监控机制(与新闻监控分开单独配置) ----------------
|
|
|
|
|
|
CUSTOM_DEFAULTS = {
|
|
|
|
|
|
"custom_enabled": 1, # 是否启用定制监控机制(采集/判断/推送/汇总)
|
|
|
|
|
|
"custom_scan_interval_min": 15, # 定制源统一采集间隔(分钟,每源可覆盖;比新闻更频繁)
|
|
|
|
|
|
"custom_summary_enabled": 1, # 是否单独发「定制监控汇总」邮件
|
|
|
|
|
|
"custom_summary_time": "18:00", # 定制监控汇总时间(独立于新闻日报)
|
|
|
|
|
|
"custom_summary_window_hours": 24,
|
|
|
|
|
|
"custom_max_summary_items": 20, # 定制汇总邮件最多条目数
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-08-30 19:03:50 +08:00
|
|
|
|
# ---------------- 系统错误邮件通知(频率 + 静默时段) ----------------
|
|
|
|
|
|
ERRNOTIFY_DEFAULTS = {
|
|
|
|
|
|
"enabled": 1, # 是否启用错误邮件通知
|
|
|
|
|
|
"mode": "cooldown", # immediate=立即 / cooldown=按冷却时间聚合 / off=关闭
|
|
|
|
|
|
"cooldown_min": 60, # 通知频率:同类/全部错误两次邮件最小间隔(分钟)
|
|
|
|
|
|
"quiet_enabled": 1, # 是否启用静默时段
|
|
|
|
|
|
"quiet_periods": ["23:00-07:30"], # 静默时段,每段 "HH:MM-HH:MM",支持跨午夜、多段
|
|
|
|
|
|
"max_items": 10, # 单封错误邮件最多错误条数
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-08-20 00:26:07 +08:00
|
|
|
|
# ---------------- 默认兴趣画像(可在网页修改) ----------------
|
|
|
|
|
|
DEFAULT_KEYWORDS = [
|
|
|
|
|
|
("大模型", 8), ("人工智能", 6), ("AI", 6), ("芯片", 7), ("GPU", 6),
|
|
|
|
|
|
("算力", 6), ("开源", 6), ("智能体", 7), ("Agent", 6), ("多模态", 6),
|
|
|
|
|
|
("自动驾驶", 6), ("机器人", 5), ("具身智能", 6), ("推理", 4), ("数据中心", 5),
|
|
|
|
|
|
("融资", 5), ("IPO", 5), ("收购", 6), ("政策", 4), ("监管", 6),
|
|
|
|
|
|
("制裁", 7), ("禁令", 8), ("安全", 4), ("量子计算", 5), ("人才", 3),
|
|
|
|
|
|
("裁员", 5), ("突破", 5), ("新模型", 8), ("发布会", 5),
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
DEFAULT_DOMAINS = [
|
|
|
|
|
|
("AI模型与算法", 9), ("芯片与硬件", 8), ("云计算与算力", 6),
|
|
|
|
|
|
("政策与监管", 7), ("投融资", 6), ("企业动态", 5),
|
|
|
|
|
|
("学术研究", 4), ("开源生态", 6),
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
DEFAULT_COMPANIES = [
|
|
|
|
|
|
"OpenAI", "Anthropic", "Google", "Microsoft", "Meta", "NVIDIA",
|
|
|
|
|
|
"AMD", "苹果", "Apple", "亚马逊", "Amazon", "Tesla", "特斯拉",
|
|
|
|
|
|
"华为", "百度", "阿里巴巴", "阿里", "腾讯", "字节跳动", "DeepSeek",
|
|
|
|
|
|
"智谱", "月之暗面", "Kimi", "MiniMax", "商汤", "科大讯飞", "阿里云",
|
|
|
|
|
|
"台积电", "TSMC", "三星", "英特尔", "Intel", "高通", "中芯国际",
|
|
|
|
|
|
"英伟达", "Mistral", "xAI", "Grok", "百度文心", "通义千问", "豆包",
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
# 内置数据源模板(首次初始化时写入,可在网页管理)
|
|
|
|
|
|
DEFAULT_SOURCES = [
|
|
|
|
|
|
{"name": "OpenAI 官方动态", "type": "公司动态", "url": "https://openai.com/news",
|
2026-08-28 16:06:07 +08:00
|
|
|
|
"description": "OpenAI 官方新闻与产品发布(真实抓取)", "weight": 1.0},
|
2026-08-20 00:26:07 +08:00
|
|
|
|
{"name": "AI 科技媒体(模拟)", "type": "科技媒体", "url": "https://example.com/ai-news",
|
|
|
|
|
|
"description": "综合 AI 领域科技媒体(模拟数据源)", "weight": 0.8},
|
|
|
|
|
|
{"name": "arXiv 学术论文", "type": "学术论文", "url": "https://arxiv.org/list/cs.AI/recent",
|
2026-08-28 16:06:07 +08:00
|
|
|
|
"description": "人工智能领域最新论文(真实抓取)", "weight": 0.6},
|
2026-08-20 00:26:07 +08:00
|
|
|
|
{"name": "GitHub 开源趋势", "type": "开源社区", "url": "https://github.com/trending",
|
2026-08-28 16:06:07 +08:00
|
|
|
|
"description": "开源项目趋势与发布(真实抓取)", "weight": 0.7},
|
2026-08-20 00:26:07 +08:00
|
|
|
|
{"name": "政策与监管", "type": "政策法规", "url": "https://example.com/policy",
|
2026-08-28 16:06:07 +08:00
|
|
|
|
"description": "各国 AI 政策、监管与出口管制动态(模拟源,可改真实 URL)", "weight": 0.9},
|
2026-08-20 00:26:07 +08:00
|
|
|
|
{"name": "行业报告与调研", "type": "行业报告", "url": "https://example.com/report",
|
2026-08-28 16:06:07 +08:00
|
|
|
|
"description": "行业数据报告、市场调研(模拟源,可改真实 URL)", "weight": 0.7},
|
2026-08-20 00:26:07 +08:00
|
|
|
|
{"name": "科技投资动态", "type": "投融资", "url": "https://example.com/funding",
|
2026-08-28 16:06:07 +08:00
|
|
|
|
"description": "AI 领域融资、并购、IPO 动态(模拟源,可改真实 URL)", "weight": 0.9},
|
2026-08-29 19:04:32 +08:00
|
|
|
|
# 定制监控示例:无权重,按「推送标准」由大模型判断是否推送
|
|
|
|
|
|
{"name": "英伟达重大异动监控", "type": "定制监控", "url": "https://example.com/custom-nvda",
|
|
|
|
|
|
"description": "定制监控示例:英伟达重大异动(可改真实 URL)", "kind": "custom",
|
|
|
|
|
|
"monitor_standard": "仅推送英伟达(NVIDIA)重大事件:股价单日涨跌幅超10%,或重大产品发布/回购/分拆/收购等实质性公告,或分析师大幅上调目标价。普通行情波动、日常新闻一律不推送。"},
|
2026-08-20 00:26:07 +08:00
|
|
|
|
]
|