Prompt Enrichment
提示增强会在请求送达 AI 模型之前,加入用户数据、检索到的文档、工具结果或示例,让答案更符合用户需求。
提示丰富是在请求到达AI 模型之前,自动为用户请求补充信息。应用代码位于用户与模型之间,会填入用户没有输入的内容:账户详情、能够回答问题的文档、来自工具的实时数据、示例,或更详尽的请求内容。客户问“为什么我的摄像头突然检测不到了?”时,输入了七个词,而大型语言模型(LLM)收到的除了这七个词,还有客户使用的设备、软件版本,以及针对这一具体问题的帮助文章。这个术语涵盖了多种技术,其中最知名的是检索增强生成(RAG)。
提示丰富会添加哪些内容#
- 用户和会话数据:从应用自身记录中读取的个人资料字段、套餐、语言、位置、当前日期或用户所在页面。
- 检索到的知识:通过搜索文档集合或知识图谱找到的、与请求相关的文本段落。
- 工具结果:为当前请求获取的值,例如来自 API 的订单状态、数据库行或另一个模型的输出。
- 选定示例:针对每个请求选取与输入相似的少样本示例,而不是对所有请求使用同一组固定示例。
- 改写后的查询:模型会在使用简短请求前对其进行扩展。在 HyDE 中,Luyu Gao 及其同事让 LLM 编写假设答案,然后使用该文档的嵌入来检索真实文档;与仅接收问题的同一无监督检索器相比,这种方法表现更好。
下面的示例使用 scikit-learn通过 TF-IDF 相似度检索最相关的帮助文章,并结合账户数据丰富客服问题:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Context the user never typed: their account record and the help center's articles
account = {"plan": "Pro", "device": "USB webcam", "app_version": "2.3"}
articles = [
"Version 2.4 fixes USB webcams that are not detected after a system update.",
"Pro plans include ten concurrent video streams per workspace.",
"Invoices are available on the billing page as soon as a payment succeeds.",
]
question = "Why is my camera not detected anymore?"
# Retrieve the article most similar to the question
vectorizer = TfidfVectorizer().fit([*articles, question])
scores = cosine_similarity(vectorizer.transform([question]), vectorizer.transform(articles))[0]
best = articles[scores.argmax()]
# Assemble the enriched prompt the model actually receives
profile = ", ".join(f"{key}: {value}" for key, value in account.items())
prompt = f"Customer profile: {profile}\nRelevant article: {best}\nQuestion: {question}"
print(prompt)它会打印:
Customer profile: plan: Pro, device: USB webcam, app_version: 2.3
Relevant article: Version 2.4 fixes USB webcams that are not detected after a system update.
Question: Why is my camera not detected anymore?用户的问题从未提到网络摄像头、版本或更新,但丰富后的提示包含了回答“从 2.3 更新到 2.4”所需的全部信息。生产系统通常使用来自向量数据库的稠密嵌入或混合搜索进行检索,但信息组装步骤相同。
提示丰富的实际应用#
2023 年,GitHub 介绍了 Copilot 的相邻标签页技术:它会搜索开发者已打开的文件,查找与光标周围代码相似的代码片段,并将其添加到提示中;这一做法使用户接受 Copilot 建议的频率相对提高了 5%。面向客户支持的聊天机器人会在每一轮对话中加入账户和订单记录;AI 智能体则会在每一步中加入之前工具调用的结果。
视觉处理流程会用检测器找到的内容来丰富提示。在 Ultralytics Platform Agents中,LLM 模块会将每张图像连同其上游模块的结果(例如 YOLO26检测结果)一起发送给所选的视觉语言模型,因此只需编写一次的提示,就能针对工作流处理的每张图像加入新的目标检测结果。
提示丰富会带来成本。每增加一个段落都会使用更多tokens,从而提高费用并增加推理延迟;无关或过多的上下文会降低准确性,这种现象称为上下文腐化。检索到的网页和文档也可能携带提示注入攻击;而向提示中添加任何个人数据都会引发数据隐私方面的担忧,因为这些数据会发送给模型的运行方。










