載入中

在使用 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 時會遇到的術語和整體流程。