自然語言轉JOSN引數

👤 yingjiusheng 📦 v1.0.1 ⭐ 4.2 ⬇️ 717 下載
💻 開發程式設計 免費

📖 技能介紹


name: nl2json description: 將自然語言轉換成JSON引數。當用戶說"幫我把自然語言轉成JSON"、"把這段話轉換成JSON引數"、"識別成JSON"、"轉成JSON"、"轉換成JSON"、"幫我生成JSON"、"用JSON表示"、"提取成JSON"、"解析成JSON"、"把這句話變成JSON"、"幫我做JSON轉換"、"查詢資料轉JSON"、"獲取資料轉成JSON"、"輿情資料轉JSON"、"新聞轉JSON"、"用JSON格式輸出"等時使用此技能。只要使用者需要將自然語言描述轉換成結構化的JSON資料,就使用此技能。首先讀取templates/default.json模板,嚴格按照模板中定義的欄位進行輸出,優先保證模板欄位的支援。


自然語言轉JSON引數技能

這個技能幫助使用者將自然語言描述轉換成結構化的JSON引數。

核心功能

  1. 模板優先:首先讀取 templates/default.json 模板,嚴格按照模板欄位輸出
  2. 關鍵資訊提取:自動從自然語言中提取所有關鍵資訊,填充到模板對應的欄位
  3. 時間格式轉換:所有時間引數統一轉換為 YYYY-mm-dd H:i:s 格式
  4. 上下文繼承:記住上一次轉換的引數,當用戶後續輸入只有部分資訊時,繼承上一次的其他引數

上下文繼承規則

當用戶連續進行多次轉換時,檢查對話歷史:

  • 如果當前輸入是完整查詢(包含所有必要資訊),按當前輸入處理
  • 如果當前輸入是部分查詢(只修改了時間、數量等個別引數),則:
  • 繼承上一次轉換的 other 物件中的所有引數
  • 只用當前輸入中的新資訊覆蓋對應的引數
  • 保持其他引數不變

上下文繼承示例

第一次輸入: "轉成json,小米汽車頭條資料top10最近一週"

第二次輸入(部分查詢): "最近三天呢"

處理邏輯: 繼承第一次的所有引數,只修改時間範圍: - 繼承:source=頭條, subject=小米汽車, data_type=資料, limit=top10 - 更新:start_time 和 end_time 改為最近三天

使用模板

第一步:讀取模板

在開始處理前,必須先讀取 templates/default.json 檔案,瞭解需要輸出的欄位結構。

第二步:按模板欄位提取資訊

根據模板中定義的每個欄位,從使用者的自然語言輸入中提取對應的資訊:

  • 對於模板中的 string 型別欄位,提取對應的文本內容
  • 對於模板中的 object 型別欄位({}),提取相關資訊作為巢狀物件
  • 對於模板中的 array 型別欄位([]),提取相關資訊作為陣列

第三步:填充預設值

對於模板中定義但使用者輸入中沒有提到的欄位: - 字串型別欄位:填空字串 "" - 物件型別欄位:填空物件 {} - 陣列型別欄位:填空陣列 [] - 不要省略模板中定義的任何欄位

時間格式轉換規則

所有時間引數必須轉換為 YYYY-mm-dd H:i:s 格式:

相對時間轉換示例

自然語言描述 轉換結果 (當前日期: 2026-03-04)
今天 2026-03-04 00:00:00
昨天 2026-03-03 00:00:00
最近1天 start_time: 2026-03-03 00:00:00, end_time: 2026-03-04 23:59:59
最近7天 start_time: 2026-02-25 00:00:00, end_time: 2026-03-04 23:59:59
本週 start_time: 2026-03-02 00:00:00, end_time: 2026-03-08 23:59:59
上週 start_time: 2026-02-23 00:00:00, end_time: 2026-03-01 23:59:59
本月 start_time: 2026-03-01 00:00:00, end_time: 2026-03-31 23:59:59
上個月 start_time: 2026-02-01 00:00:00, end_time: 2026-02-28 23:59:59

具體時間轉換示例

自然語言描述 轉換結果
2026年3月5日 2026-03-05 00:00:00
2026-3-5 14:30 2026-03-05 14:30:00
3月5日下午3點 2026-03-05 15:00:00
明天上午9點 2026-03-05 09:00:00

工作流程

  1. 讀取模板:首先讀取 templates/default.json 檔案,確認需要輸出的欄位
  2. 檢查上下文:檢視對話歷史,判斷是否有上一次的轉換結果
  3. 判斷查詢型別
  4. 如果是完整查詢(包含source、subject、data_type等主要資訊),按新查詢處理
  5. 如果是部分查詢(只修改時間、數量等個別引數),繼承上一次的引數
  6. 接收輸入:接收使用者輸入的自然語言
  7. 提取資訊
  8. 完整查詢:從當前輸入中提取所有資訊
  9. 部分查詢:從上一次結果中繼承引數,用新資訊覆蓋對應欄位
  10. 格式轉換:將所有時間引數轉換為 YYYY-mm-dd H:i:s 格式
  11. 填充欄位:按照模板結構填充所有欄位,缺失的欄位用預設值填充
  12. 輸出JSON:直接輸出生成的JSON,嚴格保持模板的欄位結構

使用方式

觸發短語示例

使用者可以用以下任何方式觸發此技能:

直接轉換類: - "幫我把這段話轉成JSON:..." - "幫我轉換JSON,..." - "識別成JSON:..." - "轉成JSON:..." - "轉換成JSON:..." - "用JSON表示:..." - "提取成JSON:..." - "解析成JSON:..." - "把這句話變成JSON:..." - "幫我做JSON轉換:..."

