核心概念
本页讲解 prompt 管理的概念和最佳实践。如果你还没看过,建议先阅读概览页面,了解它对应用可观测性的价值。
准备好动手了?查看快速开始指南创建你的第一个 prompt。
Prompt 对象
Litefuse 把 prompt 视为给 LLM 的指令(可以是单个字符串或一组消息)以及可选的附加配置的组合,这些配置会影响行为。
prompt 对象还有几个属性,用于管理不同的版本、变体和部署。本页将带你了解高效使用 prompt 的关键原则。
关于 prompt 对象所有字段和方法的详细说明,参见 SDK 参考文档。
Chat 与 Text 类型 prompt
Litefuse 支持两种 prompt 类型。type 字段决定了格式,创建后不可更改。
Text prompt 是单个字符串,适合简单场景,或者你只需要一条 system 消息时。
Chat prompt 是一组带有特定角色(system、user、assistant)的消息,适用于你想管理完整对话结构、包含示例对话或处理聊天历史的场景。
{
"name": "movie-critic",
"type": "text",
"prompt": "As a movie critic, do you like Dune 2?",
"version": 1
}{
"name": "movie-critic-chat",
"type": "chat",
"prompt": [
{
"role": "system",
"content": "You are a movie critic."
},
{
"role": "user",
"content": "Do you like Dune 2?"
}
],
"version": 1
}何时使用 chat prompt: 大多数应用从 text prompt 起步。当你的逻辑变得更复杂,需要管理多条消息、基于角色的结构或聊天历史时,切换到 chat prompt 就更合适。这样你可以在 prompt 管理系统中维护完整的对话结构。
Prompt 的动态渲染
你可以在 prompt 中加入变量,运行时动态填充。可用的变量类型有几种,下面分别说明。
Prompt 支持三种方式在运行时插入动态内容:
| 类型 | 适用场景 |
|---|---|
| 变量 | 在消息中插入动态文本 |
| Prompt 引用 | 在多个 prompt 之间复用 prompt,避免重复编写公共指令 |
| 消息占位符 | 插入消息数组(例如聊天历史) |
Prompt 缓存
Litefuse Prompt 管理使用缓存的 prompt 主要有两个原因:
- 不会给应用增加延迟。
- 消除可用性风险。
这意味着你更新 prompt 之后最初几次 trace 可能仍在使用旧版本。如果你的场景对实时更新有强需求,可以禁用缓存或配置更短的 TTL(生存时间)。
关于缓存如何工作以及如何配置,参见缓存文档。
版本与标签
理解版本和标签如何配合是生产环境管理 prompt 的关键。它们各有用途,但相辅相成。
版本为每一次 prompt 变更提供不可变的历史记录。每次更新都会生成一个新版本(1、2、3……)。
标签是指向某个具体版本的指针。你的代码通常应当指向标签。常见标签包括:
production- 默认标签,用于生产环境应用latest- 始终指向最新版本- 自定义标签 - 创建用于 staging、testing、租户或 A/B 测试的标签
更多内容参见版本与标签。
部署流程
下面是一个典型的 prompt 变更部署流程:
- 创建并测试: 创建一个新的 prompt 版本(自动获得
latest标签) - 校验: 在开发环境或 Playground 中测试新版本
- 部署: 把
production标签更新到指向新版本 - 监控: 你的生产应用会在下次获取时自动用上新版本
- 必要时回滚: 直接把
production标签重新指回上一个版本
由于你的代码引用的是标签,整个过程不需要修改代码。