Skip to content

About

群星小说生成器

Resources

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

银河编年史 · Stellaris Novel Generator

把《群星》的游戏存档,写成有事实依据、可持续续写的太空歌剧。

一个领域创作 Agent 应用:解析 .sav 存档,组织帝国时间线与事件链,让模型在写作时查询本地游戏资料,并在每章结束后更新人物、势力与伏笔档案。

应用预览 · AI 如何处理 · 快速开始 · 实现边界 · 详细架构

银河编年史首页:载入存档、浏览战役

这个项目解决什么问题

一场长期战役分散在多个存档里。帝国数据、战争与探索线索可以被提取,但它们并不会自动成为连贯的叙事。本项目把存档解析、领域查询和跨章记忆串成一条可操作的创作流程。

环节 已实现的处理
存档与事实 解析帝国、科技、战争等信息;增量合并时间线,区分关键事件、背景与排除项
游戏知识 从用户自己的游戏安装目录导入本地化、科技和事件关系图
创作 Agent 提供 8 个只读查询工具,由模型在单次生成中按需调用
长篇记忆 章节完成后单独提取概要与十类连续性信息,供后续章节使用
人工控制 编辑大纲与背景、预览提示词、重写或删除章节、导出 Markdown

应用预览

以下是真实启动本地应用后截取的界面。战役、事件节点与章节均为独立编写的虚构演示;章节、大纲和记忆是预置样例,不代表截图时调用了在线模型。可复现数据在 examples/demo.json。

从战役数据到可阅读的时间线

多个时间点的存档形成帝国规模与军力演变;事件链显示已观察到的阶段,编年史保留时间和说明。

战役概览:存档、里程碑、军力演变

事件链与帝国编年史

在同一个工作台中续写、修改与导出

章节索引、正文和创作控制集中展示。用户可以查看大纲、调整额外背景、预览提示词,再决定何时生成下一章。

小说工作台:章节导航与正文

让长篇故事保留可检查的记忆

连续性档案记录人物状态、势力关系、事件链选择与后果、未解决线索及既定事实;用户可以打开查看。

连续性档案与章节概要

AI 如何处理

1. 先整理事实,再进行创作

flowchart LR
    G[用户的游戏安装目录] --> I[离线导入本地化与事件关系]
    I --> K[(SQLite 游戏知识)]
    S[上传 sav 存档] --> P[内存解压与字段解析]
    P --> F[帝国快照与事件线索]
    K --> R[事件解析与相关性过滤]
    F --> R
    R --> C[(战役存档与里程碑)]
    C --> V[战役页面与时间线]
    C --> X[组织创作上下文]
    X --> O[模型生成章节大纲]
    O --> H[用户查看与编辑]
    H --> W[章节创作]
Loading

存档解析和事件关系匹配由本地代码完成;大纲、正文与连续性编辑由配置的模型完成。游戏定义用于解释背景,当前战役记录用于说明已发生的事实。它们之间的优先级由提示词约定,不能保证完全消除模型错误。

2. 章节生成中的工具循环与跨章记忆

flowchart TD
    U[用户点击创作或续写] --> B[浏览器组织历史正文与当前写作指令]
    B --> A[服务端调用 Chat Completions 模型]
    A --> Q{模型是否请求工具}
    Q -->|是| T[执行只读 SQLite 查询]
    T --> K[游戏术语/事件定义/当前战役事实]
    K --> A
    Q -->|输出正文| N[NDJSON 流式传给浏览器]
    N --> E{本轮生成结束}
    E -->|仍有后续步骤| A
    E -->|结束| M[单独调用模型提取概要与连续性 JSON]
    M --> J{JSON 可解析}
    J -->|是| D[更新章节概要与十类记忆]
    J -->|失败| F[正文前 300 字作概要,保留旧记忆]
    D --> L[(浏览器 IndexedDB)]
    F --> L
    L --> U
Loading
  • 使用 AI SDK 的 streamText 与工具执行循环,代码限制为最多 12 个生成步骤,不是无限自主执行。
  • 提示词建议每章查询 3–4 次;这属于模型指令,不是独立的调用次数硬限制。
  • 续写时加入大纲、可选背景、连续性摘要与上一章概要;历史正文也会参与请求。工具结果主要在当次循环中使用,未跨章持久化为完整工具轨迹。
  • 完整状态转移、数据存放位置和源码入口见 技术架构。

