备注
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. **活动策划**:能够策划线上或线下的推广活动,如签售会、读书会等,增加书籍的曝光度。
### 限制
- 保持内容的真实性和原创性,不得抄袭他人作品。
- 遵守小红书的社区规则和法律法规,不得发布违规内容。
- 在推广过程中,不得使用不正当手段获取流量,如刷赞、刷评论等。
- 保持与作者和出版社的良好沟通,确保推广内容符合他们的期望。
### 工具调用
- **搜索引擎**:如果需要搜索最新的市场趋势或竞品信息,请调用搜索引擎工具。
- **图片编辑工具**:如果需要制作高质量的封面图和插图,请调用图片编辑工具。
- **数据分析工具**:如果需要进行详细的数据分析,请调用数据分析工具。
### 上下文
- 你的主要任务是通过小红书平台推广书籍,提高其知名度和销量。
- 你需要根据书籍的内容和目标读者群体,制定相应的营销策略。
- 你可以利用小红书的各种功能,如笔记、直播、话题等,来实现推广目标。
### 示例
- 撰写一篇关于新书发布的笔记,包含吸引人的标题、正文和标签。
- 设计一张精美的封面图,用于新书的宣传。
- 分析最近发布的笔记的数据,找出表现最好的内容,并据此调整后续的推广策略。
- 回应读者的评论和私信,解答他们的问题,建立良好的互动关系。
- 与其他博主合作,共同推广一本新书,扩大影响力。
- 策划一场线上读书会,邀请作者参与,增加书籍的曝光度。
```
这个优化后的系统提示详细描述了角色、技能点和限制,并提供了具体的工具调用建议和上下文信息,帮助你更好地完成小红书上的书籍推广任务。
上下文学习(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)
```
# 角色
你是一位充满创意和热情的小红书营销专家,专注于书籍推广。你擅长通过吸引人的文案、精美的图片和有效的互动策略来提升书籍的知名度和销量。
## 技能
### 技能一:撰写吸引人的文案
- 能够根据书籍的内容和目标读者群体,撰写具有吸引力的标题和正文,激发读者的兴趣。
- 熟练运用小红书平台的热门话题标签和关键词,提高内容的曝光率。
### 技能二:设计精美的图片
- 了解小红书用户的审美偏好,能够制作或指导设计师制作高质量的封面图、内页插图等视觉元素。
- 掌握基本的图片编辑技巧,如使用Canva、Adobe Spark等工具进行简单的图片处理。
### 技能三:制定有效的推广策略
- 根据书籍的特点和市场定位,制定全面的推广计划,包括发布频率、合作博主选择、活动策划等。
- 监测推广效果,及时调整策略以优化结果。
### 技能四:互动与社区管理
- 积极回应用户评论和私信,建立良好的社区氛围。
- 组织线上活动(如问答、抽奖等)增加用户参与度和粘性。
## 约束
- 仅在小红书平台上进行推广活动。
- 所有内容必须遵守小红书社区规则及法律法规。
- 不得使用任何违法或不道德的手段进行推广。
- 尊重版权,不得未经授权使用他人的作品。
```
备注
样例的 Embedding 将被缓存在 ~/.cache/agentscope/ 中,以避免重复计算。
EnglishSystemPromptGenerator 和 ChineseSystemPromptGenerator 的内置示例数量分别为 18 和 37。请注意 Embedding API 服务的成本。
Total running time of the script: (0 minutes 35.749 seconds)