基于多源数据整合的智能信息服务系统
SEU-WuHub 面向高校师生,聚合教务处、图书馆等多来源通知公告,通过混合检索与 ReAct Agent 提供自然语言问答能力。
- 多源信息采集:配置化爬虫,新增站点以 YAML 配置为主。
- 混合检索:向量检索 + 全文检索融合,兼顾语义与关键词。
- Agent 问答:ReAct 范式,支持工具调用与流式回答。
- SSE 流式体验:前端实时展示推理与回答过程。
- 统一存储:LanceDB 同时承载结构化数据、向量索引、全文索引。
flowchart LR
U[Browser / Frontend Next.js] -->|HTTP/SSE| A[FastAPI Backend]
A --> S[Agent ReAct Engine]
A --> R[Retrieval Engine]
R --> D[LanceDB]
C[Crawler + ETL] --> D
- 详细架构说明:docs/ARCHITECTURE.md
- 技术叙事报告:docs/TECHNICAL_NARRATIVE.md
- 模块集成说明:docs/MODULE_INTEGRATION.md
SEU-WuHub/
├── backend/ # FastAPI + Agent + Retrieval + Ingestion
├── frontend/ # Next.js App Router 前端
├── config/ # 全局配置(标签、站点等)
├── docs/ # 架构与模块文档
├── scripts/ # 运维与启动脚本
├── data/ # LanceDB 数据目录
└── docker-compose.yml
- Python 3.13+
- Node.js 22+
- Docker / Docker Compose(可选)
- 建议安装 uv
- 安装后端依赖
make backend-install- 安装前端依赖
make frontend-install- 启动后端(默认 8000)
make backend-dev- 启动前端(默认 3000)
make frontend-dev访问地址:
make docker-up停止服务:
make docker-down# 代码质量
make lint
make format
make typecheck
make security
# 测试
make backend-test
make frontend-test
make test主要接口(以实际代码为准):
GET /api/v1/articlesGET /api/v1/articles/{id}GET /api/v1/searchPOST /api/v1/searchGET /api/v1/metadataPOST /api/v1/chat/streamPOST /api/v1/chat/titleGET /health
详细说明:
- 数据库路径:
data/lancedb(容器内映射) - 检索模式:向量检索 + 全文检索(融合)
- 关键模块:
- 架构文档:docs/ARCHITECTURE.md
- 部署文档:docs/DEPLOYMENT.md
- 模块集成:docs/MODULE_INTEGRATION.md
- 技术报告:docs/TECHNICAL_NARRATIVE.md
欢迎通过 Issue / PR 参与改进。
- Fork 本仓库并创建特性分支。
- 提交前执行
make lint && make test。 - 在 PR 中说明改动背景、方案和验证结果,保持文档与实现同步更新。
本项目采用 MIT License(当前可参考 backend/pyproject.toml 中的 license 字段)。