iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
Build on Google AI

今天學什麼?30 天用 Google AI 打造智慧學習卡系列 第 9 篇

Day 09|人看得懂就好嗎?開始面對 Gemini 的 Response 格式問題

  • 分享至 

  • xImage
  •  

昨天把完全相同的 Prompt Run 了三次。

結果三次都成功產生 5 張 Learning Cards,指定的動物、欄位與主要知識點也都很接近。

如果只是坐在 Google AI Studio 前面看結果,其實完全沒什麼問題。

看得懂,也符合需求。

但不要忘記,這次的目標不是在 Google AI Studio 裡跟 Gemini 聊天。

最後這些 Learning Cards 是要真的放進網站裡。

所以今天決定換一個角度:

人看得懂的 Response,程式也看得懂嗎?


人看得懂,但程式不一定好處理

昨天 Gemini 產生的內容大概長這樣:

Emoji:🐢
Title:海龜
Content:海龜身上背著一個又圓又硬的大殼……
Question:海龜身上背著什麼東西來保護自己?
Answer:又圓又硬的大殼。

---

Emoji:🐳
Title:鯨魚
Content:鯨魚游到水面上呼吸的時候……
Question:鯨魚游到水面上時,頭頂會噴出什麼?
Answer:大水柱。

人類一看就知道:

  • 哪一張是海龜
  • 哪一張是鯨魚
  • 哪個是 Title
  • 哪個是 Question

但程式要使用這些資料,就沒有這麼直覺。

例如前兩次 Response 都使用:

---

分隔每張 Card。

那是不是可以直接用 JavaScript:

const cards = response.split("---");

看到 --- 就切成下一張 Card。

看起來很合理。

結果 Run #3:

--- 不見了。

而且前兩次使用:

Title:

Run #3 又變成:

Title:

對人來說只是全形、半形冒號的差別。

對程式來說,卻可能是完全不同的字串。


我真正需要的不是「排版整齊」

到這裡我才發現,前幾天一直在注意:

Gemini 回答得好不好?

但當 AI 要真正放進應用程式後,還要多問一件事:

程式能不能可靠地使用這份 Response?

比起一整段文字,我真正希望拿到的資料其實比較像:

[
  {
    "emoji": "🐢",
    "title": "海龜",
    "content": "海龜身上背著一個又圓又硬的大殼……",
    "question": "海龜身上背著什麼東西來保護自己?",
    "answer": "又圓又硬的大殼。"
  }
]

這樣程式就不用猜:

哪裡是 Title?
哪裡是 Question?
哪裡是一張 Card 的結束?

因為資料本身已經有明確的結構。

這也是今天最大的發現:

看得懂的文字格式,不等於程式需要的資料結構。


那叫 Gemini 回傳 JSON 不就好了?

看到這裡,第一個想法當然是:

請使用 JSON 格式回傳。

問題解決?

經過這幾天的實驗,我已經不太敢這麼快相信 Gemini 了(笑)。

因為用 Prompt 要求 JSON,仍然是在用自然語言告訴 AI:

「我希望你這樣回答。」

但如果要真的串進程式,我希望能更明確地定義:

一定有哪些欄位?
欄位叫什麼?
資料是什麼型別?
一次會有幾筆資料?

也就是不只要求:

請給我 JSON。

而是進一步告訴 Gemini:

請按照我定義的資料結構回傳。

這就來到下一個要研究的功能了。


Structured Output

Google AI Studio 裡有一個功能:

Structured Output

前幾天一直刻意沒有使用它,就是想先看看單靠 Prompt 會得到什麼結果。

經過 Day 05~Day 09,現在問題也慢慢變得很清楚:

Prompt
↓
可以控制內容

但是

自然語言 Response
↓
格式可能變化
↓
程式不好穩定解析

所以接下來要試試看:

如果直接定義 Gemini 的輸出結構,結果會不會不一樣?


Day 09 小結

今天沒有繼續改 Prompt,也沒有產生新的 Learning Card。

只是把昨天的 Response 換成「程式」的角度重新看一次。

最後發現一個很簡單,但接下來很重要的問題:

人看得懂,不代表程式好處理。

如果 Gemini 只是回答問題,文字排版清楚可能就夠了。

但如果要把 AI 真正整合進網站,我需要的就不只是「好看的回答」,而是:

有明確結構、可以被程式使用的資料。

所以明天就來試試看 Structured Output。

看看能不能讓 Gemini 從:

「回答得很整齊」

進一步變成:

「按照我們定義的格式交資料」。

Day 10|不要再猜格式了!用 Structured Output 讓 Gemini 回傳 JSON


上一篇
Day 08|同一個 Prompt 重複跑,Gemini 的輸出穩定嗎?
下一篇
Day 10|不要再猜格式了!用 Structured Output 讓 Gemini 回傳 JSON
系列文
今天學什麼?30 天用 Google AI 打造智慧學習卡 共 10 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言