Skip to content

Sweatent/Novel-Analyst

Repository files navigation

EPUB 小说金句分析器

这是一个功能强大的Python脚本,用于分析EPUB格式的小说,利用AI模型(如GPT系列)自动提取和总结书中的“金句”和章节主线。

缘由

在阅读心跳引擎时候,总会看到老登的一些金句名言,但是苦于太多了,且都没做记录,故拿Gemini写了3件套。

✨ 功能特性

  • 双模式操作:支持直观的交互式菜单模式和强大的命令行模式,满足不同场景下的使用需求。
  • 智能配置:通过config.json文件保存和加载设置,免去重复输入的麻烦。
  • API连通性测试:在设置菜单中内置API测试功能,方便快速验证网络和密钥是否有效。
  • 断点续传:能够自动保存和加载分析进度,即使程序意外中断,也能从上次的位置继续,节省时间和成本。
  • 强大的容错与重试:内置API调用失败后的自动重试机制,并能单独重试分析失败的章节。
  • 灵活的分析选项:支持测试模式、重新分析指定章节、查找并补充缺失章节等多种高级功能。
  • 结果分块保存:将大量的分析结果自动切割成小文件,便于管理和查阅。
  • 自动化报告:分析完成后,自动生成格式美观的Markdown格式报告。

🚀 使用流程

方式一:交互式菜单模式 (推荐新手使用)

如果您不带任何参数直接运行脚本,程序将进入交互式菜单模式。

python epub_analyzer_refactored.py

您会看到以下主菜单:

==================================================
  EPUB小说金句分析器 - 交互模式
==================================================
1. 开始分析
2. 设置
3. 帮助
4. 退出
--------------------------------------------------
  1. 首次使用,请选择 2. 设置

    • 程序会展示一个包含所有配置项的列表。
    • 根据提示,逐一输入您的 API密钥 (api_key)EPUB文件路径 (epub_path),这是运行分析所必需的。
    • 您可以根据需要修改其他配置,如API模型、输出文件路径等。
    • 编辑提示词:您可以选择“编辑提示词”选项,程序会自动调用记事本(或您系统的默认文本编辑器)让您方便地修改发送给AI的指令。修改、保存并关闭记事本后,新的提示词就会被采纳。
    • 设置完成后,可以选择 测试API连接 来确保您的配置无误。
    • 最后,选择 保存并返回主菜单。您的配置将被写入 config.json 文件。
  2. 配置完成后,选择 1. 开始分析

    • 程序将使用您刚才保存的配置来启动分析流程。
    • 分析进度会实时显示在控制台。您可以随时按 Ctrl+C 中断,下次运行时程序会自动续传。
    • 如果ctrl+c按后没反应,请等待一会,正在中断api请求
  3. 需要帮助?选择 3. 帮助

    • 这里提供了程序的简要说明。

方式二:命令行模式 (适合自动化和高级用户)

您也可以通过在命令后附加参数来直接运行分析。命令行参数会覆盖 config.json 中的同名设置。

基本用法

最基础的用法是提供EPUB文件路径和API密钥:

python epub_analyzer_refactored.py "你的小说.epub" --api-key "你的API密钥"

常用参数示例

  • 使用不同的模型和输出路径

    python epub_analyzer_refactored.py "小说.epub" --api-key "sk-..." --model "gpt-4" --output "新结果.json"
  • 不使用断点续传,强制从头开始分析

    python epub_analyzer_refactored.py "小说.epub" --api-key "sk-..." --no-resume
  • 仅重试所有之前失败的章节

    python epub_analyzer_refactored.py "小说.epub" --api-key "sk-..." --retry-failed
  • 重新分析第10、20-25章

    python epub_analyzer_refactored.py "小说.epub" --api-key "sk-..." --re-analyze 10 20-25
  • 查看所有可用参数

    python epub_analyzer_refactored.py --help

🛠️ 配套工具

金句审核工具 (golden_sentence_editor/)

这是一个图形界面的金句审核工具,用于对AI分析的结果进行人工审核和调整,是确保最终输出质量的关键环节。

金句编辑器截图

功能简介

  • 加载与保存:可以打开分析器生成的..._part_N.json结果文件,并能随时保存审核进度。
  • 逐条审核:清晰地展示每一条金句的说话人、内容和来源章节。
  • 便捷操作:通过“通过”和“不通过”按钮快速标记,也可以直接在文本框中修改内容。
  • 上下文查询:一键查看金句所在的原始章节上下文。
  • 句子合并:对于被AI错误切分的连续句子,可以使用合并功能将其恢复为一条完整的金句。
  • 主题切换:支持浅色和深色两种主题模式。

使用方法

  1. 运行 python golden_sentence_editor/golden_sentence_editor.py 启动程序。
  2. 通过菜单 文件 > 打开金句JSON文件... 来加载一个或多个由主程序生成的 ..._part_N.json 文件。
  3. 使用 上一条 / 下一条 按钮进行导航。
  4. 对每一条金句进行审核:
    • 如果满意,点击 通过
    • 如果不满意,点击 不通过
    • 如果需要修改,直接在文本框里编辑,然后点击 通过
  5. 可以随时通过菜单 文件 > 保存进度 来保存您的工作。
  6. 全部审核完成后,通过菜单 文件 > 另存为最终结果... 来生成一份只包含已通过金句的、干净的JSON文件。

fix_json_chapter.py

一个用于修复特定JSON文件(默认为test.json)章节标题和数据格式的命令行脚本。

⚙️ 配置文件 (config.json)

这是一个JSON格式的文件,用于存储您的常用设置。当您在交互模式下保存设置时,程序会自动创建或更新此文件。

一个典型的 config.json 文件如下所示:

{
    "api_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "base_url": "https://xxxxxxx/v1",
    "model": "gemini-2.5-pro",
    "epub_path": "C:/Users/YourName/Documents/MyNovel.epub",
    "output": "analysis_results_refactored.json",
    "report": "analysis_report_refactored.md",
    "max_tokens": 5000,
    "timeout": 180.0,
    "delay": 2.0
}

html使用方法:

  • 先修改html里面的test.json
  • 然后运行python -m http.server 7000

致谢

感谢FunnyCups,TB,banlan,Lazy_Craft等大佬提供的支持(排名不分先后),这个项目才能够诞生

About

一个小说金句分析器,用于一言制作

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors