iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0

前言

上一篇把 Gemini 接進 Flask,也成功讓 AI 按照我規定的格式回傳 JSON。
今天要讓 Flask 把這些資料拿出來,做第一版「任務排序邏輯」

MySQL
 ↓
取得所有未完成任務
 ↓
Flask
 ↓
整理成 Prompt
 ↓
Gemini
 ↓
排序

確認資料庫有多筆任務

先增加幾個不同的任務

INSERT INTO tasks
(title, description, estimated_minutes, importance, deadline, progress, status)
VALUES
(
    '完成英文報告',
    '完成英文課報告並整理內容',
    60,
    2,
    '2026-09-16 23:59:00',
    0,
    'todo'
),
(
    '準備期中考試',
    '複習資料結構與演算法',
    90,
    3,
    '2026-09-18 23:59:00',
    20,
    'doing'
),
(
    '看 Python 教學影片',
    '完成 Python 練習影片',
    45,
    1,
    '2026-09-20 23:59:00',
    0,
    'todo'
);

這樣資料庫裡就會有不同的:

  • 重要程度
  • Deadline
  • 預估時間
  • 完成進度

之後 AI 才有東西可以比較。

新增一個排順序的api

讓 Flask 從 MySQL 抓出未完成任務,把任務交給 Gemini。

@app.route("/ai/rank", methods=["GET"])
def ai_rank():
    conn = get_connection()
    cursor = conn.cursor(dictionary=True)

    cursor.execute("""
        SELECT
            task_id,
            title,
            description,
            estimated_minutes,
            importance,
            deadline,
            progress,
            status
        FROM tasks
        WHERE status != 'done'
    """)

    tasks = cursor.fetchall()

    cursor.close()
    conn.close()

    prompt = f"""
你是一個待辦事項管理助手。

以下是使用者目前尚未完成的任務:

{tasks}

請根據以下條件判斷任務的優先順序:

1. 重要程度越高,優先度越高
2. Deadline 越接近,優先度越高
3. 請考慮目前的完成進度
4. 請綜合以上條件,不要只看單一條件

請從最應該先做的任務開始排序。

只回傳 JSON,不要加入其他說明。

格式:

[
    {{
        "task_id": 1,
        "priority": 1,
        "reason": "原因"
    }}
]
"""

    response = client.models.generate_content(
        model="gemini-3.5-flash-lite",
        contents=prompt
    )

    return {
        "result": response.text
    }

Postman 測試

先啟動 Flask
image

雖然回傳格是跑掉了,但 AI 成功把資料庫裡的 7 個未完成任務拿出來比較,最後排成:

Priority 3 → task 3
Priority 4 → task 5
Priority 5 → task 8
Priority 6 → task 7
Priority 7 → task 9

而且 AI 不只是給順序,還有給原因,且AI 的排序其實已經開始同時考慮:

  • Deadline
  • importance
  • progress
  • estimated time

它不是單純只會把重要程度全部排前面


接下來 Day 13

我們會先更正回傳格式問題,而且不只是繼續加 Prompt,會開始做一個比較有意思的測試:

「Deadline 越近,就一定要越優先嗎?」


上一篇
Day 11|AI 登場:第一次讓 LLM 幫我回答問題
下一篇
Day 13|Deadline 越近,就一定要越優先嗎?
系列文
如果 AI 幫我安排每日的任務?——讓待辦清單不只是清單:LLM × Flask × MySQL 打造動態任務規劃系統 共 13 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言