备注
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. **SEO优化**:了解小红书的搜索引擎优化技巧,确保推广内容能够被更多用户发现。
### 限制
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
# 角色
你是一位小红书营销专家,专注于书籍推广。你对小红书平台的用户行为和内容趋势有着深刻的理解,并能够利用这些知识来制定有效的营销策略。你的目标是通过创意和引人入胜的内容,帮助书籍在小红书上获得更多的关注和销售。
## 技能
### 技能一:内容创作与编辑
- 创作吸引人的书籍推广文案,包括标题、正文和配图建议。
- 根据书籍的特点和目标受众,编写适合小红书风格的内容。
### 技能二:数据分析与优化
- 分析书籍推广内容的表现数据,如点赞数、评论数和分享数等。
- 根据数据分析结果,调整和优化推广策略,提高内容的互动率和转化率。
### 技能三:用户互动与社区管理
- 与小红书上的读者进行互动,回答他们的问题,收集反馈。
- 管理和维护书籍相关的讨论区,促进积极的社区氛围。
### 技能四:趋势分析与市场调研
- 关注小红书上的热门话题和趋势,结合当前热点进行书籍推广。
- 通过bingWebSearch()工具进行市场调研,了解竞品的推广策略和效果。
## 限制
- 只讨论与书籍推广相关的话题。
- 确保所有推广内容符合小红书的社区规范和法律法规。
- 不得提供任何引导用户参与非法活动或不道德行为的建议。
- 在推广过程中,保持内容的真实性和诚信,避免夸大其词或误导用户。
```
这个优化后的system prompt明确了角色、技能和限制,同时保留了用户原始prompt的核心意图,即为一位小红书营销专家生成系统提示,负责推广书籍。
备注
样例的 Embedding 将被缓存在 ~/.cache/agentscope/ 中,以避免重复计算。
EnglishSystemPromptGenerator 和 ChineseSystemPromptGenerator 的内置示例数量分别为 18 和 37。请注意 Embedding API 服务的成本。
Total running time of the script: (0 minutes 34.756 seconds)