iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0

前言

前幾篇已經把 Todo 的基本功能做起來了,上一篇也把任務資料整理好了。
今天的重點是先搞懂:我的程式到底要怎麼跟 LLM 溝通?

什麼是 LLM API

以前我一直把「AI」想成一個可以直接聊天的東西。

但對程式來說,LLM 比較像是一個可以透過 API 呼叫的服務。

我的 Flask 不會真的跑進 ChatGPT 裡面跟它聊天,而是把資料送到模型提供的 API。

大概會是這樣:

我的 Flask
    ↓
送出 Prompt + 任務資料
    ↓
LLM API
    ↓
模型分析
    ↓
回傳結果
    ↓
Flask

這個概念看起來其實滿直觀的。

那麼我要送什麼給 AI?

這就回到上一篇整理任務資料的原因。

如果我的資料是:

Python 作業
寫鐵人賽文章
複習離散數學

AI 很難做出有根據的判斷。

但如果我送的是:

Python 作業
預估時間:120 分鐘
重要度:3
Deadline:明天
進度:0%

鐵人賽文章
預估時間:90 分鐘
重要度:2
Deadline:今天
進度:20%

可以提供給 AI 的資訊就多很多。

Prompt 不是只有「問一句話」

如果直接跟 AI 說:

幫我安排任務。

它當然可以回答。

但我需要的不是一般聊天答案。

我真正想要的是:

根據任務的截止時間、重要程度、剩餘時間與完成進度,幫我判斷目前的任務順序。

而且最好還能告訴我為什麼。

所以 Prompt 其實可以想成是在告訴 AI:

「你現在是誰、你手上有什麼資料、你要做什麼、最後要怎麼回答。」

例如概念上可以變成:

你是一個任務規劃助手。

請根據以下任務資料,
考慮重要程度、截止時間、剩餘時間與完成進度,
幫我安排任務優先順序。

請不要新增不存在的任務。
請按照指定格式回傳結果。

任務資料:
...

這跟平常使用 ChatGPT 的方式其實很像,只是現在這段文字是之後由 Flask 自動組合。

讓AI回傳Flask也看得懂的結果

如果 AI 回傳:

我認為目前最重要的是 Python 作業,因為它的重要程度比較高,而且截止日期也比較接近……

人看得懂。但我的程式看了可能會:?????

因為 Flask 需要知道的是:

task_id = 1
priority = 1

而不是一大文字。

所以JSON很重要,例如之後我希望 AI 回傳類似:

{
    "recommended_tasks": [
        {
            "task_id": 1,
            "priority": 1,
            "reason": "截止時間較近且重要度較高"
        },
        {
            "task_id": 2,
            "priority": 2,
            "reason": "目前已有部分進度"
        }
    ]
}

這樣 Flask 就可以讀取:

task_id
priority
reason

再交給前端顯示。

整個流程就會變成:

MySQL
  ↓
取得任務
  ↓
Flask
  ↓
組成 Prompt
  ↓
LLM
  ↓
JSON
  ↓
Flask 解析
  ↓
前端顯示

這才是我真正需要的 AI。


今天研究完之後,我沒有急著要求 AI 馬上做出超厲害的排程。因為現在比較重要的是先把流程搞懂。

目前我至少知道了幾件事情:

  1. Flask 可以透過 API 呼叫 LLM。
  2. 我要把任務資料整理成 Prompt 提供給模型。
  3. Prompt 必須清楚告訴 AI 我要它做什麼。
  4. AI 的輸出最好有固定格式,方便程式處理。
  5. JSON 會是之後 Flask 和 AI 之間很重要的溝通格式。

下一篇讓我們一起把LLM接起來吧。


上一篇
Day 08 |「Python 作業」四個字,AI 真的看得懂嗎?
系列文
如果 AI 幫我安排每日的任務?——讓待辦清單不只是清單:LLM × Flask × MySQL 打造動態任務規劃系統9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言