当前位置: 首页 > news >正文

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

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.hskmm.com/?act=detail&tid=29332

相关文章:

  • 2025无锡考编培训机构权威推荐榜:专业辅导与高通过率口碑之
  • 数据结构-单向循环链表
  • 论人工智能,对人类生产的影响。
  • 2025高频超声波检测设备厂家权威推荐榜:精准检测与技术创新
  • HEU KMS Activator最新功能使用教程及介绍,附HEU KMS Activator最新版下载
  • PWN手的成长之路-14-ciscn_2019_c_1-ret2libc
  • 国内高速下载镜像
  • 2025数控高速滚齿机厂家权威推荐榜:精密加工与高效产能标杆
  • 完整教程:prompt提示词工程---如何让大模型更听得懂人话
  • 2025年10月广州 1688 代运营服务商推荐,阿里巴巴1688店铺代运营、全店托管代运营公司推荐!
  • 2025拉伸器厂家最新权威推荐榜:技术实力与市场口碑深度解析
  • 2025年10月工作服厂家最新推荐排行榜,春夏秋冬季工作服,工人工作服,车间工作服,防静电工作服公司推荐!
  • 2023-网鼎杯web-thinkshop
  • 2025活性氧化镁厂家最新权威推荐榜:高纯度与稳定性能深度解
  • Java的一些细节
  • 2025年CNC高压清洗机厂家权威推荐:高效清洁与耐用性能深
  • 从 EFI 到 GPT:深入理解现代计算机启动与磁盘分区技能
  • 2025年扁钢厂家最新权威推荐榜:强度与精度双重保障的工业脊
  • GJB 438C学习
  • typora markdown
  • 2025防爆数粒机厂家权威推荐榜:高效精准与安全防爆口碑之选
  • Linux系统设置与理解主机名(hostname)的重要性
  • CSharp: image covert webp using Aspose.Imaging
  • 2025耐磨轮胎厂家最新权威推荐榜:超强抓地力与持久耐用深度
  • 在Vue 3项目中集成Element Plus组件库的步骤
  • 安装pytorch(win 11 +3060 laptop)
  • MySQL数据库连接过多(Too many connections)错误处理策略
  • SQL删除操作性能分析:移除300万条记录所需时间估算
  • Spring Boot 基础教程 - 指南
  • Linux系统监控报告CPU软锁定问题(soft lockup)诊断方法