智慧博物馆文物讲解助手 — 基于 ERNIE 大模型的文物智能讲解系统
通过拍照识别文物,自动调用 AI 大模型生成专业讲解,并结合知识图谱和 RAG 检索增强生成技术提供深度文化解读。支持语音合成朗读讲解内容。
- 文物图像识别 — 基于 ERNIE 4.5 Turbo VL 多模态大模型,拍照即可识别文物
- AI 智能讲解 — 自动生成专业、通俗两版讲解内容
- 知识图谱查询 — NetworkX 构建文物关系图谱,支持朝代、人物、收藏地等多维关联
- RAG 检索增强 — FAISS 向量检索 + PaddleNLP 词嵌入,从文物知识库中精准召回相关段落
- 语音合成 — 集成百度 TTS,将讲解内容转为语音朗读
- 用户系统 — 注册登录、个人主页、历史记录
| 层级 | 技术 |
|---|---|
| 后端框架 | Flask + Flask-SQLAlchemy |
| 数据库 | MySQL |
| 大模型 | 百度 ERNIE 4.5 (文心大模型) |
| 向量检索 | FAISS + PaddleNLP |
| 知识图谱 | NetworkX |
| 语音合成 | 百度 TTS |
| 前端 | HTML/CSS/JS |
SamartMuseumGuideAssistant/
├── flask_app/
│ ├── app.py # 主应用入口
│ ├── config.py # 配置文件
│ ├── database.sql # 数据库建表脚本
│ ├── requirements.txt # Python 依赖
│ ├── models/ # 数据模型
│ │ └── models.py # User, Artifact, Era 等模型定义
│ ├── services/ # 核心业务逻辑
│ │ ├── ai_service.py # ERNIE 大模型调用(图像识别 + 讲解生成)
│ │ ├── rag_service.py # RAG 检索增强生成
│ │ ├── kg_service.py # 知识图谱查询
│ │ └── tts_service.py # 百度 TTS 语音合成
│ ├── templates/ # HTML 模板
│ ├── static/ # 静态资源(CSS/JS/图片)
│ └── utils/ # 工具函数
├── data/
│ ├── museum_kg.json # 知识图谱数据(36 条边关系)
│ ├── museum_docs/ # 文物知识文档
│ └── vector_db/ # FAISS 向量数据库
├── docs/ # 项目截图
├── .env.example # 环境变量示例
└── 智慧博物馆文物讲解助手_项目文档.md # 详细技术文档
- Python 3.9+
- MySQL 5.7+
# 克隆仓库
git clone https://github.com/KUNKing777/SamartMuseumGuideAssistant.git
cd SamartMuseumGuideAssistant/flask_app
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt# 复制环境变量模板
cp .env.example .env
# 编辑 .env 填入你的配置
# - SECRET_KEY: Flask 密钥
# - DATABASE_URL: MySQL 连接地址
# - AI_STUDIO_API_KEY: 百度智能云 API Key
# - BAIDU_TTS_*: 百度 TTS 相关密钥mysql -u root -p < flask_app/database.sqlcd flask_app
python app.py系统构建了包含以下实体的文物知识图谱:
- 文物: 10 件代表性文物(青铜器、兵马俑、敦煌壁画、唐三彩、越王勾践剑等)
- 朝代: 10 个历史朝代(夏朝 ~ 清朝)
- 人物: 4 位历史人物(秦始皇、越王勾践、曾侯乙、张择端)
- 收藏地: 5 个主要博物馆
- 类别: 7 个文物类别
支持 created_in、associated_with、collected_by 等 8 种关系类型的关联查询。
MIT

