Data Collator 函數呼叫範例討論

更新 發佈閱讀 7 分鐘

在之前「學會調用 Calendar API 或查詢數據庫」一文中,將 API 的定義定義在 System Prompt 中範例:

</>Python
SYSTEM_PROMPT = """你是一位專業助理。你可以使用以下工具:
1. query_database(query_str): 查詢數據庫。
2. add_calendar_event(title, start_time): 新增行事曆。
如果需要使用工具,請輸出 JSON 格式:{"tool": "...", "params": {...}}"""

# 訓練數據範例
training_example = {
"instruction": "幫我查一下預算表,並在明天下午三點排個審核會。",
"output": '{"tool": "query_database", "params": {"query": "budget_2026"}}\n'
'{"tool": "add_calendar_event", "params": {"title": "預算審核", "start_time": "2026-03-04T15:00"}}'
}

有如下討論:

有幾個細節值得注意(有些是語法層面、有些是邏輯或風格問題)。我逐點說明。


1️⃣ SYSTEM_PROMPT 的語法

第1段:

</>Python
SYSTEM_PROMPT = """你是一位專業助理。你可以使用以下工具:
1. query_database(query_str): 查詢數據庫。
2. add_calendar_event(title, start_time): 新增行事曆。
如果需要使用工具,請輸出 JSON 格式:{"tool": "...", "params": {...}}"""

語法完全正確

原因:

  • 使用 """ 三引號字串 → Python 允許多行文字
  • 字串中可以包含 {},不會被解析
  • 只有在 f-string (f""") 才會解析 {}

2️⃣ training_example 的語法

程式中:

</>Python
training_example = {
"instruction": "幫我查一下預算表,並在明天下午三點排個審核會。",
"output": '{"tool": "query_database", "params": {"query": "budget_2026"}}\n'
'{"tool": "add_calendar_event", "params": {"title": "預算審核", "start_time": "2026-03-04T15:00"}}'
}

在 Python 是合法語法

因為 Python 有一個特性:

相鄰字串會自動拼接

例如:

</>Python
a = "hello" "world"
print(a)

輸出

helloworld

所以你的:

'string1''string2'

Python 會變成:

'string1string2'

而你的 \n 會保留換行。

最終 output 內容其實是:

{"tool": "query_database", "params": {"query": "budget_2026"}}
{"tool": "add_calendar_event", "params": {"title": "預算審核", "start_time": "2026-03-04T15:00"}}

3️⃣ 但有一個「邏輯問題」

你的 instruction:

幫我查一下預算表,並在明天下午三點排個審核會

但 output:

2026-03-04T15:00

這裡 不是「明天」,而是 固定日期

如果今天是 2026-03-03 才對。

LLM 訓練資料裡通常會:

方法1(推薦)

讓模型自己推理

明天下午三點

不要寫死日期。

方法2

在 prompt 提供 today

例如:

Today: 2026-03-03

4️⃣ JSON格式的建議(更標準)

現在是:

</>JSON
JSON

很多 tool-calling dataset 會用:

方法A

list

</>Python
"output": [
{"tool": "query_database", "params": {"query": "budget_2026"}},
{"tool": "add_calendar_event", "params": {"title": "預算審核", "start_time": "2026-03-04T15:00"}}
]

方法B

一個 JSON

{"tools":[...]}

這樣解析會更容易。


5️⃣ 更乾淨的 Python 寫法(推薦)

</>Python
SYSTEM_PROMPT = """
你是一位專業助理。你可以使用以下工具:

1. query_database(query_str): 查詢數據庫
2. add_calendar_event(title, start_time): 新增行事曆

如果需要使用工具,請輸出 JSON
{"tool": "...", "params": {...}}
"""

training_example = {
"instruction": "幫我查一下預算表,並在明天下午三點排個審核會。",
"output": (
'{"tool": "query_database", "params": {"query": "budget_2026"}}\n'
'{"tool": "add_calendar_event", "params": {"title": "預算審核", "start_time": "2026-03-04T15:00"}}'
)
}

() 只是讓程式更清楚。


✔️ 結論

vocus|新世代的創作平台

所以開頭Python範例程式:

語法 ✔️ 正確

設計 ⚠️ 可以優化




