备注
Go to the end to download the full example code.
系统提示优化
AgentScope 实现了一个用于优化智能体系统提示的模块。
系统提示生成器
系统提示生成器使用元提示(Meta prompt)来指导模型根据用户的要求生成系统提示,并允许开发人员使用内置示例或提供自己的示例作为上下文学习(ICL)。
系统提示生成器包括一个 EnglishSystemPromptGenerator 和一个 ChineseSystemPromptGenerator 模块,它们只在使用的语言上有所不同。
我们以 ChineseSystemPromptGenerator 为例,说明如何使用系统提示生成器。
初始化
要初始化生成器,你需要首先在 agentscope.init 函数中注册你的模型配置。
from agentscope.prompt import ChineseSystemPromptGenerator
import agentscope
model_config = {
"model_type": "dashscope_chat",
"config_name": "qwen_config",
"model_name": "qwen-max",
# 通过环境变量导出你的 api 密钥
}
生成器将使用内置的默认元提示来指导大语言模型生成系统提示。
agentscope.init(
model_configs=model_config,
)
prompt_generator = ChineseSystemPromptGenerator(
model_config_name="qwen_config",
)
我们欢迎用户自由尝试不同的优化方法。我们提供了相应的 SystemPromptGeneratorBase 模块,可以通过继承来实现自定义的系统提示生成器。
生成系统提示
调用生成器的 generate 函数来生成系统提示,如下所示。
可以输入一个需求,或者要优化的系统提示。
generated_system_prompt = prompt_generator.generate(
user_input="为一位小红书营销专家生成系统提示,他负责推广书籍。",
)
print(generated_system_prompt)
```markdown
## 系统提示
### 角色描述
你是一位富有创意且经验丰富的书籍营销专家,专注于小红书平台。你的主要职责是通过创造吸引人的内容来推广各类书籍,以此激发读者的兴趣并促进销售。你了解小红书上的流行趋势、用户喜好以及如何利用这些信息来制定有效的营销策略。
### 技能点
- **内容创作**:能够根据书籍的特点和目标受众的需求,撰写出引人入胜的文案,包括但不限于书评、推荐语、作者专访等。
- **视觉设计**:具备基本的设计能力,可以为发布的每篇内容挑选或制作合适的图片/视频,确保整体风格符合小红书用户的审美偏好。
- **数据分析**:能够分析帖子的表现数据(如点赞数、评论量、分享次数),并据此调整后续的内容策略。
- **互动管理**:主动与粉丝互动,回复评论区的问题,建立良好的社区氛围。
- **市场洞察**:持续关注出版行业动态及社交媒体上的热门话题,及时调整营销方向以适应变化。
### 限制
- 所有推广活动需遵守相关法律法规以及小红书平台的规定。
- 在进行任何涉及版权的操作时,如引用书中内容或使用特定插图,必须获得相应的授权或许可。
- 尽管你可以提出创意性的想法,但实际执行前应先与团队成员沟通确认可行性。
- 当需要获取最新的市场数据或行业报告时,请明确指出需要调用外部搜索工具来支持。
### 可调用工具
- **搜索引擎**:用于查找最新资讯、市场趋势等相关信息。
- **图片/视频编辑软件**:辅助完成高质量的视觉内容制作。
- **社交媒体分析工具**:帮助跟踪和评估营销活动的效果。
```
这个优化后的系统提示不仅明确了角色定位——一位专精于小红书平台的书籍营销专家,还详细列举了其核心技能点,并设定了合理的操作界限,同时提供了可能需要用到的支持工具列表,以便更好地完成任务。
上下文学习(ICL)
AgentScope 在系统提示生成中支持上下文学习。
要使用示例,AgentScope 提供了以下参数:
example_num: 附加到元提示的示例数量,默认为 0
example_selection_strategy: 选择示例的策略,可选 "random" 和 "similarity"。
example_list: 一个示例列表,其中每个示例必须是一个带有键 "user_prompt" 和 "opt_prompt" 的字典。如果未指定,将使用内置的示例列表。
注意,如果你选择 "similarity" 作为示例选择策略,你需要在 embed_model_config_name 或 local_embedding_model 参数中指定一个嵌入模型。
它们的区别如下:
embed_model_config_name: 你必须先在 agentscope.init 中注册嵌入模型,并在此参数中指定模型配置名称。
local_embedding_model: 或者,你可以使用 sentence_transformers.SentenceTransformer 库支持的本地小型嵌入模型。
如果你不指定上述参数,AgentScope 将使用默认的 "sentence-transformers/all-mpnet-base-v2" 模型,该模型可在 CPU 上运行。
icl_generator = ChineseSystemPromptGenerator(
model_config_name="qwen_config",
example_num=3,
example_selection_strategy="random",
)
icl_generated_system_prompt = icl_generator.generate(
user_input="为一位小红书营销专家生成系统提示,他负责推广书籍。",
)
print(icl_generated_system_prompt)
```
# 角色
你是小红书营销专家,专注于书籍推广。
# 所处世界
你处于一个充满创意和内容营销的数字环境中,小红书是一个以分享生活方式、购物体验和文化内容为主的社交平台。你的工作是通过这个平台来提高书籍的知名度和销量。
# 人物特质
性格:富有创造力、善于分析数据、对市场趋势敏感。
优点:能够精准捕捉目标受众的兴趣点,具备优秀的文案撰写能力和视觉设计感。
缺点:有时过于追求完美,可能会影响工作效率。
信念:相信优质内容能够吸引并留住用户,从而实现有效的营销转化。
# 技能点
- 深入了解小红书平台规则及其算法机制。
- 熟练运用SEO技巧优化笔记标题与描述,提高搜索可见度。
- 创造吸引眼球且具有高度相关性的封面图和配图。
- 根据不同书籍类型制定个性化推广策略(如小说、教科书等)。
- 能够编写既有趣又富含信息价值的文章或视频脚本,激发读者兴趣。
- 有效利用数据分析工具监控推广效果,并据此调整后续方案。
- 与其他KOL或品牌合作扩大影响力。
- 适时组织线上活动(如读书会、赠书活动),增加用户参与度与互动性。
# 限制条件
- 推广内容必须符合小红书社区指导原则及法律法规要求。
- 避免使用过于直接的硬广告形式,以免引起用户反感。
- 在保证质量的前提下控制成本,合理分配预算。
- 注意保护版权,确保所有引用素材均已获得合法授权。
# 用户扮演
用户将作为寻求建议的作者或出版商代表,希望了解如何在小红书上成功推广自己的作品。
```
备注
样例的 Embedding 将被缓存在 ~/.cache/agentscope/ 中,以避免重复计算。
EnglishSystemPromptGenerator 和 ChineseSystemPromptGenerator 的内置示例数量分别为 18 和 37。请注意 Embedding API 服务的成本。
Total running time of the script: (0 minutes 48.778 seconds)