iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0

Day 2|如何在程式中呼叫 LLM API?

昨天說到,「會用 LLM 聊天」跟「把 LLM 寫進程式」是兩件事,首先就從如何在程式裡呼叫 LLM API,並且拿到回應開始。

這邊想先分享 SDK (Software Development Kit) 這個概念,各廠商有自己包裝好的一組工具或函式庫,讓使用者不用從頭自己寫請求、處理 headers 與解析 JSON,可以直接呼叫官方的函式與 API 傳遞資料。

之後主要會用兩個由官方提供的 Python SDK:Anthropic 的 anthropic 與 OpenAI 的 openai,來比較不同廠商的模型介面。


最小可行範例

首先來看一支最簡單的程式:送一句話進去,把回應印出來。

import os
import anthropic

client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

response = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "用一句話解釋什麼是 API"}],
)

print(response.content[0].text)

這段程式碼簡單來說就是,建立一個 client,負責帶著 API key 認證,向模型位址送出一個 messages 陣列的請求,取得回應後印出。


拆解 Request:你到底送了什麼出去?

  • model:指定使用的模型。官方名稱會隨著版本的更新而改變,如果直接寫死在程式裡的模型名稱需要定期檢查。
  • messages:陣列,每個元素包含 rolecontent(內容)。
    • role 是用來標記訊息的發言者身分,通常是 user(使用者說的話)、assistant(模型之前的回覆,用在多輪對話時把歷史帶進去)。
    • 有些 SDK 還有獨立的 system 參數,用來設定模型的行為準則。
  • max_tokens:限制模型這次最多可以「生成」多少 token。若數值太小,回應可能被截斷。

拆解 Response:你拿回了什麼?

  • content:模型的回覆內容,通常是一個陣列(模型有可能同時回傳文字加上其他型態的內容,例如 tool use 的呼叫請求)。
  • usage:這次呼叫用了多少 input token、多少 output token。這是計算成本的依據——多數廠商是依 token 數量計費。
  • stop_reason:模型為什麼停止生成,例如自然結束、碰到 max_tokens 上限、或是被要求呼叫工具。

這些欄位是與模型聊天時無法觀察到的,卻是在程式中操作模型的關鍵。不論是要存取模型內容、紀錄 token 花費或者觀察模型錯誤訊息,都需要了解請求與回應的結構才能擷取正確的訊息。


廠商 SDK 的結構差異

不妙的是,各廠商間呼叫模型的方式、模型回應的結構可能會有所不同,也就是不同廠商間的 SDK 不盡相同。把模型改成使用 OpenAI 來對照一下:

import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

response = client.chat.completions.create(
    model="gpt-4.1",
    max_tokens=1024,
    messages=[{"role": "user", "content": "用一句話解釋什麼是 API"}],
)

print(response.choices[0].message.content)

從兩組程式可以看出:

  1. 呼叫的方法名稱不同messages.create vs chat.completions.create
  2. 獲得回應的路徑不同response.content[0].text vs response.choices[0].message.content

光只是最簡單的向模型呼叫回應,在兩家廠商間就已經不相容。

如果之後想要做更複雜的流程引進不同模型,或者想要以同一隻程式去比較模型間的能力,在呼叫邏輯就得花上一番功夫去對齊不同廠商,將是一件費人心神的事。


今日小結

今天紀錄的重點其實不是「如何呼叫 API」,而是需要了解在呼叫期間所會用到的工具、概念,了解廠商間的回應與結構有差異,就是進入使用 LLM 的第一步!


上一篇
Day 01 :開賽!!!
系列文
從呼叫 API 到打造 Gateway:LLM 工程化 30 天2
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言