提示与提示库

使用提示

提示是与 Zed 中的 AI 助手交互的重要组成部分。 它们有助于指导 AI 的响应,并确保您获得最相关和有用的信息。

每个新聊天都将从默认提示开始,该提示可以自定义。

请记住,有效的提示是一个迭代的过程。 尝试不同的提示结构和措辞,以找到最适合您的特定需求和您使用的模型的内容。

以下是一些有效使用提示的技巧

  1. 具体说明:清楚地说明您希望 AI 做什么或解释。
  2. 提供上下文:包含有关您的项目或问题的相关信息。
  3. 使用示例:如果适用,请提供示例来说明您的请求。
  4. 分解复杂任务:对于多步骤问题,请考虑将其分解为更小、更易于管理的提示。

提示库

提示库是一个用于编写和管理提示的界面。 像 Zed 中的其他文本驱动的 UI 一样,它是一个完整的编辑器,具有语法突出显示、键盘快捷键等。

您可以直接在提示编辑器中使用内联助手,从而可以自动化和重写提示。

打开提示库

  1. 打开助手面板。
  2. 单击右上角的菜单。
  3. 从下拉列表中选择“提示库”。

您也可以在助手面板中使用 assistant: deploy prompt library 命令。

管理提示

选择提示后,您可以直接在编辑器中对其进行编辑。 其标题也可以从编辑器标题栏中更改。

可以使用提示编辑器中的按钮复制、删除提示或将其添加到默认提示。

创建提示

要创建提示,只需打开提示库并单击“+”按钮。 提示本地存储,可以随时从库访问。

拥有一系列专门为提示工程量身定制的提示词也有助于您编写一致且有效的提示词。

编写和改进提示的过程通常称为“提示工程”。

有关提示工程的更多信息

编辑默认提示

Zed 允许您自定义与 LLM 交互时使用的默认提示。 更准确地说,它使用一系列提示来组合形成默认提示。

要编辑提示,请从右上角的菜单图标(三条水平线)中选择“提示库”,或使用 cmd-k l 键盘快捷键。

默认提示可能如下所示

[-] Default
  [+] Today's date
  [+] You are an expert
  [+] Don't add comments

可以单独展开上述每个提示,并且由于 Zed 的助手都是文本,因此也可以直接对其进行编辑。 此处的编辑不会传播到已保存的提示。

您可以通过单击提示编辑器右上角的图标(“闪耀”图标)将提示添加到默认提示。 这会将提示添加到默认提示。

更改默认提示不会影响现有上下文。 您可以删除默认提示,并使用 /default 手动重新添加它,以更新现有上下文。

默认提示将显示在提示列表的顶部,并且将包含在每个新聊天中。

您可以使用 /default 命令手动添加默认提示。

注意:请记住,命令仅在创建上下文时才会被评估,因此像 /now 这样的命令不会持续更新,或者 /file 命令不会保持其内容最新。

提示中的命令

命令可以在提示中使用,以插入动态内容或执行操作。 例如,如果您想创建一个提示,其中模型了解日期很重要,则可以使用 /now 命令来插入当前日期。

注意:提示中的斜杠命令必须位于其自己的行上。

有关命令以及有哪些斜杠命令的更多信息,请参见命令文档。

示例

You are an expert Rust engineer. The user has asked you to review their project and answer some questions.

Here is some information about their project:

/file Cargo.toml

在以上示例中,/file 命令用于将 Cargo.toml 文件(或项目中存在的所有 Cargo.toml 文件)的内容插入到提示中。

嵌套提示

与将提示添加到默认提示类似,您可以使用 /prompt 命令在其他提示中嵌套提示。

您可能需要嵌套提示来

  • 即时创建模板
  • 将文档或参考资料等集合分解为更小、可混合搭配的部分
  • 创建类似提示的变体(例如,Async Rust - TokioAsync Rust - Async-std

示例

Title: Zed-Flavored Rust

## About Zed

/prompt Zed: Zed (a prompt about what Zed is)

## Rust - Zed Style

/prompt Rust: Async - Async-std (zed doesn't use tokio)
/prompt Rust: Zed-style Crates (we have some unique conventions)
/prompt Rust - Workspace deps (bias towards reusing deps from the workspace)

上面的(文本)是注释,不属于提示的一部分。

注意:虽然您在技术上可以在自身中嵌套提示,但我们不建议这样做(用最强烈的措辞)。 使用风险自负!

通过使用嵌套提示,您可以创建模块化和可重用的提示组件,这些组件可以以各种方式组合以适应不同的方案。

高级概念

提示模板

Zed 使用提示模板来支持内部助手功能,例如终端助手或内联助手中使用的内容提示。

Zed 具有以下内部提示模板

  • content_prompt.hbs:用于在编辑器中生成内容。
  • terminal_assistant_prompt.hbs:用于终端助手功能。
  • suggest_edits.hbs:用于为 XML Suggest Edits 应该返回生成模型指令。

目前尚不知道我们是否会进一步扩展模板以使其可由用户创建。

覆盖模板

注意:除非您知道自己在做什么,否则不建议覆盖模板。 如果操作不正确,编辑模板会破坏您的助手。

Zed 允许您通过将自定义 Handlebars (.hbs) 模板放置在 ~/.config/zed/prompt_overrides 目录中来覆盖用于各种助手功能的默认提示。

可以覆盖以下模板

  1. content_prompt.hbs:用于在编辑器中生成内容。

  2. terminal_assistant_prompt.hbs:用于终端助手功能。

  3. suggest_edits.hbs:用于为 XML Suggest Edits 应该返回生成模型指令。

注意:请确保您要覆盖这些内容,否则您将错过我们内置功能的迭代。 这主要应用于开发 Zed 时。

您可以自定义这些模板,以更好地满足您的需求,同时保持 Zed 使用的核心结构和变量。 Zed 会在提示覆盖在磁盘上更改时自动重新加载它们。

有关您可以使用的当前版本,请查阅 Zed 的 assets/prompts 目录。