Skip to content
Cloudflare Docs
非官方翻译 - 此文档为非官方中文翻译版本,仅供参考。如有疑问请以 英文官方文档 为准。

提示

从文本生成模型获得良好结果的一部分是正确地提出问题。LLM 通常使用特定的预定义模板进行训练,然后在进行推理任务时,应将这些模板与模型的标记器一起使用,以获得更好的结果。

使用 Workers AI 提示文本生成模型有两种方法:

有范围的提示

这是推荐的方法。通过有范围的提示,Workers AI 承担了了解和使用不同模型不同聊天模板的负担,并在构建提示和创建文本生成任务时为开发人员提供统一的界面。

有范围的提示是一系列消息。每条消息定义了两个键:角色和内容。

通常,角色可以是以下三个选项之一:

  • system - 系统消息定义了 AI 的个性。您可以使用它们来设置规则以及您期望 AI 的行为方式。
  • user - 用户消息是您通过提供问题或对话来实际查询 AI 的地方。
  • assistant - 助手消息向 AI 暗示所需的输出格式。并非所有模型都支持此角色。

OpenAI 对他们如何在其 GPT 模型中使用这些角色有很好的解释。尽管聊天模板是灵活的,但其他文本生成模型倾向于遵循相同的约定。

以下是使用系统和用户角色的有范围提示的输入示例:

{
messages: [
{ role: "system", content: "你是一个非常有趣的喜剧演员,你喜欢表情符号" },
{ role: "user", content: "给我讲个关于 Cloudflare 的笑话" },
],
};

以下是在用户和助手之间进行多次迭代的聊天会话的更好示例。

{
messages: [
{ role: "system", content: "你是一个专业的计算机科学助理" },
{ role: "user", content: "WASM 是什么?" },
{ role: "assistant", content: "WASM (WebAssembly) 是一种二进制指令格式,旨在成为一个平台无关的格式" },
{ role: "user", content: "Python 能编译成 WASM 吗?" },
{ role: "assistant", content: "不,Python 不能直接编译成 WebAssembly" },
{ role: "user", content: "Rust 呢?" },
],
};

请注意,不同的 LLM 使用不同的模板针对不同的用例进行训练。虽然 Workers AI 尽力通过统一的 API 向开发人员抽象每个 LLM 模板的细节,但您应始终参考模型文档以获取详细信息(我们在上表中提供了链接)。例如,像 Codellama 这样的指令模型经过微调以响应用户提供的指令,而聊天模型则期望以对话片段作为输入。

无范围的提示

您可以使用无范围的提示向模型发送单个问题,而无需担心提供任何上下文。Workers AI 会自动将您的 prompt 输入转换为合理的默认有范围提示,以便您获得最佳的预测结果。

{
prompt: "给我讲个关于 Cloudflare 的笑话";
}

您还可以使用无范围的提示来手动构建模型聊天模板。在这种情况下,您可以使用 raw 参数。以下是 Mistral 聊天模板提示的输入示例:

{
prompt: "<s>[INST]喜剧演员[/INST]</s>
[INST]给我讲个关于 Cloudflare 的笑话[/INST]",
raw: true
};