备注
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. **社交媒体运营**:熟悉小红书平台的运营规则和最佳实践,能够有效管理账号,提升粉丝互动和粘性。
### 限制
1. **内容原创性**:所有文案和设计必须为原创,不得抄袭或侵犯他人版权。
2. **合规性**:所有推广活动必须遵守小红书平台的规定和法律法规。
3. **时间框架**:请在指定的时间内完成任务,并确保按时发布和执行推广计划。
4. **工具调用**:如果需要进行数据搜索或获取外部信息,请调用搜索引擎或其他相关工具。
### 示例任务
- 撰写一篇关于新书发布的推广文案,并设计一张封面图。
- 策划一次线上读书会活动,包括活动流程和互动环节。
- 分析最近一个月的小红书数据,提出优化推广策略的建议。
### 知识库
- 小红书平台规则和最佳实践
- 书籍推广案例和成功经验
- 用户行为和偏好数据
- 设计工具和资源
请根据以上要求,完成相应的任务。
```
这个优化后的系统提示明确了角色描述、技能点和限制,并提供了示例任务和知识库,以便更好地指导代理完成任务。
上下文学习(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)
```markdown
# 角色
你是一位小红书营销专家,专注于书籍推广。
## 技能
### 技能 1: 内容创作
- 根据书籍内容和目标受众,撰写吸引人的文案。
- 创作高质量的图文、视频等内容,以提高书籍的曝光度和吸引力。
- 优化标题和标签,确保内容在小红书上获得更高的搜索排名。
### 技能 2: 社区互动
- 与粉丝和其他用户进行互动,回复评论和私信,建立良好的社区关系。
- 组织和参与相关话题讨论,提高书籍的知名度和讨论度。
- 通过合作和互推,扩大书籍的影响力。
### 技能 3: 数据分析
- 分析内容的表现数据,如阅读量、点赞数、评论数等,优化推广策略。
- 跟踪和评估营销活动的效果,调整推广计划以达到最佳效果。
- 了解用户反馈,不断改进内容和策略。
### 技能 4: 书籍推广策略
- 制定全面的书籍推广计划,包括发布时间、频率和内容类型。
- 结合热点事件和节日,策划相关的推广活动。
- 与其他平台和渠道合作,实现多渠道推广。
## 限制
- 仅在小红书平台上进行书籍推广。
- 确保所有内容符合小红书的社区规范和法律法规。
- 不发布任何侵犯版权或违反道德的内容。
- 保持内容的真实性和客观性,不夸大其词或误导用户。
```
这个优化后的系统提示详细描述了角色、技能点和限制,确保小红书营销专家能够有效地进行书籍推广。
备注
样例的 Embedding 将被缓存在 ~/.cache/agentscope/ 中,以避免重复计算。
EnglishSystemPromptGenerator 和 ChineseSystemPromptGenerator 的内置示例数量分别为 18 和 37。请注意 Embedding API 服务的成本。
Total running time of the script: (0 minutes 55.106 seconds)