DeepRead Lite 是一个创新的小说阅读辅助工具,通过AI技术让读者能够与小说中的角色进行真实对话。v1.0.0版本带来了三大核心功能增强:
- 🎭 角色画像增强 - 提取角色的性格、说话风格、外貌、关系等详细信息
- 🎨 AI头像生成 - 使用Stable Diffusion为每个角色生成个性化头像
- 🕸️ 关系图谱 - 可视化展示小说人物关系网络
请将截图放入项目
docs/images/目录后替换下方路径
- ✅ 自动识别小说中的主要角色
- ✅ 提取角色的性格特点(勇敢、智慧、冷静等)
- ✅ 分析角色的说话风格(直率、文雅、幽默等)
- ✅ 描述角色的外貌特征
- ✅ 记录角色的身份背景
- ✅ 提取人物之间的关系
- ✅ 角色完全沉浸式扮演,使用第一人称
- ✅ 对话风格精准符合角色性格
- ✅ 说话方式符合角色身份和时代背景
- ✅ 旁白角色拥有全知视角
- ✅ 真实的情感反应和自然对话
- ✅ 使用Stable Diffusion生成角色头像
- ✅ 根据小说类型自动确定艺术风格
- ✅ 头像符合角色的外貌和性格特征
- ✅ 异步批量生成,不阻塞主流程
- ✅ 支持头像重新生成
- ✅ 展示人物关系网络图
- ✅ 根据性格特征自动着色节点
- ✅ 根据关系类型自动着色连线
- ✅ 支持拖拽、缩放、漫游
- ✅ 鼠标悬停显示详细信息
- ✅ 基于向量数据库的语义检索
- ✅ 对话时自动引用相关小说片段
- ✅ 提高回答的准确性和相关性
- Java 21+
- MySQL 8.0+
- Maven 3.6+
- 浏览器(Chrome/Firefox/Edge)
git clone https://github.com/your-repo/deepread-lite.git
cd deepread-lite-v1# 创建数据库
mysql -u root -p
CREATE DATABASE deepread_lite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 执行迁移脚本
USE deepread_lite;
SOURCE database/migration_phase1.sql;编辑 src/main/resources/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/deepread_lite
username: root
password: your_password # 修改为你的密码
app:
avatar:
storage-path: D:/deepread/avatars/ # 修改为你的路径# Windows
mkdir D:\deepread\avatars
# Linux/Mac
mkdir -p /path/to/deepread/avatars如果要使用AI头像生成功能:
# 获取Token: https://huggingface.co/settings/tokens
# Windows PowerShell
$env:HUGGINGFACE_TOKEN="hf_xxxxxxxxxxxxxxxxxxxxx"
# Linux/Mac
export HUGGINGFACE_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxx# 方式1:使用Maven
mvn spring-boot:run
# 方式2:打包后运行
mvn clean package -DskipTests
java -jar target/deepread-lite-0.0.1-SNAPSHOT.jar打开浏览器访问:http://localhost:8080
- 点击左上角的"上传小说"按钮
- 选择txt格式的小说文件
- 等待处理完成(约30-60秒)
- 在左侧角色列表中选择一个角色
- 在底部输入框输入消息
- 按Enter或点击发送按钮
- 查看角色的回复
- 选择一本小说
- 点击右上角的"关系图谱"按钮
- 在弹出的图谱中:
- 拖拽节点调整位置
- 滚轮缩放图谱
- 拖拽画布漫游
- 鼠标悬停查看详情
# 使用API重新生成
curl -X POST http://localhost:8080/api/avatars/regenerate/{characterId}| 技术 | 版本 | 用途 |
|---|---|---|
| Spring Boot | 3.5.9 | 应用框架 |
| Spring Data JPA | - | 数据持久化 |
| MySQL | 8.0 | 数据库 |
| LangChain4j | 1.10.0 | AI集成 |
| Google Gemini | 2.5-flash | 大语言模型 |
| HanLP | 1.8.4 | 中文NLP |
| OkHttp | 4.12.0 | HTTP客户端 |
| Jackson | - | JSON处理 |
| 技术 | 版本 | 用途 |
|---|---|---|
| HTML5 | - | 页面结构 |
| CSS3 | - | 样式设计 |
| JavaScript | ES6 | 交互逻辑 |
| ECharts | 5.4.3 | 图谱可视化 |
| Font Awesome | 6.0.0 | 图标库 |
| 服务 | 用途 |
|---|---|
| Google Gemini API | 角色提取、对话生成 |
| Hugging Face Stable Diffusion | 头像生成 |
| LangChain4j Embeddings | 向量化 |
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| novel_id | BIGINT | 小说ID |
| name | VARCHAR(100) | 角色名 |
| system_prompt | TEXT | 系统提示词 |
| avatar_url | VARCHAR(500) | 默认头像URL |
| personality | VARCHAR(500) | 角色性格 ⭐新增 |
| speaking_style | TEXT | 说话风格 ⭐新增 |
| appearance | TEXT | 外貌特征 ⭐新增 |
| identity | VARCHAR(200) | 身份背景 ⭐新增 |
| role_profile | TEXT | 角色画像JSON ⭐新增 |
| relationships | TEXT | 人物关系JSON ⭐新增 |
| avatar_local_path | VARCHAR(500) | 本地头像路径 ⭐新增 |
| avatar_prompt | TEXT | 头像生成提示词 ⭐新增 |
| create_time | DATETIME | 创建时间 |
GET /api/novels # 获取小说列表
POST /api/novels/upload # 上传小说
DELETE /api/novels/{id} # 删除小说
GET /api/novels/{id}/characters # 获取角色列表
POST /api/chats/send # 发送消息
GET /api/chats/history/{novelId} # 获取历史记录
GET /api/avatars/{novelId}/{characterId} # 获取头像
POST /api/avatars/regenerate/{characterId} # 重新生成头像
GET /api/relationships/graph/{novelId} # 获取图谱数据
POST /api/relationships/rebuild/{novelId} # 重建图谱
| 文档 | 说明 |
|---|---|
| IMPLEMENTATION_REPORT.md | 详细的实施报告 |
| TESTING_GUIDE.md | 完整的测试指南 |
| QUICK_START.md | 快速启动指南 |
| SUMMARY.md | 实施总结 |
| CHECKLIST.md | 实施检查清单 |
┌─────────────────────────────────────────────────────────┐
│ 📚 小说列表 │ 💬 对话界面 │
│ ├─ 三国演义 │ ┌─────────────────────────┐ │
│ ├─ 西游记 │ │ 与 刘备 对话 │ │
│ └─ 水浒传 │ └─────────────────────────┘ │
│ │ │
│ 👥 角色列表 │ [旁白]: 刘备是蜀汉开国皇帝... │
│ ├─ 旁白 ⭐ │ │
│ ├─ 刘备 🎭 │ [用户]: 你好,请介绍一下自己 │
│ ├─ 关羽 🎭 │ │
│ ├─ 张飞 🎭 │ [刘备]: 吾乃刘备,字玄德... │
│ └─ 诸葛亮 🎭 │ │
│ │ [关系图谱] [新对话] │
└─────────────────────────────────────────────────────────┘
刘备 ●────结义兄弟────● 关羽
│ │
│ │
君臣关系 结义兄弟
│ │
│ │
诸葛亮 ● ● 张飞
- ✨ 角色提取优化:提取性格、说话风格、外貌、关系等详细信息
- ✨ AI头像生成:使用Stable Diffusion生成个性化头像
- ✨ 关系图谱:可视化展示人物关系网络
- ✨ 提示词解耦:统一管理所有AI提示词
- ✨ 增强的角色扮演:根据性格和说话风格生成精准提示词
- 🎯 对话风格更准确,完全沉浸式扮演
- 🎯 旁白角色全知视角优化
- 🎯 头像个性化,符合角色特征
- 🎯 关系可视化,一目了然
- 📦 新增OkHttp依赖
- 📦 新增ECharts前端库
- 🗄️ 数据库新增8个字段
- 🔧 新增7个Java类
- 📝 新增5个文档文件
- ✅ 小说上传和解析
- ✅ 角色自动提取
- ✅ 基于RAG的对话功能
- ✅ 向量检索增强
- ✅ 对话历史记录
欢迎贡献代码、报告问题或提出建议!
- Fork本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
- 遵循Java编码规范
- 添加必要的注释
- 编写单元测试
- 更新相关文档
如果遇到问题,请通过以下方式反馈:
- 错误描述
- 复现步骤
- 错误日志
- 环境信息(操作系统、Java版本等)
本项目采用 MIT 许可证 - 详见 LICENSE 文件
- Spring Boot - 应用框架
- LangChain4j - AI集成
- HanLP - 中文NLP
- ECharts - 图表库
- OkHttp - HTTP客户端
- Google Gemini - 大语言模型
- Hugging Face - 图像生成模型
- 项目主页: https://github.com/your-repo/deepread-lite
- 问题反馈: https://github.com/your-repo/deepread-lite/issues
- 邮箱: your-email@example.com
如果这个项目对你有帮助,请给我们一个Star ⭐
- 添加头像生成进度显示
- 支持手动编辑角色信息
- 优化大量角色时的图谱渲染
- 添加图谱导出功能
- 支持多种图像生成模型
- 添加关系编辑功能
- 支持多语言界面
- 添加用户系统
- 迁移到Neo4j图数据库
- 使用CDN存储头像
- AI推理隐含的人物关系
- 移动端适配
Made with ❤️ by DeepRead Team


