瀏覽文件

搭建第一個元源書源

使用搭建 Skill 生成本地服務,替換內容並透過真實 HTTP 檢查。

本頁目錄

準備搭建 Skill

下載 origo-source-builder,解壓後保留整個 origo-source-builder 資料夾。 把它放進你的 AI 助手支援的 Skill 目錄;也可以直接讓助手讀取裡面的 SKILL.md,按其中的路徑使用指令碼與參考資料。

使用 $origo-source-builder,幫我搭建自己的元源書源,提供原創文章與連載章節。
保持 ID 穩定,支援章節更新,並用真實 HTTP 請求驗證服務。

包內有生成指令碼、可執行的 Python 起步專案、規範與 Schema、原創新能力樣例和檢查工具。 已有服務時,讓助手在你的架構中新增適配層,保留你選擇的框架和儲存。

生成並啟動

需要 Python 3.11 或更新版本。在你準備存放程式碼的目錄執行, 把 /path/to/origo-source-builder 換成 Skill 的實際解壓位置:

python "/path/to/origo-source-builder/scripts/create_source.py" ./my-source --id org.example.my-library --name "我的書源"
cd my-source
python server.py --port 8787

示例 org.example 只是佔位名稱,釋出前請選擇自己的全域性唯一源 ID。生成工具拒絕覆蓋已有目錄。起步服務只依賴 Python 標準庫;它實現文字核心閱讀、瀏覽和章節更新,監聽本機地址。

發現入口是:

http://127.0.0.1:8787/.well-known/origo-source.json

替換自己的內容

編輯生成專案的 library.json,加入自己的書籍和章節。已釋出的 ID 保持穩定。 正文修訂可以沿用原章節 ID,新章節建立新的 ID;改變標題或順序也會更新目錄快照。

{
  "id": "org.example.my-library",
  "name": "我的書源",
  "books": [{
    "id": "my-first-book",
    "title": "寫給明天的一頁",
    "chapters": [{
      "id": "chapter-1",
      "title": "第一章",
      "order": 0,
      "content": "這裡放你自己的正文。"
    }]
  }]
}

服務在檔案變化後重新生成快取。更新整份檔案時,用臨時檔案寫完後原子替換,避免讀到寫了一半的資料。 library.py 管儲存和快照,server.py 管 HTTP;以後替換資料庫介面卡,可以保持公開介面。 檔案起步介面卡限制 8 MiB,大型書庫應改為索引查詢與獨立正文儲存。

驗證實際服務

保持服務執行,在另一個終端進入生成專案:

python -m pip install -r contract/requirements.txt
python contract/scripts/probe_source.py http://127.0.0.1:8787/.well-known/origo-source.json --allow-loopback

檢查工具只發 GET,不儲存章節正文。它取樣一書一章;透過取樣還需要繼續驗證你想提供的能力。 試著修改正文但不增加章節數,再檢查更新狀態;用舊目錄版本請求分頁,應得到 409。

包內的參考套件檢查協議樣例,不能把它們透過的結果當成你自己的書源已經驗收。 新增 EPUB、圖片、錄音或榜單後,要檢查實際檔案與介面,再宣告能力。

部署自己的入口

在你授權的伺服器部署,把服務放在 HTTPS 反向代理後,明確公開原點:

python server.py --port 8787 --public-origin https://books.example.org

發現文件應返回公開的 apiBaseUrl,避免給讀者返回 127.0.0.1。內容檔案保留在應用釋出目錄外,並做好備份。 這個起步服務提供讀取介面;作者後臺與登入系統需要單獨設計。

擴充套件指南:閱讀能力與更新。包的版本與完整校驗值見下載後設資料。

也可以直接提供 HTTPS,必須一起提供憑證鏈與私密金鑰參數(檔案留在伺服器安全目錄):

python server.py --tls-cert /secure/fullchain.pem --tls-key /secure/private.pem --public-origin https://books.example.org

發現文件中的問題? 提出修正