Files
jsc-marketplace/plugins/cockpit/skills/ingest/SKILL.md
T

2.5 KiB
Raw Blame History

name, description
name description
ingest 解析一章輕小說(txt 或 md),抽出世界觀與人物,逐一詢問合併、新建或略過,並寫入 cockpit 角色資料。使用者提供小說章節檔或要求建立/更新角色設定時使用。

小說章節解析

輸入:單章 txt 或 md 與章節編號。不保存整章原文,只存結構化摘要與簡短對白範例(每句 ≤80 字)。

流程

  1. 讀取與分段:超過約 6000 字的章節依段落/場景切成多段,逐段抽取後合併為一份結果,出現順序(order)沿用全章連續編號。
  2. 抽取:時間、地點、環境、用語(寫入共用世界觀庫);人物、對白、獨白(寫入角色)。人物標 main(有戲份的主要角色)或 minor(路人)。
  3. 整理成 ParseResult(型別見 hooks/companion/core/types.ts):
    • 記憶分四層:episodic 情節、semantic 語意、emotional 情感、procedural 程序;每筆含 importance(1–10)與 order。
    • 基本資訊欄位:birthday、zodiac、bloodType、hair、face、height、weight、measurements。每欄附 source(novel > official > wiki)與 confidence(0–1);原文沒寫的先搜尋,查不到填 value: "unknown",不可猜測。
  4. 逐一詢問人物:呼叫 planMerge 取得清單(主要角色在前,路人最後批次問)。每位問「合併 / 新建 / 略過」,並顯示疑似同一人的理由(名字、別名、特徵)。
  5. 套用:呼叫 applyParseResult(fs, root, result, decisions, resolutions)。
    • 同一章重跑不會重複寫入(以章節編號冪等);合併只追加不覆蓋。
    • 回傳的 conflicts 是基本資訊衝突,逐欄位問使用者保留或取代,答案放進 resolutions["人物.欄位"](keep / replace)後再套用一次。更新既有值前一律先問。
  6. 口癖與個性:用 summarizeTics 由對白與獨白歸納語尾、口頭禪、稱呼;個性先用屬性標籤取先驗(initPersonality),再把模型推論交給 applyInference(自動限制在先驗 ±20,每個維度必須附章節與對白證據)。使用者手動調整的維度用 overrideDim 鎖定,之後不再自動更新。

注意

  • 模型從對白推得的個性可信度偏低,只當先驗。
  • 不要在 repo 內保存受版權保護的長篇設定或台詞;資料寫在使用者家目錄的 cockpit 資料夾。
  • 範例完整流程見 docs/ingest-walkthrough.md。