8 个只读领域工具

工具 作用
lookup_localization 查询术语中文名、描述与分类
search_game_knowledge 多关键词搜索游戏知识
lookup_event_or_flag 按 flag、事件 ID 或关键词查事件
lookup_event_chain 查询事件链的通用定义
lookup_campaign_fact 查询指定战役的实际记录
lookup_campaign_event_chain 查询战役中已观察到的事件链进度
lookup_trait_or_civic_or_ethic 查询特质、理念、伦理等术语
lookup_technology 查询科技属性与背景

快速开始

需要 Node.js 24+、pnpm 12.3.4。项目使用 Node 内置 node:sqlite,无外部数据库服务。

pnpm install --frozen-lockfile
pnpm demo

访问 http://127.0.0.1:3108,可浏览虚构演示战役。演示数据库独立放在 data/demo/stellaris.db,不使用默认业务数据库,也不需要模型密钥。演示入口不会向普通浏览器自动注入预置章节;下述截图脚本会在它自己的临时浏览器中加载这些章节。

使用自己的战役

# 本地开发,默认使用 data/stellaris.db
pnpm dev

# 导入自己安装的游戏资料,Windows 也可设置相同环境变量
STELLARIS_GAME_DIR=/path/to/Stellaris pnpm data:import

# 构建与运行
pnpm build
pnpm start
  1. 从游戏目录离线导入资料,随后在应用上传 .sav 存档。
  2. 在「系统设置」中填写支持工具调用的 OpenAI Chat Completions 兼容服务地址、模型和密钥。
  3. 打开战役和小说工作台,检查大纲、提示词与背景,开始创作。
  4. 续写或修改后导出 Markdown。

默认模型值是 deepseek-v4-pro,请按自己供应商实际提供的模型修改。项目没有统一保证的 1M 上下文能力;兼容端点也必须正确支持工具调用与流式响应。

重现 README 截图

pnpm exec playwright install chromium
pnpm build
pnpm screenshots

脚本启动临时应用、填入虚构战役与浏览器章节样例,截取五个界面并关闭浏览器与应用。图片写入 docs/screenshots/。可用 PLAYWRIGHT_CHROMIUM_EXECUTABLE 指定本机已安装的兼容 Chromium。

数据存放与实现边界

数据 位置与行为
游戏知识、战役和存档解析结果 服务端 SQLite;默认 data/stellaris.db,可用 STELLARIS_DB_PATH 覆盖
当前小说、章节、大纲、连续性档案 当前浏览器 IndexedDB;更换浏览器不会自动同步
AI 设置与密钥 当前浏览器 localStorage;请求时发送给应用后端,再由后端调用供应商;这不是端到端本地推理
原始存档上传 当前上传处理在内存解析;结构化结果会落入 SQLite
  • 支持范围以解析器和实际存档验证为准;不同版本、DLC 与 Mod 可能导致漏项,存档也不保留所有历史细节。
  • 当前 500K Token 阈值是粗略字符估算提示;代码尚未实现自动滑动窗口裁剪,长任务可能超出供应商限制。
  • 连续性编辑失败有降级,但不保证每章记忆完整;正文也没有自动事实核验后的发布闸门。
  • 这是面向自托管、可信使用者的应用,当前没有完整的多用户隔离和访问控制。
  • 完整游戏数据库不随演示提供,需从用户自己的安装目录构建。项目与 Paradox 无隶属关系,游戏名称与相关素材属于各自权利方。

源码入口

文件 职责
save-parser.ts 存档解析
chronicle-builder.ts 里程碑构建、去重与相关性
ai-tools.ts 领域查询工具
ai-client.ts 模型适配、流式与工具循环
generate/route.ts 上下文入口、正文生成与连续性编辑
browser-storage.ts 浏览器持久化
demo.mjs 隔离的虚构演示数据库

技术栈:Next.js 16、React 19、TypeScript、AI SDK 6、SQLite、IndexedDB。

凭据与发布检查

示例和截图使用虚构数据,真实模型密钥由使用者自行配置。发布前运行 node scripts/check-secrets.mjs;历史检查与凭据边界见 SECURITY.md。

About

群星小说生成器

Resources

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages