Skip to main content

概念

及时工程设计是 LangSmith 的核心支柱之一。 传统的软件应用程序是通过编写代码构建的,而 AI 应用程序通常涉及大量的编写提示。 我们的目标是通过提供一组旨在实现和促进快速工程的工具来尽可能简化这一过程。

为什么要提示工程?

提示为模型设置舞台,就像即兴表演中的观众指导演员的下一次表演一样 - 它指导模型的 行为,而无需更改其底层功能。就像告诉演员“做个海盗”决定了他们的行为方式一样, 提示提供说明、示例和上下文,以塑造模型的响应方式。

提示工程很重要,因为它允许您更改模型的行为方式。 虽然还有其他方法可以改变模型的行为(如微调),但提示工程通常是最简单的入门方式 并且通常提供最高的 ROI。

我们经常看到提示工程是多学科的。 有时,最好的提示工程师不是构建应用程序的软件工程师,而是产品经理 或其他领域专家。 拥有适当的工具和基础设施来支持这种跨学科架构非常重要。

提示 vs 提示模板

尽管我们经常互换使用这些术语,但了解 “prompts” 和 “prompt templates” 之间的区别很重要。

提示是指传递到语言模型中的消息。

提示模板 (Prompt Templates) 是指一种格式化信息的方法,用于使该提示包含所需的信息。提示模板 可以包含少数镜头示例、外部上下文或提示中所需的任何其他外部数据的变量。

LangSmith 中的提示

您可以在 LangSmith 中存储和版本提示模板。 需要了解提示模板的几个关键方面。

聊天 vs 完成

有两种不同类型的提示:chat样式提示和completionstyle 提示符。

聊天风格提示是消息列表。这是目前大多数模型 API 支持的提示样式,因此通常应该首选这种样式。

完成样式提示只是一个字符串。这是一种较旧的提示方式,因此主要由于遗留原因而存在。

F 线 vs 小胡子

您可以使用 f-stringmustache 格式通过输入变量设置提示的格式。下面是一个示例提示 使用 F 字符串格式:

Hello, {name}!

下面是一个留着胡子的:

Hello, {{name}}!
Mustache 格式

Mustache 格式让您在条件变量、循环和嵌套键方面更加灵活。 阅读文档

工具

工具是 LLM 可以用来与外部世界交互的接口。工具由名称、描述、 以及用于调用工具的参数的 JSON 架构。

结构化输出

结构化输出是大多数最先进的 LLM 的一个功能,其中它们不是生成原始文本作为输出 坚持指定的架构。这可能会也可能不会使用引擎盖下的工具

结构化输出与工具

结构化输出类似于工具,但在几个关键方面有所不同。使用工具,LLM 选择要调用的工具(也可以选择不调用任何工具);对于结构化输出,LLM 始终以这种格式响应。使用工具,LLM 可以选择多个工具;使用结构化输出时,只生成一个响应。

(可选)您可以将模型配置与提示模板一起存储。这包括模型名称和任何其他参数 (温度等)。

提示版本控制

验证是迭代和协作处理不同提示的关键部分。

提交

对提示的每次保存更新都会创建一个新提交。您可以查看以前的提交,从而轻松查看早期的提示版本或在需要时恢复到以前的状态。在 SDK 中,您可以通过指定提交哈希和提示名称(例如prompt_name:commit_hash).

在 UI 中,您可以通过切换 Commits 选项卡右上角的 “diff” 按钮来比较提交与其以前的版本。

标签

您可能希望使用人类可读的标签来标记提示提交,以便即使在添加新提交时也可以引用它。常见用例包括使用devprod标签。这允许您跟踪在何处使用了哪些版本的提示。

提示 Playground

Prompt playground 使迭代和测试 Prompt 的过程变得无缝。您可以从侧边栏或直接从保存的提示中进入 Playground。

在 Playground 中,您可以:

  • 更改正在使用的模型
  • 更改正在使用的提示模板
  • 更改输出架构
  • 更改可用工具
  • 输入输入变量以运行提示模板
  • 通过模型运行提示
  • 观察输出

测试多个提示

你可以向 Playground 添加更多提示,以便轻松比较输出并决定哪个版本更好:

对数据集进行测试

要对数据集进行测试,您只需从右上角选择数据集,然后按 Start(开始)即可。您可以修改结果是否 流回以及测试中有多少重复。

您可以单击“查看实验”按钮以更深入地了解测试结果。


这个页面有帮助吗?


您可以在 GitHub 上留下详细的反馈。