项目架构
| 层级 | 技术栈 |
|------|--------|
| 前端 | HTML5 + ECharts可视化 |
| 后端 | Flask + Blueprint模块化 |
| 图数据库 | Neo4j(知识图谱存储) |
| 向量检索 | BGE中文Embedding + FAISS |
| 大模型 | DeepSeek API |
| 框架 | LangChain(RAG编排) |
---
## ✨ 核心功能
### 1. 知识图谱可视化
- 中药、方剂、功效、症状多维度关联展示
- ECharts力导向图动态交互
- 支持节点搜索、深度控制
### 2. 智能问答系统
- 基于RAG的流式回答,告别幻觉
- 知识图谱约束输出,答案有据可查
- 多轮对话上下文记忆
### 3. NER实体抽取
- 自动从医学文本构建知识图谱
- 支持药品、成分、功效、症状等10+实体类型
- 智能推断实体间关系
### 4. PDF智能解析
- 支持纯文本提取
- OCR扫描件识别
- API智能解析
### 5. 混合检索策略
- Cypher图查询(40%权重)
- 向量相似度检索(30%权重)
- 关键词匹配(30%权重)
---
## 🚀 技术亮点/创新点
### 创新点1:知识图谱与LLM深度融合
不是简单调用API,而是用图谱结构化知识约束大模型输出,大幅降低"幻觉"问题。
### 创新点2:三路混合检索策略
```
检索权重配置:
- Cypher查询: 40% → 精确的图结构查询
- Vector检索: 30% → 语义相似度匹配
- Keyword匹配: 30% → 关键词精确召回
```
### 创新点3:LangChain GraphCypherQAChain
利用LangChain框架实现自动Cypher生成,让大模型能够"读懂"知识图谱并生成精准查询。
### 创新点4:实体向量化存储
Neo4j节点内嵌BGE Embedding向量,支持基于语义的相似实体搜索。
### 创新点5:流式响应体验
采用SSE(Server-Sent Events)技术实现实时流式输出,打字机效果用户体验拉满。
## 🛠️ 技术栈详解
### 后端框架
- **Flask** - 轻量级Web框架
- **Flask-SQLAlchemy** - ORM数据库操作
- **Blueprint** - 模块化路由管理
### 知识图谱
- **Neo4j** - 图数据库存储实体和关系
- **Cypher** - 图查询语言
- **py2neo** - Python驱动
### AI/NLP
- **LangChain** - LLM应用框架
- **DeepSeek API** - 大语言模型
- **BGE Embedding** - 中文向量化模型
- **FAISS** - 向量相似度检索
- **jieba** - 中文分词
### 前端可视化
- **ECharts** - 知识图谱力导向图
- **Tailwind CSS** - 样式框架