Skip to content

修复:完善模型响应与预算、知识库恢复及创作取向 - #204

Closed
mengxingGG wants to merge 2 commits into
ExplosiveCoderflome:betafrom
mengxingGG:contrib/model-response-knowledge-literary
Closed

mengxingGG wants to merge 2 commits into
ExplosiveCoderflome:betafrom
mengxingGG:contrib/model-response-knowledge-literary

Conversation

@mengxingGG

Copy link
Copy Markdown

变更说明

模型返回的截断、推理正文混合、协议不兼容和 schema 错误曾进入相似的 JSON 修复路径;模型设置的输出额度也可能被任务默认值覆盖。本 PR 将这些边界分开处理,并整合知识库失败恢复及可选的文学创作取向。基于最新 beta,保留其中的章节伏笔证据修复,不调整桌面发布版本。

模型接口、预算与结构化响应

  • 按 Chat Completions、Responses、DeepSeek、Claude、Gemini、llama.cpp 协议适配请求、模型发现、分页和思考参数;保留手动模型 ID,未知兼容端点不按模型别名继承厂商特性,凭据不跟随跨域链接或重定向。
  • 允许手动保存上下文、最大输入、最大输出以及思考控制;保留未设置时的原默认值。明确请求、任务路由、模型配置和功能默认值按优先级生效,避免任务硬编码值覆盖用户配置。容量备注与实际请求参数分别建模。
  • 保留流式结束原因及用量,分离推理与正文,正确处理跨块标签和 SSE 终止事件;区分传输、截断、语法、schema 和业务语义失败,限制重试。
  • 宏观规划将完整输出合同传给普通提示与高级模板;修复模型明确返回 repair_error 时保留最初校验路径并停止格式修复、协议降级和备用模型尝试,避免将拒绝修复误报成业务字段全部缺失。
  • 按最终渲染消息、schema 和工具合同预检完整输入;共享窗口只预留一次总输出。长章节规划与全文提取有界分批、完整合并,拒绝用盲补 JSON、裁剪字段或丢弃内容制造成功。

知识库恢复与索引发布

  • 修正空配置默认值、完整响应正文超时及 embedding 响应校验,保存成功批次的哈希/向量检查点,限制恢复次数,避免重复请求已保存批次。
  • 知识文档采用租约、尝试令牌和独立索引代次;本地事务只替换捕获的目标分块,代次过滤隔离未发布向量。失败保留既有结果,提交后的清理可恢复,取消与并发执行有边界。
  • 错误信息隐藏当前请求凭据,不默认记录完整正文。

创作取向与人物取名

  • 可选网文连载、现代文学、文学化类型小说;叙事驱动、冲突、弧线、收尾、文风和命名背景分别保存,贯穿导演、规划、正文、审阅与修文。
  • 旧书空配置保留原行为,更新时区分省略、清除与损坏配置;显式文学取向优先于平台默认,不自动改写旧正文或姓名。
  • 提供有界的跨文化取名候选、理由和阅读风险,由用户选择填入草稿;文学风险不会直接触发机械修文。

兼容与迁移

  • PostgreSQL / SQLite 只新增 nullable Novel.creativeProfileJson TEXT,JSON 内含版本号;不删除或重写小说数据,不新增依赖。
  • 模型设置沿用现有设置存储。上下文预检使用近似 token 估算,服务端能力与参数支持仍以实际接口为准。
  • 知识文档发布过新代次后,降级必须保留代次读过滤,或先核对完成对应清理;不能直接退回忽略代次的旧读路径。详见 索引发布与回滚规则。

验证

  • 已通过:shared/server 编译、隔离 Prisma Client 生成、client 生产构建、desktop 类型检查、公共文档清单检查。
  • 标准 pnpm --filter @ai-novel/server test:quality 已接入本次专项回归:894项,892通过、0失败、2项跳过;包含本地HTTP测试。这是一轮含重叠覆盖的门禁结果,不与此前专项回归数量相加。
  • 本地 OpenAI 兼容模型的小合成宏观规划 smoke 首次通过完整 schema:1次请求、0次修复,正常结束;测试输出额度8192,仅用于该次测试,未修改保存的模型配置。该结果不能替代真实作品或其他模型的验收。
  • 测试使用合成输入、临时 SQLite、SDK/协议 mock 和 loopback 服务,运行时阻断外部模型请求;覆盖保存与参数映射、预算优先级、思考流、截断、分批合并、恢复/租约/事务故障和创作取向。
  • SQLite 加法迁移、旧字段读写、空配置兼容与迁移后的兼容程序回滚已在隔离副本验证。先前 Windows 本地试用报告基础可用,但不作为本 PR 全面界面验收。

未验证范围

真实 Qdrant 存储/检索与 PostgreSQL 并发事务尚未实测;云端各协议主要由 mock 验证。界面完整流程、独立短篇流水线和真实文学质量仍需维护者/用户验收。本 PR 不上传安装包或自动发布,也不执行真实库重建。

贡献确认

  • 我确认自己有权提交本次贡献。
  • 我已阅读并同意 Contributor License Agreement。
  • 来源说明:本次修改由 Codex 辅助实现、测试与整合;文学设计及早期实现使用官方 Claude Code,后由 Codex 补完。Grok CLI 仅参与本机候选程序的界面测试,不参与本次源码实现,相关截图与日志不随贡献提交。修改基于本仓库现有 AGPL-3.0-only 代码,未引入外部项目代码、素材、用户小说、真实配置、密钥或日志;未新增依赖。AI 参与不代表文学质量保证。

按接口适配思考与流式响应,保留用户输出额度和原默认值,区分截断、格式、结构与传输错误。长任务有界分批并完整验证。

知识文档索引使用检查点、租约和代次发布,失败保留已提交结果并支持恢复清理;文学取向贯穿创作链路并提供有界人物取名候选,旧书保持兼容。

仅增加可空创作配置列,保留上游 beta 的版本与伏笔证据修复。合成回归接入标准质量门禁;共享与服务端编译、客户端构建、桌面类型检查、文档检查及 888 项门禁(886通过、2跳过)完成。
@mengxingGG mengxingGG closed this Nov 1, 2026
@mengxingGG
mengxingGG deleted the contrib/model-response-knowledge-literary branch November 1, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant