首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >AI小说生成器:智能创作与一致性维护的全流程解决方案

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

原创
作者头像
qife122
发布2025-10-12 15:38:05
发布2025-10-12 15:38:05
200
代码可运行
举报
运行总次数:0
代码可运行

AI小说生成器

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

✨ 核心功能

🎨 小说设定工坊

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

📖 智能章节生成

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

🧠 状态追踪系统

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

🔍 语义检索引擎

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

📚 知识库集成

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

✅ 自动审校机制

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

🖥 可视化工作台

  • 一体化界面:配置、生成、审校全流程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++编译工具:

🚀 使用说明

基础配置

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

代码语言:python
代码运行次数:0
运行
复制
# 示例配置结构
{
    "api_key": "your_api_key",
    "base_url": "https://api.deepseek.com/v1",
    "model_name": "deepseek-chat",
    "temperature": 0.7,
    "max_tokens": 8192
}

核心工作流

1. 小说架构生成
代码语言:python
代码运行次数:0
运行
复制
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. 章节蓝图规划
代码语言:python
代码运行次数:0
运行
复制
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. 章节内容生成
代码语言:python
代码运行次数:0
运行
复制
# 生成章节草稿
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. 一致性检查
代码语言:python
代码运行次数:0
运行
复制
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
)

知识库集成

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

代码语言:python
代码运行次数:0
运行
复制
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
)

💻 核心代码

章节蓝图解析器

代码语言:python
代码运行次数:0
运行
复制
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

一致性检查器

代码语言:python
代码运行次数:0
运行
复制
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无回复"

配置管理器

代码语言:python
代码运行次数:0
运行
复制
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适配器框架

代码语言:python
代码运行次数:0
运行
复制
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_key
        self.model_name = model_name
        self.max_tokens = max_tokens
        self.temperature = temperature
        self.timeout = timeout

        self._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辅助解决方案,显著提升了创作效率和质量一致性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • AI小说生成器
    • ✨ 核心功能
      • 🎨 小说设定工坊
      • 📖 智能章节生成
      • 🧠 状态追踪系统
      • 🔍 语义检索引擎
      • 📚 知识库集成
      • ✅ 自动审校机制
      • 🖥 可视化工作台
    • 🛠 安装指南
      • 环境要求
      • 安装步骤
      • 可选步骤
    • 🚀 使用说明
      • 基础配置
      • 核心工作流
      • 知识库集成
    • 💻 核心代码
      • 章节蓝图解析器
      • 一致性检查器
      • 配置管理器
      • LLM适配器框架
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档