支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【经验与坑】让AI更懂你:提示词的科学与艺术

发布日期:2025-01-24 06:50:13 浏览次数: 1781 作者:码农智涵的程序人生
推荐语

这是一篇让 AI 更懂你的指南,揭示提示词的关键技巧。

核心内容:
1. 对提示词的基础理解
2. CO-STAR 框架的实际应用
3. 利用分隔符优化输出效果

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家


文章脉络

一.对提示词的理解

首先,什么是提示词?

在大模型的输入框中键入的文本即是我们的查询提示词。这正是大型AI模型与传统搜索引擎应用的一个显著差异。无论我们选择利用先进的AI大模型还是常规的搜索引擎,我们的核心目的都是为了迅速地获取所需的信息。而常见的长文本类型的AI大模型应用(例如ChatGPT)也可以看作是一个有灵魂的搜索引擎。

为了让返回的结果更准确、更符合我们的需求,在现阶段,提示词的编写和使用还是非常重要的。

所谓好的提示词就是清晰地将需求告知AI,让AI理解你的提问,让AI更好地回答的指令。这能让AI和我们彼此都有更好的问答体验,提高交互质量!


二.CO-STAR框架

实际使用demo:

# CONTEXT我想让你帮我推广下我们公司的最新产品,我们公司叫Vamos,新产品为 Demo,是一款新型的电动汽车# OBJECTIVE帮我创建一条微博帖子,目的是吸引人们点击产品链接进行购买# STYLE参照比亚迪汽车等成功公司宣传风格,它们在推广类似产品时的文案# TONE说服性# AUDIENCE(受众群体)我们公司在微博上的主要受众人群是15-35岁之间的人,请针对这一群体在选择汽车产品时的典型关注点来定制这条信息# RESPONSE请保持这条帖子的简洁风格的同时又深具影响力

KIMI:

ChatGPT:

豆包:

CO-STAR框架提供了一种有组织有逻辑的方式为大模型输入所有关键任务信息,确保响应完全针对自己的需求来进行输出。


三.使用分隔符进行文本分段

对于一些复杂对话来说,合理使用分隔符对文本进行分段,对最终模型输出结果效果的影响就越明显。

所谓的分隔符实际上就是可以让大模型辨识到提示词中哪些部分应当被视为一个完整意义的小单元。

在实际使用中,推荐使用XML标签作分隔符。因为大部分大语言模型已经接受了大量包含XML格式的网页内容训练,因此它可以很好地理解XML结构。

实例:一个感知对话情感的分类器

分类以下对话的情感,分为正面和负面两类,根据给出的例子进行分类。请直接给出情感分类结果,不需要添加任何引导性文本。
<classes>正面负面</classes>
<example-conversations>[Agent]: 早上好,今天我能如何帮助您?[Customer]: 这个产品太糟糕了,一点都不像广告上说的那样![Customer]: 我非常失望,希望全额退款。[Agent]: 早上好,今天我能怎么帮您?[Customer]: 嗨,我只是想说我真的对你们的产品印象深刻。它超出了我的期望!</example-conversations>
<example-classes>负面正面</example-classes>
<conversations>[Agent]: 你好!欢迎来到我们的支持。今天我能怎么帮您?[Customer]: 嗨,我只是想让你知道我收到我的订单了,它太棒了![Agent]: 听到这个真好!我们很高兴你对购买感到满意。还有其他我能帮忙的吗?[Customer]: 不,就这些。只是想给一些正面的反馈。谢谢你们的优质服务![Agent]: 你好,感谢你的联系。今天我能怎么帮您?[Customer]: 我对我最近的购买非常失望。这完全不是我所期待的。[Agent]: 很遗憾听到这些。您能提供更多细节以便我帮助您吗?[Customer]: 产品质量差,而且到货晚。我对这次经历非常不满。</conversations>

通过合理使用分隔符,确保大模型精确地响应我们的需求


四.让大模型帮我们分析数据集

大模型不擅长分析的数据类型包括:描述性统计、相关性分析、统计分析以及机器学习等;

擅长的类型

  • 异常检测:基于一个/多个列值,识别不正常的数据;

  • 聚类:将具有相似特征的数据进行分组

  • 跨列关系:识别各列之间的相关性

  • 文本分析:根据主题/情感进行分类(类似上文提到的例子)

  • 趋势分析:在特定时间维度上,识别列中的变化趋势


实例:

# CONTEXT #我目前经营着一家超市,手头有一份包含客户信息的数据集:[出生年份,婚姻状况,收入,子女数量,自上次购物至今的天数,消费金额]。########## OBJECTIVE #我希望你帮我利用这份数据集将我的客户进行分组,随后为我提供对每个群体的市场营销策略,请按照以下步骤操作,且不要编写代码:1. CLUSTERS:利用数据集中的列值对行数据进行聚类,确保同一聚类内的客户在列值上保持相似。而不同聚类的客户则明显不同。确保每一行数据只属于一个聚类。2. CLUSTER_INFORMATION:描述聚类的特征3. CLUSTER_NAME:根据 [CLUSTER_INFORMATION] 解读,为这个客户群体起一个简称4. MARKETING_IDEAS:提出对此群体的营销策略5. REASON:解读这些[MARKETING_IDEAS]为什么对此类群体有效。########## STYLE #商业分析报告########## TONE #专业的、富有技术性的########## AUDIENCE #面向我的投资人以及我的商业伙伴,让他们确信你的营销策略是经过深思熟虑的,并完全能够得到数据支撑。########## RESPONSE:MARKDOWN REPORT(一种文件数据格式) #<对于[CLUSTERS]中的每个聚类>- 客户群组:[CLUSTER_NAME]- 简介:[CLUSTER_INFORMATION]- 营销想法:[MARKETING_IDEAS]- 理由:[REASON]<附录> 提供一个表格,记录每个聚类的行号,以佐证你的分析 [[CLUSTER_NAME],行号列表]。########## START ANALYSIS #如果你已经理解了,请向我请求我的数据集。

我们再生成一个测试数据集

import pandas as pdimport numpy as npimport random
# 设置随机种子以确保结果可复现random.seed(42)np.random.seed(42)
# 生成虚拟数据data = {'出生年份': np.random.randint(1950, 2005, size=1000),# 1950-2004'婚姻状况': np.random.choice(['已婚', '未婚'], size=1000),'收入': np.random.randint(30000, 200000, size=1000),# 收入范围'子女数量': np.random.randint(0, 5, size=1000),# 子女数量0-4'自上次购物至今的天数': np.random.randint(1, 365, size=1000),# 1到364天'消费金额': np.random.uniform(10, 1000, size=1000).round(2)# 消费金额范围}
# 创建 DataFramedf = pd.DataFrame(data)
# 保存为 Excel 文件df.to_excel('test_dataset.xlsx', index=False)

这时复制之前写好的提示词去给大模型洗下脑。

效果:

从回答情况来看 总体上还是起到了一定的辅助作用。

针对此类任务,总结4点技巧:

  • 复杂任务切割成步骤

  • 标记并引用中间输出

  • 优化回答格式

  • 任务指令与数据集分离!

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询