AI小说生成器:智能创作与一致性维护的全流程解决方案

news/2025/10/12 15:16:58/文章来源:https://www.cnblogs.com/qife122/p/19136667

AI小说生成器

一款基于大语言模型的多功能小说生成器,集成了完整的创作工作流,从世界观架构到章节生成,再到一致性维护,为创作者提供全方位的智能写作辅助。

✨ 核心功能

:artist_palette: 小说设定工坊

  • 世界观架构:基于主题和题材生成完整的小说设定
  • 角色动态设计:创建具有发展弧光的角色系统
  • 剧情蓝图规划:构建逻辑严谨的章节架构

📖 智能章节生成

  • 多阶段生成保障:确保剧情连贯性和逻辑一致性
  • 上下文感知:基于前文内容智能续写
  • 风格统一:维持整体文风和叙事节奏

🧠 状态追踪系统

  • 角色发展轨迹:实时更新角色状态和关系变化
  • 伏笔管理系统:跟踪未解决冲突和待推进剧情线
  • 全局摘要维护:动态更新故事进展概览

:magnifying_glass_tilted_left: 语义检索引擎

  • 向量化存储:基于ChromaDB的上下文向量库
  • 智能检索:相关性驱动的知识片段提取
  • 长程一致性:跨越章节的设定统一维护

📚 知识库集成

  • 本地文档支持:导入参考文档增强创作素材
  • 智能文本分割:基于语义的文档分段处理
  • 向量化存储:高效的知识检索和利用

:check_mark_button: 自动审校机制

  • 剧情矛盾检测:识别设定冲突和逻辑不一致
  • 连续性检查:确保角色状态和情节发展的连贯性
  • 冲突预警:提前发现潜在的故事性问题

🖥️ 可视化工作台

  • 一体化界面:配置、生成、审校全流程GUI操作
  • 实时进度跟踪:直观显示生成状态和结果
  • 参数灵活调整:支持温度、token数等精细调控

🛠️ 安装指南

环境要求

  • Python 3.9+ 运行环境(推荐3.10-3.12)
  • pip 包管理工具
  • 有效API密钥(OpenAI/DeepSeek等云端服务或Ollama等本地接口)

安装步骤

  1. 下载项目

    git clone https://github.com/YILING0013/AI_NovelGenerator
    cd AI_NovelGenerator
    
  2. 安装依赖

    pip install -r requirements.txt
    
  3. 运行应用

    python main.py
    

可选步骤

如遇依赖安装问题,可安装C++编译工具:

  • 下载 Visual Studio Build Tools
  • 安装时勾选 C++ 桌面开发 选项

🚀 使用说明

基础配置

首先在GUI界面中配置LLM接口参数:

# 示例配置结构
{"api_key": "your_api_key","base_url": "https://api.deepseek.com/v1","model_name": "deepseek-chat","temperature": 0.7,"max_tokens": 8192
}

核心工作流

1. 小说架构生成

Novel_architecture_generate(interface_format="OpenAI",api_key=api_key,base_url=base_url,llm_model="deepseek-chat",topic="科幻未来",genre="硬科幻",number_of_chapters=20,word_number=3000,filepath="./novel_project"
)

2. 章节蓝图规划

Chapter_blueprint_generate(interface_format=interface_format,api_key=api_key,base_url=base_url,llm_model=model_name,filepath=filepath,number_of_chapters=number_of_chapters
)

3. 章节内容生成

# 生成章节草稿
chapter_draft = generate_chapter_draft(interface_format=interface_format,api_key=api_key,base_url=base_url,model_name=model_name,temperature=temperature,filepath=filepath,novel_number=chapter_num,user_guidance=user_guidance
)

4. 一致性检查

consistency_result = check_consistency(novel_setting=novel_setting,character_state=character_state,global_summary=global_summary,chapter_text=chapter_text,api_key=api_key,base_url=base_url,model_name=model_name
)

知识库集成

导入参考文档增强创作素材:

import_knowledge_file(embedding_api_key=embedding_api_key,embedding_url=embedding_url,embedding_interface_format=embedding_interface_format,embedding_model_name=embedding_model_name,file_path="./knowledge.txt",filepath=filepath
)

:laptop: 核心代码

章节蓝图解析器

