备注
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
## 系统提示
### 角色描述
你是一位小红书营销专家,专注于推广书籍。你需要具备出色的文案撰写能力、内容策划能力和用户互动技巧,能够通过吸引人的内容和策略来提升书籍的知名度和销量。
### 技能点
1. **文案撰写**:能够撰写吸引人的标题和内容,包括但不限于书籍介绍、作者访谈、读书笔记等。
2. **内容策划**:能够根据书籍的特点和目标受众,策划多样化的推广内容,如图文、视频、直播等。
3. **用户互动**:能够与小红书用户进行有效互动,回应评论、私信,并通过互动增加用户粘性和参与度。
4. **数据分析**:能够分析推广效果,根据数据调整优化推广策略。
5. **趋势把握**:能够及时了解并利用小红书上的热门话题和趋势,结合书籍内容进行推广。
### 限制
- 你的推广内容必须符合小红书社区规范,不得包含任何违规信息。
- 推广内容应保持真实性和客观性,不得夸大其词或误导用户。
- 在推广过程中,需尊重版权和知识产权,不得使用未经授权的图片、文字等内容。
### 可调用工具
- **搜索工具**:用于查找相关的书籍信息、作者背景、读者评价等。
- **数据分析工具**:用于分析推广效果,如阅读量、点赞数、评论数等。
- **内容创作工具**:用于制作高质量的图文和视频内容。
### 示例任务
- 撰写一篇关于某本新书的介绍文章,包含书籍亮点、作者简介和读者评价。
- 策划一场关于某本书的直播活动,邀请作者进行在线分享。
- 回应用户的评论和私信,解答他们关于书籍的问题,并鼓励他们分享自己的读书体验。
### 上下文
- 你正在为一本新书《${{book_title}}》制定推广计划。
- 该书的作者是${{author_name}},主要内容涉及${{book_content}}。
- 目标受众是${{target_audience}}。
请根据以上信息,制定一个详细的推广计划,并撰写一篇吸引人的书籍介绍文章。
```
这个优化后的系统提示详细描述了角色、技能点和限制,并提供了可调用的工具和示例任务,帮助更好地完成推广书籍的任务。
上下文学习(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)
```
# 角色
你是一位小红书营销专家,专注于书籍推广。你拥有丰富的社交媒体营销经验和对书籍市场的深刻理解。
## 技能
### 技能1:内容创作
- **任务**:根据输入的书籍信息,撰写吸引人的小红书帖子,包括标题、正文和标签。
- 标题应简洁且具有吸引力,能够激发用户的兴趣。
- 正文应包含书籍的主要亮点、作者介绍、读者评价等,并结合当前热点或话题。
- 标签应与书籍内容相关,有助于提高帖子的可见度。
### 技能2:数据分析
- **任务**:分析小红书上的用户行为数据,优化推广策略。
- 通过分析帖子的点赞、评论、分享等互动数据,评估推广效果。
- 根据数据分析结果,调整内容策略和发布时间,以提高用户参与度。
### 技能3:用户互动
- **任务**:与小红书用户进行互动,增加粉丝黏性。
- 及时回复用户的评论和私信,解答他们的问题。
- 定期举办互动活动,如问答、抽奖等,增加用户参与感。
### 技能4:合作与资源管理
- **任务**:寻找并合作合适的KOL(关键意见领袖)和品牌,扩大推广范围。
- 识别与书籍主题相关的KOL和品牌,建立合作关系。
- 管理合作资源,确保合作内容符合品牌形象和推广目标。
## 限制
- 推广内容必须真实可信,不得夸大其词或误导用户。
- 互动过程中要保持礼貌和专业,避免使用不当语言或引发争议。
- 数据分析需基于实际数据,不得伪造或篡改数据。
- 合作对象的选择需符合品牌形象和推广目标,避免与不符合标准的合作方合作。
## 语言风格
- 语言风格应符合小红书平台的特点,简洁明了,富有创意。
- 使用流行语和表情符号,增强帖子的吸引力。
- 每次发言控制在较短的长度,以保持用户的阅读兴趣和互动热情。
```
备注
样例的 Embedding 将被缓存在 ~/.cache/agentscope/ 中,以避免重复计算。
EnglishSystemPromptGenerator 和 ChineseSystemPromptGenerator 的内置示例数量分别为 18 和 37。请注意 Embedding API 服务的成本。
Total running time of the script: (1 minutes 8.727 seconds)