在使用 Claude 建構應用程式時,了解完整的請求生命週期有助於您做出更好的架構決策,並更有效地除錯問題。讓我們一起走過從使用者在您的聊天介面中點擊「傳送」的那一刻,到 Claude 的回應出現在螢幕上的整個過程。

五步驟請求流程
與 Claude 的每次互動都遵循一個可預測的模式,包含五個不同的階段:向伺服器發出請求、向 Anthropic API 發出請求、模型處理、向伺服器回應,以及向客戶端回應。

為什麼您需要伺服器
您絕不應該直接從客戶端程式碼向 Anthropic API 發出請求。原因如下:
- API 請求需要一個秘密的 API 金鑰進行身份驗證
- 在客戶端程式碼中暴露此金鑰會造成嚴重的安全漏洞
- 任何人都可能提取該金鑰並發出未經授權的請求
相反地,您的網頁或行動應用程式會將請求傳送到您自己的伺服器,然後伺服器使用安全儲存的金鑰與 Anthropic API 進行通訊。
發出 API 請求
當您的伺服器聯繫 Anthropic API 時,您可以使用官方 SDK 或發出純 HTTP 請求。Anthropic 提供了 Python、TypeScript、JavaScript、Go 和 Ruby 的 SDK。

每個請求都必須包含以下必要欄位:
- API 金鑰 - 向 Anthropic 識別您的請求
- Model - 要使用的模型名稱(例如「claude-sonnet-4-5」)
- Messages - 包含使用者輸入文字的列表
- Max Tokens - Claude 可以生成的 token 數量上限
Claude 處理的內部過程
一旦 Anthropic 收到您的請求,Claude 會透過四個主要階段來處理它:分詞(tokenization)、嵌入(embedding)、情境化(contextualization)和生成(generation)。

分詞
Claude 首先將您的輸入文字分解成稱為 token 的較小區塊。這些可以是完整的單詞、單詞的一部分、空格或符號。為簡化起見,可以將每個單詞視為一個 token。
嵌入
每個 token 都會被轉換成一個嵌入(embedding)——一長串代表該單詞所有可能含義的數字。可以將嵌入視為捕捉語義關係的數字定義。

單詞通常有多重含義。例如,「quantum」可能指:
- 物理量的離散單位(物理學)
- 量子力學或量子物理學概念
- 極其微小或次原子的東西
- 量子計算應用
情境化
Claude 會根據周圍的單詞來精煉每個嵌入,以確定在該情境中最可能的含義。這個過程會調整數字表示,以突顯適當的定義。

生成
情境化後的嵌入會通過一個輸出層,該層會計算每個可能的下一個單詞的機率。Claude 並不總是選擇機率最高的單詞——它會混合使用機率和受控的隨機性,以創造自然且多樣化的回應。

在選定每個單詞後,Claude 會將其加入序列中,並對下一個單詞重複整個過程。
Claude 何時停止生成
在每個 token 之後,Claude 會檢查幾個條件來決定是否繼續:

- 達到最大 token 數 - 是否已達到您指定的限制?
- 自然結束 - 是否生成了序列結束 token?
- 停止序列 - 是否遇到了預定義的停止短語?
API 回應
當生成完成時,API 會傳回一個結構化的回應,其中包含:
- Message - 生成的文字
- Usage - 輸入和輸出 token 的計數
- Stop Reason - 生成結束的原因

您的伺服器會接收此回應,並將生成的文字轉發回您的客戶端應用程式,然後顯示在使用者介面中。

重點摘要
了解這個流程有助於您:
- 設計能保護您 API 金鑰的安全架構
- 為您的使用案例設定適當的 token 限制
- 在您的應用程式邏輯中處理不同的停止原因
- 透過了解問題可能發生在流程中的哪個環節來除錯
不必擔心要記住每一個細節——目標是讓您熟悉在使用 Claude 的 API 時會遇到的術語和整體流程。