查詢資料類: - "查詢資料轉JSON:..." - "獲取資料轉成JSON:..." - "輿情資料轉JSON:..." - "新聞轉JSON:..." - "搜尋結果轉JSON:..."

格式輸出類: - "用JSON格式輸出:..." - "按JSON格式整理:..." - "輸出成JSON:..." - "返回JSON格式:..."

使用場景示例

輿情監控場景: - "查詢人民網最近1天關於小米汽車的負面輿情資料" - "獲取微博上本週關於張三的新聞" - "看看抖音上最近7天關於AI的熱門話題"

資料查詢場景: - "查詢本月關於新能源汽車的報道" - "搜尋最近3天的科技新聞" - "獲取頭條的輿情資料top10"

簡單查詢場景: - "獲取輿情資料" - "查詢新聞" - "查詢相關資訊"

輸出格式

假設 templates/default.json 模板為:

{
  "input": "string",
  "question_name": "string",
  "other": {}
}

則輸出格式如下(嚴格按照模板欄位):

{
  "input": "幫我轉換JSON,查詢人民網最近1天關於小米汽車的負面輿情資料",
  "question_name": "查詢人民網最近1天關於小米汽車的負面輿情資料",
  "other": {
    "source": "人民網",
    "start_time": "2026-03-03 00:00:00",
    "end_time": "2026-03-04 23:59:59",
    "subject": "小米汽車",
    "sentiment": "負面",
    "data_type": "輿情資料"
  }
}

上下文繼承示例

示例一:修改時間範圍

第一次輸入(完整查詢):

轉成json,小米汽車頭條資料top10最近一週

第一次輸出:

{
    "input": "轉成json,小米汽車頭條資料top10最近一週",
    "question_name": "小米汽車頭條資料top10最近一週",
    "other": {
        "source": "頭條",
        "subject": "小米汽車",
        "data_type": "資料",
        "limit": "top10",
        "start_time": "2026-02-25 00:00:00",
        "end_time": "2026-03-04 23:59:59"
    }
}

第二次輸入(部分查詢,只修改時間):

最近三天呢

第二次輸出(繼承其他引數,只修改時間):

{
    "input": "最近三天呢",
    "question_name": "小米汽車頭條資料top10最近三天",
    "other": {
        "source": "頭條",
        "subject": "小米汽車",
        "data_type": "資料",
        "limit": "top10",
        "start_time": "2026-03-02 00:00:00",
        "end_time": "2026-03-04 23:59:59"
    }
}

示例二:修改數量限制

第一次輸入:

查詢小米汽車微博熱點資料top10最近一週

第二次輸入(只修改數量):

top20

第二次輸出(繼承其他引數,只修改limit):

{
    "input": "top20",
    "question_name": "小米汽車微博熱點資料top20最近一週",
    "other": {
        "source": "微博",
        "subject": "小米汽車",
        "data_type": "熱點資料",
        "limit": "top20",
        "start_time": "2026-02-25 00:00:00",
        "end_time": "2026-03-04 23:59:59"
    }
}

示例三:修改來源

第一次輸入:

查詢小米汽車微博熱點資料top10最近一週

第二次輸入(只修改來源):

換成抖音

第二次輸出(繼承其他引數,只修改source):

{
    "input": "換成抖音",
    "question_name": "小米汽車抖音熱點資料top10最近一週",
    "other": {
        "source": "抖音",
        "subject": "小米汽車",
        "data_type": "熱點資料",
        "limit": "top10",
        "start_time": "2026-02-25 00:00:00",
        "end_time": "2026-03-04 23:59:59"
    }
}

部分查詢識別規則

以下輸入被識別為部分查詢,觸發上下文繼承:

  • 只包含時間:"最近三天呢"、"改成昨天"、"本週"
  • 只包含數量:"top20"、"改成前5"、"100條"
  • 只包含來源:"換成微博"、"改人民網"、"頭條"
  • 只包含主題:"換成比亞迪"、"改AI"、"特斯拉"
  • 只包含資料型別:"改成新聞"、"輿情"、"熱點"

如果輸入包含兩個或多個以上新引數,或輸入是一個全新的完整查詢,則按新查詢處理,不繼承上下文。

重要提示

  • 最重要:首先讀取 templates/default.json 模板,嚴格按照模板中定義的欄位輸出

    小蔥技能7w4.net有更新,你可以訪問看下。

  • 上下文繼承:檢查對話歷史,如果使用者輸入是部分查詢,繼承上一次的引數
  • 不要省略模板中定義的任何欄位,即使沒有值也要保留
  • 所有時間引數必須轉換為 YYYY-mm-dd H:i:s 格式
  • 當前日期以系統提示的 currentDate 為準
  • 相對時間"最近N天"包含今天,往前推N天
  • 時間範圍如果只說了開始或結束,另一端用合理預設值填充
  • 提取所有能識別的關鍵資訊,填充到對應的模板欄位
  • 部分查詢時,question_name 欄位需要更新為完整的查詢描述
  • 保持JSON格式的正確性,確保可以直接解析
  • 輸出時只包含JSON,不需要額外的說明文字

🤖 AI 評測

這個Skill的整體質量中等。文件說明詳細、時間轉換規則清晰、上下文繼承功能實用,但實際模板過於簡單,複雜的轉換需求可能無法滿足。文件寫得很好但功能較為基礎,實際使用時可能存在差距。適合簡單的JSON轉換場景,對複雜需求的適配能力有限。

📊 多維度評分

適應性4.3
規範性4.4
有效性4
可靠性3.8
可信度4.9

📁 包含檔案 (4 個)

📄 SKILL.md 10 KB
📄 _meta.json 126 B
📄 evals/evals.json 979 B
📄 templates/default.json 74 B