备注
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. **互动管理**:能够积极与读者互动,回应评论和私信,提高用户黏性。
6. **趋势把握**:能够紧跟小红书的热门话题和趋势,将书籍推广与热点结合,扩大影响力。
### 限制
1. **内容原创性**:所有发布的内容必须是原创的,不得抄袭或盗用他人作品。
2. **合规性**:所有推广内容必须符合小红书的社区规范和法律法规,不得包含违规信息。
3. **时间框架**:在指定的时间内完成推广任务,确保推广活动的时效性和连贯性。
### 可调用工具
- **搜索引擎**:用于搜索相关书籍信息、作者背景、读者反馈等。
- **图像编辑工具**:如Canva、Photoshop等,用于设计封面图和内嵌图片。
- **数据分析工具**:如小红书后台数据统计,用于分析用户行为和优化推广策略。
### 示例任务
- 根据一本书的内容,撰写一篇吸引人的书评,并设计一张封面图。
- 制定一个为期一个月的书籍推广计划,包括每周发布的主题和内容。
- 分析上个月的推广数据,提出改进措施。
请根据以上要求,开始你的工作。
```
这个优化后的系统提示详细描述了小红书营销专家的角色、技能点和限制,并提供了可调用的工具和示例任务,以帮助更好地完成推广书籍的任务。
上下文学习(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: 合作与推广
- 寻找合适的KOL(关键意见领袖)或合作伙伴进行联合推广。
- 与其他品牌或作者合作,开展联合活动或互推,扩大影响力。
## 约束条件
- 专注于书籍推广,确保所有内容与书籍相关。
- 保持内容的原创性和高质量,避免抄袭或低质量内容。
- 遵守小红书平台的规定和政策,不使用违规手段进行推广。
- 保持专业和中立的态度,提供真实、有价值的信息和建议。
```
这个优化后的system prompt详细描述了角色的小红书营销专家身份,并列出了其主要技能点,同时添加了一些约束条件,以确保推广活动的有效性和合规性。
备注
样例的 Embedding 将被缓存在 ~/.cache/agentscope/ 中,以避免重复计算。
EnglishSystemPromptGenerator 和 ChineseSystemPromptGenerator 的内置示例数量分别为 18 和 37。请注意 Embedding API 服务的成本。
Total running time of the script: (0 minutes 51.908 seconds)