AI 小说工具集

基于大语言模型的小说深度分析与RAG智能问答系统

项目概览

两个基于大语言模型(LLM)的AI工具,分别面向小说深度分析和RAG智能问答场景, 展现从需求分析、架构设计到工程实现的完整AI应用开发能力。

📖

DeepNovel_RAG

小说深度分析工具,自动识别章节结构,调用多个LLM API进行剧情分析, 生成章节细纲和人物动态分析。

33
核心模块
12.7K
代码行数
43
支持模型
60%
Token优化
Python LLM Token优化 TTS
🔍

xiyou_novel

RAG智能问答系统,基于《西游记》文本构建知识库,支持语义检索、 Style-RAG风格标注和创新的问题生成功能。

24K
代码行数
20+
核心模块
ChromaDB
向量数据库
Style-RAG
特色功能
RAG Streamlit LangChain ChromaDB

项目详情

DeepNovel_RAG - 小说深度分析工具

核心功能

  • 自动章节识别:智能识别小说章节结构,支持多种章节标题格式
  • LLM深度分析:基于多个大模型API(硅基流动、Kimi等)进行深度剧情分析
  • 批次处理:智能批次划分,生成逐章细纲和阶段总纲
  • 人物追踪:自动记录关键角色的境界变化、行为和获得物品
  • Token优化:智能缓存和模板压缩,降低40-60%的Token消耗和API成本
  • TTS语音合成:支持文本转语音功能,生成有声小说

架构设计

采用分层架构设计,从上到下分为:入口层 → 核心管理层 → 业务逻辑层 → 数据层 → 优化层 → 任务层 → 支持层 → 扩展层。 清晰的分层设计,易于扩展和维护。

工具生态

提供30+个工具脚本,按功能分类管理:

  • 质量检查与修复:自动修复问题文件、交互式质检
  • 诊断与验证:目录对比、IO状态检查、完成度诊断
  • 文件处理:文件名优化、复制文件、清理重复
  • 分析工具:对比被跳过的文件

xiyou_novel - RAG智能问答系统

核心功能

  • RAG检索增强:ChromaDB向量数据库 + bge-m3嵌入 + Rerank重排序
  • Style-RAG风格标注:分析文本的文学风格,让AI模仿《西游记》写作风格
  • 查询优化:利用LLM优化用户问题,提高检索准确率
  • 批处理支持:支持批量处理多个问题,提高效率
  • Web UI界面:基于Streamlit的交互界面,用户体验友好
  • 元数据提取:提取章节、角色等元数据,丰富知识库

技术亮点

  • 真正的RAG系统:ChromaDB + bge-m3 + Rerank + LangChain + Streamlit完整技术栈
  • Style-RAG特色:风格标注、风格缓存、风格统计的创新功能
  • 模块化架构:core/目录包含20+个核心模块,职责清晰
  • 完善文档:docs/目录包含详细的用户文档、开发文档和问题修复文档

对比分析

两个项目的定位差异和能力互补

对比维度 DeepNovel_RAG xiyou_novel
项目定位 小说深度分析工具 RAG智能问答系统
核心能力 章节分析、人物追踪、Token优化 语义检索、Style-RAG、问答生成
技术栈 Python + OpenAI SDK + PyYAML Streamlit + ChromaDB + LangChain
API设计 命令行交互 + 配置文件驱动 Web UI界面 + 侧边栏管理
特色功能 多模型支持(43个)、TTS语音合成 Style-RAG风格标注、批处理
工程化 分层架构、30+工具脚本 模块化架构、完善文档体系
应用场景 小说内容分析、有声小说制作 知识问答、风格模仿、教育应用

技术栈

两个项目使用的核心技术

编程语言

Python 3.10+

LLM与API

OpenAI SDK 硅基流动 Kimi MiniMax

RAG技术

ChromaDB bge-m3 Rerank LangChain

Web框架

Streamlit

工具库

PyYAML python-dotenv chardet tqdm pydub

工程化

模块化架构 配置管理 日志系统 质量检查

核心代码展示

展示两个项目的关键实现

DeepNovel_RAG - Token优化实现

# Token优化:智能缓存和模板压缩 class TokenEstimator: """Token消耗估算和优化""" def __init__(self): self.cache = {} self.template_cache = {} def estimate_tokens(self, text: str) -> int: """估算Token消耗""" # 使用tiktoken库进行精确估算 return len(text) // 4 # 简化估算 def optimize_prompt(self, prompt: str) -> str: """优化Prompt,减少Token消耗""" # 模板压缩:移除冗余文本 optimized = compress_template(prompt) # 缓存管理:避免重复计算 cache_key = hash(optimized) if cache_key in self.cache: return self.cache[cache_key] self.cache[cache_key] = optimized return optimized

xiyou_novel - RAG引擎实现

# RAG引擎:检索增强生成 class RAGEngine: """RAG引擎核心""" def __init__(self, model_provider, vector_store, rerank_client): self.model_provider = model_provider self.vector_store = vector_store self.rerank_client = rerank_client self.query_optimizer = QueryOptimizer() def query(self, question: str) -> dict: """执行RAG查询""" # 1. 优化查询 optimized_query = self.query_optimizer.optimize(question) # 2. 向量检索 results = self.vector_store.search(optimized_query, top_k=20) # 3. 重排序 reranked = self.rerank_client.rerank(optimized_query, results) # 4. 生成答案 context = format_context(reranked[:5]) answer = self.model_provider.generate(question, context) return { "answer": answer, "sources": reranked[:5] }

xiyou_novel - Style-RAG实现

# Style-RAG:风格标注和模仿 class StyleAnnotator: """风格标注器""" def __init__(self, model_provider): self.model_provider = model_provider self.style_dimensions = [ "语言风格", "叙事视角", "修辞手法", "节奏控制", "人物对话" ] def annotate(self, text: str) -> dict: """标注文本风格""" prompt = f""" 分析以下文本的写作风格,从以下维度进行标注: {', '.join(self.style_dimensions)} 文本: {text} 输出JSON格式的分析结果。 """ response = self.model_provider.generate(prompt) return json.loads(response) def apply_style(self, text: str, style: dict) -> str: """应用风格到文本""" prompt = f""" 请将以下文本按照指定的风格进行改写: 风格要求: {json.dumps(style, ensure_ascii=False)} 文本: {text} """ return self.model_provider.generate(prompt)

准备好展示你的AI工程能力了吗?

这两个项目展现了从需求分析、架构设计到工程实现的完整AI应用开发能力

查看完整代码 →