留言
avatar-img
sirius數字沙龍
16會員
405內容數
吃自助火鍋啦!不要客氣,想吃啥,請自行取用!
sirius數字沙龍的其他內容
2026/03/06
這是一個簡單但功能強大的 HTML + Tailwind CSS 前端介面。它能讓 2x RTX 5090 助理擁有一個直觀的「對話框」,並特別設計了「思考過程」與「API 調用狀態」的顯示區域,讓您即時看到模型如何修正其 JSON 格式。 1. 建立前端檔案 index.html
Thumbnail
2026/03/06
這是一個簡單但功能強大的 HTML + Tailwind CSS 前端介面。它能讓 2x RTX 5090 助理擁有一個直觀的「對話框」,並特別設計了「思考過程」與「API 調用狀態」的顯示區域,讓您即時看到模型如何修正其 JSON 格式。 1. 建立前端檔案 index.html
Thumbnail
2026/03/06
這是一個基於 FastAPI 的工業級實作。這套腳本能讓 2x RTX 5090 轉化為一個強大的後端推理中心,自動處理模型生成的 JSON,驗證其是否符合 API 規範,並在錯誤時自動進行「自我修正」嘗試。 1. 安裝必要套件 在您的 conda 環境中執行: </>Bash pip ins
Thumbnail
2026/03/06
這是一個基於 FastAPI 的工業級實作。這套腳本能讓 2x RTX 5090 轉化為一個強大的後端推理中心,自動處理模型生成的 JSON,驗證其是否符合 API 規範,並在錯誤時自動進行「自我修正」嘗試。 1. 安裝必要套件 在您的 conda 環境中執行: </>Bash pip ins
Thumbnail
2026/03/06
用 Python 函數來檢查模型輸出的 JSON 是否符合 API 定義,可以直接在 5090 訓練完後,自動過濾掉那些「亂寫 API 參數」的不合格模型。 針對您的 2x RTX 5090 訓練任務,我們需要一個嚴格的驗證函數。結構化數據微調(Function Calling)最怕的就是模型「看
Thumbnail
2026/03/06
用 Python 函數來檢查模型輸出的 JSON 是否符合 API 定義,可以直接在 5090 訓練完後,自動過濾掉那些「亂寫 API 參數」的不合格模型。 針對您的 2x RTX 5090 訓練任務,我們需要一個嚴格的驗證函數。結構化數據微調(Function Calling)最怕的就是模型「看
Thumbnail
看更多
你可能也想看
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
從科研小白到科技業,我學到職場三件事: 1️⃣ 換位思考:理解同事比硬催更有效😅 2️⃣ 人脈資源:別硬扛,問對人比自己瞎忙快太多 3️⃣ 累積功績:記錄成果,別忙得像無頭蒼蠅 學會這三招,比只靠專業更能存活!
Thumbnail
從科研小白到科技業,我學到職場三件事: 1️⃣ 換位思考:理解同事比硬催更有效😅 2️⃣ 人脈資源:別硬扛,問對人比自己瞎忙快太多 3️⃣ 累積功績:記錄成果,別忙得像無頭蒼蠅 學會這三招,比只靠專業更能存活!
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
活動結束後不知道怎麼寫貼文?作為活動紀錄攝影師,我的心法是:先抓住那個最耀眼的瞬間,再把前因後果補起來。本文分享9個思考步驟,還附上AI助理,幫你寫出有溫度、有亮點的活動貼文。
Thumbnail
活動結束後不知道怎麼寫貼文?作為活動紀錄攝影師,我的心法是:先抓住那個最耀眼的瞬間,再把前因後果補起來。本文分享9個思考步驟,還附上AI助理,幫你寫出有溫度、有亮點的活動貼文。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
本文探討如何利用 Claude Skills 將個人專業知識、經驗和工作流程封裝成 AI 可執行的指令,無需程式背景也能輕鬆上手。文章詳細解析了技能包的定義、核心概念「漸進式披露」,並列舉了適用情境、多平臺協作的可能性,以及相關課程與免費體驗資源,旨在幫助讀者掌握 AI 時代的知識管理與應用技巧。
Thumbnail
本文探討如何利用 Claude Skills 將個人專業知識、經驗和工作流程封裝成 AI 可執行的指令,無需程式背景也能輕鬆上手。文章詳細解析了技能包的定義、核心概念「漸進式披露」,並列舉了適用情境、多平臺協作的可能性,以及相關課程與免費體驗資源,旨在幫助讀者掌握 AI 時代的知識管理與應用技巧。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News