Guardrails项目中Instructions元素使用指南

Guardrails项目中Instructions元素使用指南

guardrails guardrails 项目地址: https://gitcode.com/gh_mirrors/gua/guardrails

概述

在Guardrails项目中,<instructions>元素是一个关键组件,它作为辅助输入传递给大型语言模型(LLM)。这个元素允许开发者向模型提供任务背景、约束条件和格式化要求等重要信息,从而更好地控制模型的输出行为。

Instructions元素的核心功能

<instructions>元素的主要作用是为LLM提供执行任务的上下文信息。不同模型可能会以不同方式处理这些指令,例如聊天模型通常会将指令放在系统提示(system-prompt)中。

指令元素的组成要素

一个完整的<instructions>元素可以包含以下三种核心组件:

1. 变量(Variables)

使用语法:${variable_name}

这些变量由用户在运行时提供,并在指令中被替换。例如,你可以定义一个${task_description}变量,在实际使用时动态传入具体的任务描述。

2. 输出模式(Output Schema)

使用语法:${output_schema}

这是基于output元素编译生成的预期输出模式。它定义了模型应该返回的数据结构和格式要求,确保输出符合预定义的规范。

3. 提示原语(Prompt Primitives)

使用语法:${gr.prompt_primitive_name}

这些是预构建的文本块,包含了常见任务的标准化指令。Guardrails提供了一系列内置的提示原语,可以简化开发过程。

实际应用示例

XML格式示例

<rail version="0.1">
<instructions>
You are a helpful assistant only capable of communicating with valid JSON, and no other text.

${gr.json_suffix_prompt_examples}
</instructions>
</rail>

Pydantic格式示例

instructions = """You are a helpful assistant only capable of communicating with valid JSON, and no other text.

${gr.json_suffix_prompt_examples}"""

编译后的效果

上述示例中的${gr.json_suffix_prompt_examples}会被替换为以下内容:

ONLY return a valid JSON object (no other text is necessary).
The JSON MUST conform to the XML format, including any types and format requests e.g. requests for lists, objects and specific types.
Be correct and concise. If you are unsure anywhere, enter `null`.

Here are examples of simple (XML, JSON) pairs that show the expected behavior:
- `<string name='foo' format='two-words lower-case' />` => `{'foo': 'example one'}`
- `<list name='bar'><string format='upper-case' /></list>` => `{"bar": ['STRING ONE', 'STRING TWO', etc.]}`
- `<object name='baz'><string name="foo" format="capitalize two-words" /><integer name="index" format="1-indexed" /></object>` => `{'baz': {'foo': 'Some String', 'index': 1}}`

最佳实践建议

  1. 明确任务背景:在指令开头清晰地描述任务背景和角色设定,帮助模型理解上下文。

  2. 使用标准化原语:尽可能使用内置的提示原语,它们经过优化,能确保模型正确理解格式要求。

  3. 保持一致性:确保指令中的格式要求与实际的输出模式(output schema)保持一致。

  4. 提供示例:像json_suffix_prompt_examples那样,包含具体的输入输出示例可以显著提高模型的理解准确性。

  5. 适度约束:明确说明模型应该避免的行为(如"no other text is necessary"),但也要允许合理的灵活性(如"enter null if unsure")。

通过合理使用<instructions>元素,开发者可以更精确地控制LLM的输出行为,确保生成的响应符合应用场景的需求。

guardrails guardrails 项目地址: https://gitcode.com/gh_mirrors/gua/guardrails

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邬筱杉Lewis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值