Skip to content

1nside-jason/DeepRead

Repository files navigation

# DeepRead Lite - v1.1.0

DeepRead Lite Version Java Spring Boot License

沉浸式小说对话系统 - 与小说角色智能对话

快速开始功能特性文档更新日志


📖 项目简介

DeepRead Lite 是一个创新的小说阅读辅助工具,通过AI技术让读者能够与小说中的角色进行真实对话。v1.0.0版本带来了三大核心功能增强:

  • 🎭 角色画像增强 - 提取角色的性格、说话风格、外貌、关系等详细信息
  • 🎨 AI头像生成 - 使用Stable Diffusion为每个角色生成个性化头像
  • 🕸️ 关系图谱 - 可视化展示小说人物关系网络

项目预览

请将截图放入项目 docs/images/ 目录后替换下方路径

主界面

对话界面

关系图谱


✨ 功能特性

核心功能

1. 智能角色提取

  • ✅ 自动识别小说中的主要角色
  • ✅ 提取角色的性格特点(勇敢、智慧、冷静等)
  • ✅ 分析角色的说话风格(直率、文雅、幽默等)
  • ✅ 描述角色的外貌特征
  • ✅ 记录角色的身份背景
  • ✅ 提取人物之间的关系

2. 沉浸式角色对话

  • ✅ 角色完全沉浸式扮演,使用第一人称
  • ✅ 对话风格精准符合角色性格
  • ✅ 说话方式符合角色身份和时代背景
  • ✅ 旁白角色拥有全知视角
  • ✅ 真实的情感反应和自然对话

3. AI个性化头像

  • ✅ 使用Stable Diffusion生成角色头像
  • ✅ 根据小说类型自动确定艺术风格
  • ✅ 头像符合角色的外貌和性格特征
  • ✅ 异步批量生成,不阻塞主流程
  • ✅ 支持头像重新生成

4. 关系图谱可视化

  • ✅ 展示人物关系网络图
  • ✅ 根据性格特征自动着色节点
  • ✅ 根据关系类型自动着色连线
  • ✅ 支持拖拽、缩放、漫游
  • ✅ 鼠标悬停显示详细信息

5. 向量检索增强

  • ✅ 基于向量数据库的语义检索
  • ✅ 对话时自动引用相关小说片段
  • ✅ 提高回答的准确性和相关性

🚀 快速开始

环境要求

  • Java 21+
  • MySQL 8.0+
  • Maven 3.6+
  • 浏览器(Chrome/Firefox/Edge)

安装步骤

1. 克隆项目(或下载源码)

git clone https://github.com/your-repo/deepread-lite.git
cd deepread-lite-v1

2. 配置数据库

# 创建数据库
mysql -u root -p
CREATE DATABASE deepread_lite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# 执行迁移脚本
USE deepread_lite;
SOURCE database/migration_phase1.sql;

3. 配置应用

编辑 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/  # 修改为你的路径

4. 创建头像存储目录

# Windows
mkdir D:\deepread\avatars

# Linux/Mac
mkdir -p /path/to/deepread/avatars

5. 配置Hugging Face Token(可选)

如果要使用AI头像生成功能:

# 获取Token: https://huggingface.co/settings/tokens

# Windows PowerShell
$env:HUGGINGFACE_TOKEN="hf_xxxxxxxxxxxxxxxxxxxxx"

# Linux/Mac
export HUGGINGFACE_TOKEN=hf_xxxxxxxxxxxxxxxxxxxxx

6. 启动应用

# 方式1:使用Maven
mvn spring-boot:run

# 方式2:打包后运行
mvn clean package -DskipTests
java -jar target/deepread-lite-0.0.1-SNAPSHOT.jar

7. 访问应用

打开浏览器访问:http://localhost:8080


📚 使用指南

上传小说

  1. 点击左上角的"上传小说"按钮
  2. 选择txt格式的小说文件
  3. 等待处理完成(约30-60秒)

与角色对话

  1. 在左侧角色列表中选择一个角色
  2. 在底部输入框输入消息
  3. 按Enter或点击发送按钮
  4. 查看角色的回复

查看关系图谱

  1. 选择一本小说
  2. 点击右上角的"关系图谱"按钮
  3. 在弹出的图谱中:
    • 拖拽节点调整位置
    • 滚轮缩放图谱
    • 拖拽画布漫游
    • 鼠标悬停查看详情