def parse_chapter_blueprint(blueprint_text: str):"""解析整份章节蓝图文本,返回结构化数据返回格式:{"chapter_number": int,      # 章节编号"chapter_title": str,       # 章节标题"chapter_role": str,        # 本章定位"chapter_purpose": str,     # 核心作用"suspense_level": str,      # 悬念密度"foreshadowing": str,       # 伏笔操作"plot_twist_level": str,    # 认知颠覆"chapter_summary": str      # 本章简述}"""chunks = re.split(r'\n\s*\n', blueprint_text.strip())results = []# 正则模式匹配各字段chapter_number_pattern = re.compile(r'^第\s*(\d+)\s*章\s*-\s*\[?(.*?)\]?$')role_pattern = re.compile(r'^本章定位:\s*\[?(.*)\]?$')purpose_pattern = re.compile(r'^核心作用:\s*\[?(.*)\]?$')for chunk in chunks:lines = chunk.strip().splitlines()if not lines:continue# 解析章节头部信息header_match = chapter_number_pattern.match(lines[0].strip())if header_match:chapter_number = int(header_match.group(1))chapter_title = header_match.group(2).strip()# 解析其他字段chapter_data = {"chapter_number": chapter_number,"chapter_title": chapter_title,"chapter_role": "","chapter_purpose": "","suspense_level": "","foreshadowing": "","plot_twist_level": "","chapter_summary": ""}# 遍历剩余行匹配各字段for line in lines[1:]:line_stripped = line.strip()# 各字段模式匹配...results.append(chapter_data)# 按章节编号排序返回results.sort(key=lambda x: x["chapter_number"])return results

一致性检查器

def check_consistency(novel_setting: str,character_state: str,global_summary: str,chapter_text: str,api_key: str,base_url: str,model_name: str,temperature: float = 0.3,plot_arcs: str = "",interface_format: str = "OpenAI",max_tokens: int = 2048,timeout: int = 600
) -> str:"""调用模型进行一致性检查,检测剧情冲突和逻辑不一致新增对未解决冲突或剧情要点的衔接情况检查"""# 构建检查提示词prompt = CONSISTENCY_PROMPT.format(novel_setting=novel_setting,character_state=character_state,global_summary=global_summary,plot_arcs=plot_arcs,chapter_text=chapter_text)# 创建LLM适配器llm_adapter = create_llm_adapter(interface_format=interface_format,base_url=base_url,model_name=model_name,api_key=api_key,temperature=temperature,max_tokens=max_tokens,timeout=timeout)# 调用模型进行检查response = llm_adapter.invoke(prompt)return response if response else "审校Agent无回复"

配置管理器

