Claude Code 教學/第 22 篇・共 25 篇

LINE 家庭 AI 小幫手(二):接上模型,以 Claude 為例,模型怎麼選

把鸚鵡換成大腦:申請 Claude API 金鑰、寫出第一次呼叫,再用同兩題實測 Haiku 5.5、Sonnet 5、Sonnet 5.5 的答案與花費,說明家庭群組該選哪個模型,以及為什麼不要拿 Claude 訂閱方案來跑機器人。

上一篇做出了會鸚鵡學話的官方帳號,代表 LINE 到你電腦的路通了。這篇要把「原樣回傳」換成「問模型再回答」。

模型有很多家可以選,這個系列用的是 Anthropic 的 Claude。這篇會講三件事:金鑰要怎麼申請、程式怎麼呼叫,以及模型要選哪一個。 最後一件我用同樣兩題實測三個模型,數字都放在文中。

一、先避開我踩過的坑:用 API 金鑰,不要用訂閱

我家的小幫手剛做出來時,走的是「借用 Claude 訂閱方案」:程式在背景呼叫 Claude Code 的 claude -p,吃我每個月付的訂閱額度。看起來很划算,用了兩天就換掉了,原因有三個:

  1. 訂閱是給本人用的。 把自己的訂閱接成一個全家都能用的服務,可能違反使用條款,帳號被停用就得不償失。
  2. 額度會互搶。 家人問的每一題都吃我寫程式要用的額度,我自己要用的時候反而被限速。
  3. 不好算錢。 訂閱看不出每一題花多少,API 每次呼叫都會回報用了多少 token,可以精準記帳(第五篇會用到)。

所以這個系列一律走 Claude API:在 Claude Console 儲值,用多少扣多少。我家上個月的 token 費不到 3 美元,加上搜尋費估計 3~4 美元,第五篇會攤開帳本。

二、申請 API 金鑰

  1. 到 Claude Console 註冊並登入。
  2. 到 Billing 儲值。先儲最低額度就好,用完了它會停,不會無限扣款。
  3. 建議順便到 Limits 設一個每月花費上限,給自己第二道保險。
  4. 到 API Keys → Create Key,名稱取「line-family-bot」,方便之後辨認是哪個專案在花錢。

金鑰只會完整顯示一次,複製後直接貼進 .env 的 ANTHROPIC_API_KEY。每個專案用自己的一把,哪天要停掉某個專案,刪那把就好,不會影響其他程式。

三、第一次呼叫

在 Claude Code 裡交代:

.env 裡已經填好 ANTHROPIC_API_KEY。
請寫一個不到 15 行的 scripts/hello_claude.py:用 anthropic 套件,讀 .env 的 CLAUDE_MODEL,
問 Claude「用一句話介紹你自己」,印出回答和這次用了多少 input/output token。
寫完幫我跑一次,然後解釋每一行在做什麼。

它寫出來的核心會長這樣:

import anthropic

client = anthropic.Anthropic()  # 自動讀環境變數 ANTHROPIC_API_KEY
response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "用一句話介紹你自己"}],
)
print(response.content[0].text)
print(response.usage.input_tokens, response.usage.output_tokens)

幾個名詞第一次出現,先說清楚:

  • messages:對話紀錄,是一個清單。每一句都標明是誰說的(user 是人,assistant 是 Claude)。API 本身不記得上一次聊過什麼,要接續對話,就得每次把前面的內容一起送過去,第三篇處理群組前後文時會用到這個觀念。
  • max_tokens:這次回答最多能用多少 token。token 是模型計費的單位,中文大約一個字一到兩個 token。新一代模型回答前會先在內部思考,思考也吃這個額度,所以不要設太小,我設 4096。
  • response.usage:這次花了多少 token,計費就照這個算。

四、模型怎麼選

Claude 主要分三個等級,名字就是大小:Haiku(小、快、便宜)→ Sonnet(中間)→ Opus(大、最聰明、最貴)。後面的數字是版本,越新越好。

模型 每百萬 input token 每百萬 output token 適合
Claude Haiku 5.5 US$0.10 US$0.50 預算優先、問題單純
Claude Sonnet 5 US$2 US$10 我家目前在用的
Claude Sonnet 5.5 US$2 US$10 Sonnet 的新版本,同價
Claude Opus 5.5 US$4 US$20 寫程式、長篇分析,家庭群組用不太到

