语言模型在回答问题时匆忙下结论易在推理链中出错,“思维链推理” 策略要求语言模型先给出相关推理步骤、深度思考后再给答案,更接近人类解题思维。此方法能减少语言模型匆忙犯错,生成更准确可靠的响应,是提升回答质量的重要策略。本章将探讨如何处理语言模型输入以生成高质量输出,会详细介绍构建思维链推理 Prompt 的方法,并通过案例分析其效果,掌握该技巧对开发者获取更好的语言模型输出有帮助。
思维链提示设计
系统消息设计
delimiter = "===="
system_message = f"""
请按照以下步骤回答客户的提问。客户的提问将以{delimiter}分隔。
步骤 1:{delimiter}首先确定用户是否正在询问有关特定产品或产品的问题。产品类别不计入范围。
步骤 2:{delimiter}如果用户询问特定产品,请确认产品是否在以下列表中。所有可用产品:
产品:TechPro 超极本
类别:计算机和笔记本电脑
品牌:TechPro
型号:TP-UB100
保修期:1 年
评分:4.5
特点:13.3 英寸显示屏,8GB RAM,256GB SSD,Intel Core i5 处理器
描述:一款适用于日常使用的时尚轻便的超极本。
价格:$799.99
产品:BlueWave 游戏笔记本电脑
类别:计算机和笔记本电脑
品牌:BlueWave
型号:BW-GL200
保修期:2 年
评分:4.7
特点:15.6 英寸显示屏,16GB RAM,512GB SSD,NVIDIA GeForce RTX 3060
描述:一款高性能的游戏笔记本电脑,提供沉浸式体验。
价格:$1199.99
产品:PowerLite 可转换笔记本电脑
类别:计算机和笔记本电脑
品牌:PowerLite
型号:PL-CV300
保修期:1年
评分:4.3
特点:14 英寸触摸屏,8GB RAM,256GB SSD,360 度铰链
描述:一款多功能可转换笔记本电脑,具有响应触摸屏。
价格:$699.99
产品:TechPro 台式电脑
类别:计算机和笔记本电脑
品牌:TechPro
型号:TP-DT500
保修期:1年
评分:4.4
特点:Intel Core i7 处理器,16GB RAM,1TB HDD,NVIDIA GeForce GTX 1660
描述:一款功能强大的台式电脑,适用于工作和娱乐。
价格:$999.99
产品:BlueWave Chromebook
类别:计算机和笔记本电脑
品牌:BlueWave
型号:BW-CB100
保修期:1 年
评分:4.1
特点:11.6 英寸显示屏,4GB RAM,32GB eMMC,Chrome OS
描述:一款紧凑而价格实惠的 Chromebook,适用于日常任务。
价格:$249.99
步骤 3:{delimiter} 如果消息中包含上述列表中的产品,请列出用户在消息中做出的任何假设,\
例如笔记本电脑 X 比笔记本电脑 Y 大,或者笔记本电脑 Z 有 2 年保修期。
步骤 4:{delimiter} 如果用户做出了任何假设,请根据产品信息确定假设是否正确。
步骤 5:{delimiter} 如果用户有任何错误的假设,请先礼貌地纠正客户的错误假设(如果适用)。\
只提及或引用可用产品列表中的产品,因为这是商店销售的唯一五款产品。以友好的口吻回答客户。
使用以下格式回答问题:
步骤 1: {delimiter} <步骤 1 的推理>
步骤 2: {delimiter} <步骤 2 的推理>
步骤 3: {delimiter} <步骤 3 的推理>
步骤 4: {delimiter} <步骤 4 的推理>
回复客户: {delimiter} <回复客户的内容>
请确保每个步骤上面的回答中中使用 {delimiter} 对步骤和步骤的推理进行分隔。
"""
用户消息测试
user_message = f"""BlueWave Chromebook 比 TechPro 台式电脑贵多少?"""
messages = [
{'role':'system',
'content': system_message},
{'role':'user',
'content': f"{delimiter}{user_message}{delimiter}"},
]
response = get_completion_temperature_v3(messages)
print(response)
user_message = f"""你有电视机么"""
messages = [
{'role':'system',
'content': system_message},
{'role':'user',
'content': f"{delimiter}{user_message}{delimiter}"},
]
response = get_completion_temperature_v3(messages)
print(response)
内心独白
在某些应用场景下,完整呈现语言模型的推理过程可能会泄露关键信息或答案,这并不可取。例如在教 学应用中,我们希望学生通过自己的思考获得结论,而不是直接被告知答案。
针对这一问题。“内心独白”技巧可以在一定程度上隐藏语言模型的推理链。具体做法是,在 Prompt 中指 示语言模型以结构化格式存储需要隐藏的中间推理,例如存储为变量。然后在返回结果时,仅呈现对用 户有价值的输出,不展示完整的推理过程。这种提示策略只向用户呈现关键信息,避免透露答案。同时 语言模型的推理能力也得以保留。适当使用“内心独白”可以在保护敏感信息的同时,发挥语言模型的推理 特长。
总之,适度隐藏中间推理是Prompt工程中重要的技巧之一。开发者需要为不同用户制定不同的信息呈现 策略。以发挥语言模型最大价值。
try:
if delimiter in response:
final_response = response.split(delimiter)[-1].strip()
else:
final_response = response.split(":")[-1].strip()
except Exception as e:
final_response = "对不起,我现在有点问题,请尝试问另外一个问题"
print(final_response)
标签:14,步骤,delimiter,笔记本电脑,LLM,message,推理,response From: https://blog.csdn.net/u010479989/article/details/145200069