提示词设计

背景和价值

这是一个非常关键的问题:如何通过提示词让 LLM 准确判断用户输入是“咨询问题”还是“对流程引导的回答”?


✅ 一、核心目标

我们要训练或提示 LLM 来区分以下两类输入:

类型 描述 示例
A. 用户回答流程引导 用户回应了我们预设的引导语,表示完成某个阶段 “已注册”、“我开户了”、“已完成入金”
B. 用户产品咨询 用户主动提问关于平台功能、政策、服务等问题 “手续费是多少?”、“资金安全怎么保障?”

🧠 二、设计意图识别 Prompt 的思路

我们需要构建一个清晰的 LLM 提示模板(Prompt),明确告诉模型需要做什么,并提供一些例子帮助理解。


✅ 示例 Prompt(中文)

你是一个对话意图分类器,请根据用户的输入判断其意图类别。

请严格返回以下两个类别之一:
1. `stage_complete` - 用户回应了我们预设的引导语,表示完成了当前阶段(如“已注册”、“开户了”等)
2. `product_inquiry` - 用户询问平台相关的产品信息(如手续费、优惠、选股工具等)

不要输出其他内容,只返回类别标签。

用户输入如下:

{user_input}

📌 三、进一步优化:加入 Few-Shot 示例

为了提升识别准确率,可以加入几个示例,帮助 LLM 更好理解任务:

你是一个对话意图分类器,请根据用户的输入判断其意图类别。

请严格返回以下两个类别之一:
- `stage_complete`:用户回应了我们预设的引导语,表示完成了当前阶段
- `product_inquiry`:用户询问平台相关的产品信息

参考示例:
- 输入:“我刚注册完账号。” → stage_complete
- 输入:“平台手续费贵吗?” → product_inquiry
- 输入:“我已经开通账户了。” → stage_complete
- 输入:“有没有适合新手的学习资料?” → product_inquiry

请只输出类别标签,不解释。

用户输入如下:

{user_input}

🛠️ 四、在代码中调用 LLM 判断意图(伪代码)

假设你已经有一个 LLM 推理函数,例如使用本地模型或 API:

def detect_intent_with_llm(user_input: str) -> str:
    prompt = f"""
你是一个对话意图分类器,请根据用户的输入判断其意图类别。

请严格返回以下两个类别之一:
- `stage_complete`:用户回应了我们预设的引导语,表示完成了当前阶段
- `product_inquiry`:用户询问平台相关的产品信息

参考示例:
- 输入:“我刚注册完账号。” → stage_complete
- 输入:“平台手续费贵吗?” → product_inquiry
- 输入:“我已经开通账户了。” → stage_complete
- 输入:“有没有适合新手的学习资料?” → product_inquiry

请只输出类别标签,不解释。

用户输入如下:

{user_input}
"""

    response = call_llm(prompt)
    return response.strip()

call_llm() 是你自己封装的调用 LLM 的函数,你可以使用 HuggingFace、Ollama、OpenAI 等任意方式实现。


🧪 五、测试样例

用户输入 模型输出
我注册好了 stage_complete
怎么开户? product_inquiry
已经完成入金了 stage_complete
新手有什么福利? product_inquiry
你们支持模拟交易吗? product_inquiry
我刚刚买入了第一支股票 stage_complete
能不能用微信支付? product_inquiry
好的,我现在去注册 product_inquiry (不是完成动作)

🚀 六、进阶建议(可选)

  1. 增加意图类别:除了以上两种,还可以扩展为三类甚至四类:

    • general_conversation:闲聊或其他无关内容
    • technical_issue:技术问题(如登录失败)
  2. 结合关键词过滤:对于明显的“完成阶段”的句子(如“已注册”),可先做一次关键词匹配快速处理,再交给 LLM 处理复杂情况。

  3. 微调小模型:如果你有标注数据,也可以微调一个轻量级模型(如 BERT、TinyBERT)来做意图分类,性能更优。


✅ 总结

目标 实现方法
区分用户是否完成流程阶段 使用 LLM 意图识别 Prompt 分类
Prompt 设计要点 明确分类标准 + 示例辅助
优势 泛化能力强,能识别多种表达方式
可拓展性 可加分类、可微调模型、可结合规则

如果你告诉我你使用的具体 LLM(如 Ollama、Qwen、Llama3、GPT 等),我可以帮你写出完整的调用代码。是否要继续?

参考资料

posted @ 2025-07-11 14:32  向着朝阳  阅读(104)  评论(0)    收藏  举报