價格以 Claude 官網價目表為準。另外,每查一次網路另收 0.01 美元(每千次 10 美元),這筆很常比 token 費還貴,第三篇會再講。

同兩題實測

我用範本程式,把三個模型各問同樣兩題(2026 年 11 月 11 日,週三):

  1. 「台中北屯明天會下雨嗎?」(要會查網路,而且不能亂編)
  2. 「下週六是幾號?那天早上九點提醒我們去阿公家」(要算對日期,還要真的建好提醒)
模型 天氣 下週六+提醒 兩題總花費
Haiku 5.5 查了,答對,回得比較長 11/21,提醒有建 約 US$0.024
Sonnet 5 查了,答對,最精簡 11/21,提醒有建 約 US$0.051
Sonnet 5.5 查了,答對,還補了「可能有微弱鋒面,帶把傘保險」 11/21,提醒有建,還反問「如果你是說這週六(11/14)跟我說」 約 US$0.084

三個都及格。Sonnet 5.5 比 Sonnet 5 貴,是因為它多查了一次網路、也想得比較多,換來的是那句反問:「下週六」本來就有人理解成「這週六」,會先確認的助理,比較不會讓阿公白等。

我實際踩過的坑

今年 9 月以前,我家用的是上一代的 Haiku 4.5,一個月才 1 美元出頭。換掉它是因為我自己越用越覺得它「聽不懂、查不好」,去翻紀錄,抓到這幾種錯:

  • 問兩週後的天氣,它直接編出一份預報(氣象署根本還沒發布那麼遠的)
  • 算錯今天是星期幾,提醒排到錯的那一天
  • 同一則回覆前後自相矛盾

對家庭群組來說,一次講錯比慢兩秒嚴重得多:長輩會照著做。這次實測新一代的 Haiku 5.5 已經沒有這些問題,但我還沒長期用過,不敢掛保證。

我的建議

  • 想省事:選 Sonnet。 我家現在跑 Sonnet 5,範本預設也是它。要用新的 Sonnet 5.5,只要把 .env 的 CLAUDE_MODEL 改成 claude-sonnet-5-5。
  • 預算很緊、或群組很活躍:先試 Haiku 5.5,但前兩週請自己盯著,特別是天氣、日期、提醒這三類。
  • 不需要 Opus。 家庭群組的問題不難,多付的錢換不到差別。
  • 換模型只是改一行設定,先選一個用兩週,看實際帳本和家人反應再調,不用一開始就想到最好。

五、把 Claude 接進 webhook

現在把第一篇的鸚鵡換掉。範本的 main.py 已經全部寫好,但我建議請 Claude 帶你走一遍,而不是直接執行:

請讀 main.py、claude_client.py、line_api.py。
用「一則群組訊息進來,到小欣回覆出去」的順序,帶我走一遍經過哪些函式,
每一步用一兩句話說明。先不要改任何程式。

最核心的是 claude_client.py 裡呼叫模型的這幾行:

response = client.messages.create(
    model=MODEL, max_tokens=4096, system=system, tools=TOOLS, messages=messages
)
usage.log_usage(MODEL, response.usage)

跟上面的 hello 版本比,多了三樣東西:system 是人設(第三篇),tools 是查網路和提醒這些工具(第三、四篇),log_usage 把每次的 token 數記進 data/usage.jsonl(第五篇算錢用)。

六、驗收:先不用 LINE

每改一次就要拿手機在群組裡測試,很快就會煩。範本有一個 DRY_RUN 模式:程式照常收訊息、照常問 Claude,但不真的呼叫 LINE,而是把要回的話印在終端機。

在 .env 設 DRY_RUN=1,開兩個終端機:

# 第一個:啟動小欣
venv/bin/python main.py

# 第二個:假裝 LINE 送來一則私訊
venv/bin/python scripts/fake_line_event.py "台中明天會下雨嗎"

第一個視窗出現 [DRY_RUN reply] ... 加上一句像樣的回答,就成功了。fake_line_event.py 會用你的 Channel secret 算出跟 LINE 一模一樣的簽章,所以走的是完整的 webhook 流程,只差最後一步沒真的送出去。

確認沒問題,把 DRY_RUN 改回 0、重開程式,再用手機私訊官方帳號試一次。

下一篇讓她變成「小欣」:給她人設、教她只在被 @ 時開口、看懂群組前面在聊什麼,並且學會上網查資料。

參考來源

回教學列表