Skip to content

INCLUDE 提示

Prompt Engineering - 确保包含特定信息

Section titled “Prompt Engineering - 确保包含特定信息”

Prompt Engineering 中的一个常见需求是确保大型语言模型(LLM)在其响应中包含特定的细节、事实、关键词或短语。这项技术可以更好地控制生成的输出,确保关键信息得以呈现并根据需要进行强调。

要引导 LLM 纳入特定信息,您需要在提示中明确说明这项要求。可以通过清晰地列出需要包含的项目来实现,或者以某种方式措辞指令,使其成为完整回答的强制性要求。

基本语法包括一个清晰的指令,说明什么必须是响应的一部分。例如:

User: 解释光合作用的过程。确保你的解释包含以下术语:'chlorophyll'(叶绿素)、'carbon dioxide'(二氧化碳)、'water'(水)、'sunlight'(阳光)和 'glucose'(葡萄糖)。
LLM: 当然!光合作用是植物、藻类和某些细菌用来将光能转化为化学能的关键过程。以下是其工作原理,其中包含了您指定的术语:
植物利用一种叫做**叶绿素(chlorophyll)**的绿色色素吸收**阳光(sunlight)**,叶绿素存在于细胞内的叶绿体中。与此同时,它们通过叶片上的小孔(气孔)从大气中吸收**二氧化碳(carbon dioxide)**,并通过根部从土壤中吸收**水(water)**。
在叶绿体内,捕获的阳光能量用于将二氧化碳和水转化为**葡萄糖(glucose)**(一种为植物提供能量的糖)和氧气。氧气作为副产品被释放回大气中。这种葡萄糖作为植物的食物来源,为其生长和发育提供动力。

在这个例子中,用户明确列出了解释中必须包含的关键词。然后,LLM 精心组织了一个自然融入这些术语的回复。

要有效地使用这项技术:

  • 明确和清晰:清晰地列出或描述必须包含的特定细节、事实、关键词或短语。不要假设 LLM 会推断它们的重要性。
  • 使用强烈的祈使句:使用“确保你包含…”,“你必须提及…”,或“你的回复应涵盖…”等短语可以很有效。
  • 情境化包含内容:如果这样做有助于 LLM 更自然地整合它们,解释 为什么 这些特定项目很重要(尽管通常仅列出它们就足够了)。
  • 限制强制性项目的数量(如果必要):在简短的回复中要求包含太多特定内容可能会使输出感觉生硬或不自然。请优先考虑。
  • 检查自然整合:审阅 LLM 的输出,确保指定的信息被逻辑且连贯地包含进来,而不是仅仅附加上去。
  • 如果需要,进行迭代:如果 LLM 遗漏了某个项目或包含得不自然,请重新措辞您的提示或更直接地说明要求。

让我们看一个使用 Python 脚本和 OpenAI API 的实际例子,指示 LLM 在其响应中包含特定信息。

在此示例中,用户请求对一本书情节进行简要概括,并指定必须提及某些人物和情节要点。

import openai
import os
# 推荐:通过环境变量设置你的 API key。
# openai.api_key = os.getenv("OPENAI_API_KEY")
# 对于本教程,使用一个占位符。请替换为你实际的 key。
openai.api_key = 'YOUR_API_KEY'
def generate_response_with_inclusions(main_query, items_to_include):
include_instruction = "当你回答时,请确保具体包含并讨论以下几点或术语:" + ",".join([f"'{item}'" for item in items_to_include]) + "。"
prompt_content = f"{main_query} {include_instruction}"
messages = [
{"role": "system", "content": "你是一个乐于助人的助手,非常注意用户关于包含特定信息的要求。"},
{"role": "user", "content": prompt_content}
]
try:
response = openai.chat.completions.create(
model="gpt-3.5-turbo", # 或更新的模型,如 gpt-4o-mini
messages=messages,
max_tokens=500, # 根据需要调整
temperature=0.7,
n=1,
stop=None
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"发生错误:{e}"
# 示例用法:
query = "请简要概括均衡饮食的好处。"
mandatory_points = ["macronutrients (proteins, fats, carbohydrates)"(常量营养素:蛋白质、脂肪、碳水化合物), "micronutrients (vitamins and minerals)"(微量营养素:维生素和矿物质), "energy levels"(能量水平), "disease prevention"(疾病预防)]
summary = generate_response_with_inclusions(query, mandatory_points)
print("包含特定信息的概括:")
print(summary)

脚本运行时,它将生成一个关于均衡饮食好处的概括,确保包含指定的术语。示例输出可能如下所示:

包含特定信息的概括:
均衡饮食对整体健康和福祉有着诸多益处。当你回答时,请确保具体包含并讨论以下几点或术语:“常量营养素 (蛋白质、脂肪、碳水化合物)”、“微量营养素 (维生素和矿物质)”、“能量水平”、“疾病预防”。
均衡饮食至关重要,因为它为身体提供了最佳功能所需的必需营养素。它确保了对**常量营养素(蛋白质、脂肪、碳水化合物)**的足量摄入,这些营养素需求量较大。蛋白质对组织构建和修复至关重要,脂肪提供能量并支持细胞生长,而碳水化合物是身体主要的燃料来源,显著影响全天的**能量水平**。
**微量营养素(维生素和矿物质)**同样重要,虽然需求量较小,但对于包括酶功能、免疫支持和骨骼健康在内的各种身体过程是不可或缺的。食用多种水果、蔬菜、全谷物、瘦肉蛋白和健康脂肪有助于确保常量营养素和微量营养素的充足供应。
保持均衡饮食的最重要好处之一是其在**疾病预防**中的作用。适当的营养可以帮助降低慢性疾病的风险,例如心脏病、2 型糖尿病、某些癌症和肥胖症。通过正确滋养身体,您可以支持其自然的防御机制并促进长期健康和活力。

在本章中,我们探讨了提示 LLM 在其响应中包含特定信息的技术。通过清晰明确地说明必须包含哪些细节、事实或关键词,您可以更好地控制输出,并确保关键内容不会被遗漏。

我们讨论了最佳实践,例如明确说明、使用强烈的祈使句以及检查自然整合。Python 示例演示了如何实现这一点。这项技能对于定制 LLM 输出以满足各种应用中的精确信息需求至关重要。