架构设计
AI-Digest 系统的技术架构详解
🏗️ 整体架构
AI-Digest 采用三层分离架构,由核心引擎、后端服务和前端界面三个子系统组成,各司其职,松耦合设计。
系统架构总览图
表现层
服务层
核心层
数据存储
分层架构详解
表现层 (Presentation Layer)
AI-Digest-UI - Vue 3 前端应用
- 用户认证与会话管理
- 数据源配置界面
- 构建任务触发与监控
- 实时日志查看
- 系统配置管理
服务层 (Service Layer)
AI-Digest-OS - FastAPI 后端服务
- RESTful API 接口
- JWT 认证与授权
- 任务调度与执行
- GitHub 仓库监控
- 日志管理与查询
核心层 (Core Layer)
AI-Digest-Pro - Python 核心引擎
- 多源内容抓取
- LLM 智能处理
- 内容去重与排序
- 静态站点生成
- 数据持久化
🔄 数据流转
下图展示了 AI-Digest 系统从数据抓取到最终发布的完整数据流转过程:
🧩 模块设计
核心引擎模块 (ai-digest-pro/core/)
| 模块 | 文件 | 功能 |
|---|---|---|
| 内容抓取 | fetcher.py fetcher_enhanced.py |
RSS/HTML抓取、并发处理、Playwright支持 |
| 内容处理 | processor.py | LLM集成、摘要生成、标题翻译、优先级计算 |
| 内容生成 | generator.py | 静态站点生成、Markdown转HTML、模板渲染 |
| 数据存储 | database.py | SQLite操作、批量插入、数据查询 |
| 去重系统 | deduplicator.py | 标题相似度计算、重复检测 |
| 缓存管理 | cache.py | 文件缓存、TTL管理 |
| 速率限制 | rate_limiter.py | API调用限制、成本追踪 |
| 安全验证 | security.py | 输入验证、XSS防护 |
后端服务模块 (ai-digest-os/backend/)
| 模块 | 文件 | 功能 |
|---|---|---|
| 主应用 | main.py | FastAPI应用、路由定义、任务调度 |
| 认证系统 | auth_db.py | 用户管理、密码加密、JWT生成 |
| 配置管理 | config.yaml | 调度器配置、时区设置 |
前端界面模块 (ai-digest-ui/src/)
| 模块 | 目录/文件 | 功能 |
|---|---|---|
| 路由 | router/ | 页面路由、权限守卫 |
| 视图 | views/ | Dashboard、Login、Logs、Settings页面 |
| 组件 | components/ | Sidebar、URLSourceManager等可复用组件 |
| 组合式函数 | composables/ | useAuth、useBuild、useDigest等业务逻辑 |
💾 数据模型
文章表 (articles)
CREATE TABLE articles (
id INTEGER PRIMARY KEY,
url TEXT UNIQUE NOT NULL,
title TEXT NOT NULL,
title_zh TEXT,
title_en TEXT,
content TEXT,
summary_zh TEXT,
summary_en TEXT,
source TEXT,
date TEXT NOT NULL,
popularity INTEGER DEFAULT 0,
attention INTEGER DEFAULT 0,
category TEXT DEFAULT 'ai_industry',
created_at TIMESTAMP,
is_deleted INTEGER DEFAULT 0,
deleted_at TIMESTAMP
)
用户表 (users)
CREATE TABLE users (
id INTEGER PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
role TEXT DEFAULT 'user',
created_at TIMESTAMP,
updated_at TIMESTAMP
)
🔐 安全设计
认证与授权
- JWT Token 认证机制
- bcrypt 密码哈希
- Token 过期自动刷新
- 路由权限守卫
输入验证
- URL 安全验证(防止 SSRF)
- HTML 内容清理(防止 XSS)
- SQL 注入防护(参数化查询)
- 文件路径验证
速率限制
- API 调用频率限制
- 每日成本预算控制
- IP 级别的速率限制
⚡ 性能优化
并发处理
使用 ThreadPoolExecutor 实现多线程并发抓取,性能提升 3-5 倍
with ThreadPoolExecutor(max_workers=5) as executor:
futures = {executor.submit(fetch, source): source
for source in sources}
for future in as_completed(futures):
result = future.result()
智能缓存
缓存 AI 处理结果,节省 30-50% 成本
cache_key = f"summarize:{lang}:{url}:{text_hash}"
cached_result = self.cache.get(cache_key)
if cached_result:
return cached_result
批量操作
数据库批量插入,性能提升 2-3 倍
cursor.executemany(
"INSERT INTO articles (...) VALUES (...)",
articles_data
)