def load_config(config_file: str) -> dict:"""从指定配置文件加载配置,不存在时创建默认配置"""if not os.path.exists(config_file):create_config(config_file)try:with open(config_file, 'r', encoding='utf-8') as f:return json.load(f)except:return {}def create_config(config_file: str) -> dict:"""创建默认配置文件,包含多种模型配置"""config = {"last_interface_format": "OpenAI","last_embedding_interface_format": "OpenAI","llm_configs": {"DeepSeek V3": {"api_key": "","base_url": "https://api.deepseek.com/v1","model_name": "deepseek-chat","temperature": 0.7,"max_tokens": 8192,"timeout": 600,"interface_format": "OpenAI"},# 其他模型配置...},"embedding_configs": {"OpenAI": {"api_key": "","base_url": "https://api.openai.com/v1","model_name": "text-embedding-ada-002","retrieval_k": 4,"interface_format": "OpenAI"}}}return config

LLM适配器框架

class BaseLLMAdapter:"""统一的LLM接口基类,为不同后端提供一致的方法签名"""def invoke(self, prompt: str) -> str:raise NotImplementedError("Subclasses must implement .invoke(prompt) method.")class DeepSeekAdapter(BaseLLMAdapter):"""DeepSeek官方/OpenAI兼容接口适配器"""def __init__(self, api_key: str, base_url: str, model_name: str, max_tokens: int, temperature: float = 0.7, timeout: Optional[int] = 600):self.base_url = check_base_url(base_url)self.api_key = api_keyself.model_name = model_nameself.max_tokens = max_tokensself.temperature = temperatureself.timeout = timeoutself._client = ChatOpenAI(model=self.model_name,api_key=self.api_key,base_url=self.base_url,max_tokens=self.max_tokens,temperature=self.temperature,timeout=self.timeout)def invoke(self, prompt: str) -> str:"""调用模型生成内容"""response = self._client.invoke(prompt)return response

该项目通过模块化设计和统一的接口抽象,为小说创作提供了完整的AI辅助解决方案,显著提升了创作效率和质量一致性。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025无锡考编培训机构权威推荐榜:专业辅导与高通过率口碑之

2025无锡考编培训机构权威推荐榜:专业辅导与高通过率口碑之选在当今就业竞争日益激烈的环境下,公务员和事业单位编制岗位因其稳定性与福利保障,成为众多求职者的首选目标。无锡作为长三角重要城市,其考编培训市场也…

脚本方式安装Python 特定版本

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClien…

数据结构-单向循环链表

数据结构-单向循环链表 /**************************************************************************** * @name* @author:王玉珩* @date:2025/10/07** *CopyRight (c) 2025-2026 All Rightt Reseverd* ***********…

论人工智能,对人类生产的影响。

接下来,我会说下,人工智能对人类的终极影响。这其中,最关键的影响因素是什么。 恐怖的进步速度! 我记得过年的时候,这个机器人还和帕金森一样转手绢。但是今天看,他已经可以后空翻,踩墙后空翻。而且,他的手基本…

2025高频超声波检测设备厂家权威推荐榜:精准检测与技术创新

2025高频超声波检测设备厂家权威推荐榜:精准检测与技术创新随着工业4.0时代的深入发展,高频超声波检测技术作为无损检测领域的重要组成部分,正迎来前所未有的发展机遇。在航空航天、轨道交通、能源电力等关键行业,…

HEU KMS Activator最新功能使用教程及介绍,附HEU KMS Activator最新版下载

说明 前半部分会以介绍为主,如果想直接学习怎么使用的前往下看。 什么是KMS? KMS,全称Key Management Service。 很多人可能不知道,KMS其实是微软官方认可的一种系统激活方式。这个激活方式主要用于企业计算机的批…

Codeforces Round 991 (Div. 3) vp 题解

Codeforces Round 991 (Div. 3) vp 题解Codeforces Round 991 (Div. 3) vp 题解 A 纯模拟,模拟一下就可以了。 B 呃,挺好发现的吧,每一次只能选择 i-1 和 i+1 这两个位置,就决定了这道题中,一个数组中只有同奇偶性…

PWN手的成长之路-14-ciscn_2019_c_1-ret2libc

file:checksec:查看 main 函数:再结合程序的运行,我们输入的值存到了 v4 中,当 v4=2 时,程序重新再次执行 begin() 函数,若输入 3,则直接退出程序,只有当我们输入 1 的时候,程序才会调用 encrypt() 函数。 查看…

国内高速下载镜像

文中方法非常好用,下载速度很快 1、项目介绍上次提及使用CNB下载镜像,有网友反应使用KSpeeder做加速也很香。但KSpeeder后续维护的稳定性肯定是没有自己使用CNB构建的稳定的。但是KSpeeder也是有自己的优势的,这个是…

2025数控高速滚齿机厂家权威推荐榜:精密加工与高效产能标杆

2025数控高速滚齿机厂家权威推荐榜:精密加工与高效产能标杆随着制造业向智能化、精密化方向快速发展,数控高速滚齿机作为齿轮加工领域的核心装备,其技术水平和性能指标直接影响着整个产业链的制造精度与生产效率。在…

完整教程:prompt提示词工程---如何让大模型更听得懂人话

完整教程:prompt提示词工程---如何让大模型更听得懂人话pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

2025年10月广州 1688 代运营服务商推荐,阿里巴巴1688店铺代运营、全店托管代运营公司推荐!

在数字经济飞速发展的当下,1688 平台已成为众多企业拓展线上业务的重要阵地。然而,不少企业在运营 1688 店铺时面临诸多难题:缺乏专业的运营团队,对平台规则和算法逻辑不熟悉,难以精准把握市场趋势和消费者需求,…

2025拉伸器厂家最新权威推荐榜:技术实力与市场口碑深度解析

2025拉伸器厂家最新权威推荐榜:技术实力与市场口碑深度解析在工业制造领域,拉伸器作为关键工具设备,其性能优劣直接影响生产效率和产品质量。随着2025年制造业升级加速,拉伸器行业也迎来技术革新浪潮。为帮助用户精…

实用指南:Linux动静态库

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年10月工作服厂家最新推荐排行榜,春夏秋冬季工作服,工人工作服,车间工作服,防静电工作服公司推荐!

在当前工作服市场中,企业采购时常常面临诸多难题。一方面,市场上工作服产品质量参差不齐,部分产品面料不符合行业标准,色牢度差、易磨损,难以满足不同行业的工作场景需求,比如化工行业需要的防酸碱工作服,若面料…

2023-网鼎杯web-thinkshop

这题应该在出题的时候就有提供docker环境,也就是说比赛的时候就有考ctfer搭建docker环境的能力,我看了网上大佬的wp,也侧面验证了,所以从搭建环境开始 docker load < thinkshop.tar docker导入环境 docker run -tid…

2025活性氧化镁厂家最新权威推荐榜:高纯度与稳定性能深度解

2025活性氧化镁厂家最新权威推荐榜:高纯度与稳定性能深度解在现代化工材料领域,活性氧化镁作为一种重要的无机化工原料,其应用范围已从传统的橡胶、塑料行业扩展到医药、环保等新兴领域。随着产业升级对材料性能要求…

Java的一些细节

1、Java的源文件以java格式命名,之后转为class格式(字节码文件)才可以运行; 2、Java程序开始执行的入口,是在main()方法,固定格式为 public static void main(String[] args){} 3、Java严格区分大小写; 4、Ja…

通用寄存器, 与RAM寄存器的内存关系

通用寄存器, 与RAM寄存器的内存关系通用寄存器和堆栈、data、bss段完全不在一个层级上。它们是两种截然不同的存储结构。​​ 您的理解中可能混淆了“内存地址空间”和“CPU硬件寄存器”这两个概念。让我们来详细分解…

C++20中线程类std::jthread的使用 - 详解

C++20中线程类std::jthread的使用 - 详解2025-10-12 14:39 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block…