加载中

在使用 Claude 构建应用程序时,了解完整的请求生命周期有助于您架构更好的系统并更有效地调试问题。让我们来了解一下当用户向您的 AI 驱动的聊天应用程序发送消息时会发生什么。

聊天窗口中有一条来自"You"的消息,内容为"What is quantum computing?",下方是一个空白输入框和一个发送按钮。

完整的请求流程

从用户输入到 AI 响应的旅程涉及五个不同的步骤:请求到服务器、请求到 Vertex、模型处理、响应到服务器,以及响应到客户端。每个步骤在提供用户期望的那种"神奇"响应方面都起着至关重要的作用。

请求到服务器阶段:一个网页或移动应用将"What is quantum computing?"发送到您的服务器,而不是直接发送到 Vertex。

为什么您需要一个服务器

切勿直接从客户端代码发出 API 请求。原因如下:

  • API 请求需要必须保持安全的密钥凭证
  • 在客户端代码中暴露凭证会使其对任何人可见
  • 您的服务器充当您的应用程序与 Vertex 之间的安全中介

始终通过您自己控制和保护的服务器来路由请求。

发出 API 请求

您的服务器使用 Anthropic 的 SDK 或 Google 的官方 Vertex SDK 与 Vertex 通信。Anthropic 为 Python、TypeScript、Go 和 Ruby 提供官方 SDK。

请求到 Vertex 阶段:您服务器上的 Anthropic SDK,或一个普通的 HTTP 请求,将下面列出的字段发送到 Vertex。

每个请求都必须包含以下关键字段:

  • Google Cloud 凭证 - 授权您在 Google Cloud 上的请求
  • Model(模型) - 要使用的特定模型的名称
  • Messages(消息) - 包含用户输入文本的列表
  • Max Tokens(最大令牌数) - 限制模型可以生成的令牌数量

用户的输入被放置在一条"user"消息中,然后该消息进入发送给 API 的消息列表中。

Claude 内部:文本生成过程

一旦 Vertex 收到您的请求,Claude 会通过四个阶段处理它:分词(Tokenization)、嵌入(Embedding)、上下文化(Contextualization)和生成(Generation)。

分词:输入"What is quantum computing?"被拆分为令牌"What"、"is"、"quantum"、"computing"、"?"。

分词

Claude 首先将输入文本分解为称为令牌的较小块。这些可以是完整的单词、单词的一部分、空格或符号。为简单起见,可以将每个单词视为一个令牌。

嵌入

每个令牌都会被转换为一个嵌入——一长串数字,代表该单词所有可能的含义。可以将嵌入视为基于数字的定义。

嵌入步骤:令牌"What"、"is"、"quantum"、"computing"和"?"各自映射到一列小数,例如 -0.34、0.87。

上下文化

由于单词可能有多种含义,Claude 使用上下文来确定正确的解释。单词"quantum"可能指物理学、计算,或者仅仅意味着"非常小"——来自周围单词的上下文可以澄清其预期含义。

从"quantum"分出四种含义,包括一个物理量的离散、不可分割的单位,源自拉丁语"quantus"。

在上下文化过程中,每个嵌入都会根据其邻近词进行调整,突出显示在给定上下文中最合理的含义。

在 Claude 的四个阶段中突出显示上下文化,曲线连接着五列嵌入数字。

生成

经过上下文化的嵌入会通过一个输出层,该层为每个可能的下一个单词生成概率。Claude 并不总是选择概率最高的单词——它会结合概率和随机性,以创建更自然、更多样化的响应。

输出层给出的下一个单词概率:30% "Quantum"、23% "Great"、19% "Are"、10% "What"、10% "This"和 8% "To"。

选定一个单词后,Claude 会将其添加到序列中,并对下一个单词重复整个过程。

生成何时停止

在生成每个令牌后,Claude 会检查几个条件以决定是否继续:

输出令牌"Quantum mechanics is a form of computing.",然后是一个序列结束令牌,下方是三项停止检查。

  • 达到最大令牌数 - 是否已达到您指定的限制?
  • 自然结束 - 是否生成了序列结束令牌?
  • 停止序列 - 是否遇到了预定义的停止短语?

序列结束令牌是一种特殊信号(不是可见文本),Claude 用它来表示已达到自然结论。

响应

生成完成后,Vertex 会向您的服务器发送一个响应,其中包含:

Vertex 将响应发送回您服务器上的 Anthropic SDK,输出文本被放入一条"assistant"消息中。

  • Message(消息) - 生成的文本
  • Usage(用量) - 输入和输出令牌的计数
  • Stop Reason(停止原因) - 模型停止生成的原因

然后,您的服务器将生成的文本转发给您的客户端应用程序,该文本会出现在聊天界面中。

"Generated text"箭头从您的服务器指向网页或移动应用,其中显示了对"Define quantum computing"的 AI 回复。

完整的画面

整个过程——从用户输入经过分词、嵌入、上下文化、生成,再回到用户——在几秒钟内完成。理解这一流程有助于您构建更健壮的应用程序,并在问题出现时进行排查。

一个网页或移动应用将"What is quantum computing?"发送到您的服务器,您服务器上的 Anthropic SDK 请求 Vertex 并获得回复。

关键要点:始终使用服务器作为中介,理解文本生成是一个迭代过程,并关注响应元数据以监控用量和理解模型行为。