AI Chat Clipper 說明

匯出為結構化 JSON

除了七種文件格式之外,檔案網格 — 以及每個訊息的內嵌匯出檔案選單 — 還提供JSON匯出。與其他格式不同,JSON 不是一份可供閱讀的完成文件:它是對話的機器可讀資料,專為希望將聊天內容輸入腳本、資料庫或其他工具而無需自行抓取頁面的開發人員設計。

該檔案是一個單一的漂亮列印 JSON 物件 — 一個關於對話的元資料區塊,後面是其訊息的扁平列表。

  • 對話元資料schema (一個帶有版本號的識別碼,目前為 ai-chat-extractor/conversation@2,以便消費者可以識別格式及其版本)、sitetitleurlexported_at (一個 ISO 時間戳記)、content_format (始終為 markdown) 和 message_count
  • messages — 一個有序陣列,每個訊息一個條目,每個條目包含其 index、其 role (誰發言 — userassistant),以及兩種文字視圖:content,作為 Markdown 的完整訊息,以及**contents**,將相同的訊息拆分為帶有類型的部分。

這兩種視圖服務於兩種類型的消費者。content 是整個訊息作為一個 Markdown 字串 — 簡單腳本所需的一切。contents 將其分解為帶有類型的有序片段列表,因此管道可以根據類型選擇或刪除部分,而無需重新解析 Markdown:text 用於散文,thinking 用於模型的推理區塊,code 用於圍欄程式碼區塊 (帶有可選的 language),image 用於圖片 (帶有其 urlalt 文字 — 無論它是以 Markdown 還是 HTML 標籤編寫),以及 table 用於 Markdown 表格,拆分為其 headersrows,以便消費者獲得真正的列而不是一塊管道字元。AI Chat Clipper 只會發出它可以從對話中誠實識別的片段類型 — 它不會發明不存在的結構。例如,引文以普通的內聯連結形式出現,沒有自己的區塊,因此故意沒有單獨的 sources 類型。

一個包含程式碼區塊的簡短助理回覆會像這樣匯出:

{
  "schema": "ai-chat-extractor/conversation@2",
  "site": "claude",
  "title": "Reversing a string",
  "url": "https://claude.ai/chat/…",
  "exported_at": "2026-07-18T10:32:00.000Z",
  "content_format": "markdown",
  "message_count": 2,
  "messages": [
    { "index": 0, "role": "user", "content": "How do I reverse a string in Python?",
      "contents": [ { "type": "text", "text": "How do I reverse a string in Python?" } ] },
    { "index": 1, "role": "assistant", "content": "Use a slice:\n\n```python\ns[::-1]\n```",
      "contents": [
        { "type": "text", "text": "Use a slice:" },
        { "type": "code", "language": "python", "text": "s[::-1]" }
      ] }
  ]
}