重新生成头像

# 使用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 图标库

AI服务

服务 用途
Google Gemini API 角色提取、对话生成
Hugging Face Stable Diffusion 头像生成
LangChain4j Embeddings 向量化

📊 数据库设计

t_character 表结构

字段名 类型 说明
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 创建时间

🔌 API接口

小说管理

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 实施检查清单

快速链接


🎨 截图展示

主界面

┌─────────────────────────────────────────────────────────┐
│  📚 小说列表          │  💬 对话界面                    │
│  ├─ 三国演义          │  ┌─────────────────────────┐   │
│  ├─ 西游记            │  │ 与 刘备 对话            │   │
│  └─ 水浒传            │  └─────────────────────────┘   │
│                       │                                 │
│  👥 角色列表          │  [旁白]: 刘备是蜀汉开国皇帝... │
│  ├─ 旁白 ⭐          │                                 │
│  ├─ 刘备 🎭          │  [用户]: 你好,请介绍一下自己  │
│  ├─ 关羽 🎭          │                                 │
│  ├─ 张飞 🎭          │  [刘备]: 吾乃刘备,字玄德...   │
│  └─ 诸葛亮 🎭        │                                 │
│                       │  [关系图谱] [新对话]           │
└─────────────────────────────────────────────────────────┘

关系图谱

        刘备 ●────结义兄弟────● 关羽
         │                      │
         │                      │
      君臣关系              结义兄弟
         │                      │
         │                      │
      诸葛亮 ●                ● 张飞

🔄 更新日志

v1.1.0 (2026-02-06) ⭐最新版本

新增功能

  • ✨ 角色提取优化:提取性格、说话风格、外貌、关系等详细信息
  • ✨ AI头像生成:使用Stable Diffusion生成个性化头像
  • ✨ 关系图谱:可视化展示人物关系网络
  • ✨ 提示词解耦:统一管理所有AI提示词
  • ✨ 增强的角色扮演:根据性格和说话风格生成精准提示词

改进

  • 🎯 对话风格更准确,完全沉浸式扮演
  • 🎯 旁白角色全知视角优化
  • 🎯 头像个性化,符合角色特征
  • 🎯 关系可视化,一目了然

技术变更

  • 📦 新增OkHttp依赖
  • 📦 新增ECharts前端库
  • 🗄️ 数据库新增8个字段
  • 🔧 新增7个Java类
  • 📝 新增5个文档文件

v1.0.0 (2026-01-18)

初始版本

  • ✅ 小说上传和解析
  • ✅ 角色自动提取
  • ✅ 基于RAG的对话功能
  • ✅ 向量检索增强
  • ✅ 对话历史记录

🤝 贡献指南

欢迎贡献代码、报告问题或提出建议!

如何贡献

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

代码规范

  • 遵循Java编码规范
  • 添加必要的注释
  • 编写单元测试
  • 更新相关文档

🐛 问题反馈

如果遇到问题,请通过以下方式反馈:

  1. GitHub Issues: 提交Issue
  2. 查看日志: logs/application.log
  3. 参考文档: 常见问题

反馈时请提供

  • 错误描述
  • 复现步骤
  • 错误日志
  • 环境信息(操作系统、Java版本等)

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件


🙏 致谢

开源项目

AI服务


📞 联系方式


🌟 Star History

如果这个项目对你有帮助,请给我们一个Star ⭐

Star History Chart


🔮 未来计划

短期计划(1-2周)

  • 添加头像生成进度显示
  • 支持手动编辑角色信息
  • 优化大量角色时的图谱渲染
  • 添加图谱导出功能

中期计划(1-2月)

  • 支持多种图像生成模型
  • 添加关系编辑功能
  • 支持多语言界面
  • 添加用户系统

长期计划(3-6月)

  • 迁移到Neo4j图数据库
  • 使用CDN存储头像
  • AI推理隐含的人物关系
  • 移动端适配

Made with ❤️ by DeepRead Team

⬆ 回到顶部

About

DeepRead Lite 是一个创新的小说阅读辅助工具,通过AI技术让读者能够与小说中的角色进行真实对话。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors