.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "build_tutorial/prompt_optimization.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_build_tutorial_prompt_optimization.py: .. _system-prompt-optimization: 系统提示优化 ============================ AgentScope 实现了一个用于优化智能体系统提示的模块。 .. _system-prompt-generator: 系统提示生成器 ^^^^^^^^^^^^^^^^^^^^^^^^ 系统提示生成器使用元提示(Meta prompt)来指导模型根据用户的要求生成系统提示,并允许开发人员使用内置示例或提供自己的示例作为上下文学习(ICL)。 系统提示生成器包括一个 `EnglishSystemPromptGenerator` 和一个 `ChineseSystemPromptGenerator` 模块,它们只在使用的语言上有所不同。 我们以 `ChineseSystemPromptGenerator` 为例,说明如何使用系统提示生成器。 初始化 ^^^^^^^^^^^^^^^^^^^^^^^^ 要初始化生成器,你需要首先在 `agentscope.init` 函数中注册你的模型配置。 .. GENERATED FROM PYTHON SOURCE LINES 26-37 .. code-block:: Python from agentscope.prompt import ChineseSystemPromptGenerator import agentscope model_config = { "model_type": "dashscope_chat", "config_name": "qwen_config", "model_name": "qwen-max", # 通过环境变量导出你的 api 密钥 } .. GENERATED FROM PYTHON SOURCE LINES 38-40 生成器将使用内置的默认元提示来指导大语言模型生成系统提示。 .. GENERATED FROM PYTHON SOURCE LINES 40-50 .. code-block:: Python agentscope.init( model_configs=model_config, ) prompt_generator = ChineseSystemPromptGenerator( model_config_name="qwen_config", ) .. GENERATED FROM PYTHON SOURCE LINES 51-59 我们欢迎用户自由尝试不同的优化方法。我们提供了相应的 `SystemPromptGeneratorBase` 模块,可以通过继承来实现自定义的系统提示生成器。 生成系统提示 ^^^^^^^^^^^^^^^^^^^^^^^^^ 调用生成器的 `generate` 函数来生成系统提示,如下所示。 可以输入一个需求,或者要优化的系统提示。 .. GENERATED FROM PYTHON SOURCE LINES 59-66 .. code-block:: Python generated_system_prompt = prompt_generator.generate( user_input="为一位小红书营销专家生成系统提示,他负责推广书籍。", ) print(generated_system_prompt) .. rst-class:: sphx-glr-script-out .. code-block:: none ```markdown ## 系统提示 ### 角色描述 你是一位小红书营销专家,专注于书籍推广。你的目标是通过创造吸引人的内容来提高书籍的知名度和销量。你需要深入了解书籍的内容、作者背景以及目标读者群体,并能够灵活运用这些信息来设计有效的营销策略。 ### 技能点 - **文案撰写**:能够根据不同类型的书籍(如小说、教科书、专业书籍等)创作出吸引眼球且富有创意的小红书帖子。 - **视觉设计建议**:提出与书籍主题相匹配的图片或视频创意,以增强帖子的吸引力。 - **数据分析**:利用平台提供的分析工具监测帖子的表现情况,包括但不限于点赞数、评论数、分享次数及转化率,根据数据反馈调整策略。 - **趋势追踪**:紧跟小红书上热门话题和发展趋势,确保所发布的内容符合当前流行风向。 - **互动管理**:积极回应粉丝留言,维护良好的社区关系,同时也能有效地处理负面反馈。 ### 限制条件 - 在创建任何内容之前,请确保已经获得了使用相关素材(如封面图片、作者照片等)的授权。 - 遵守所有适用的法律法规及小红书平台规则,不得发布任何违法不良信息。 - 尽量保持内容原创性,避免直接复制他人的作品,除非已获得明确许可。 - 营销活动需尊重用户隐私权,不进行任何形式的骚扰式营销。 ### 工具支持 - 可调用搜索引擎API获取最新行业资讯或竞争对手动态。 - 利用第三方图像编辑软件生成高质量配图。 - 使用官方提供的数据分析工具评估营销效果。 ``` 此优化后的系统提示不仅明确了角色定位和具体技能要求,还加入了一些实际操作中需要注意的原则与限制,同时也指出了完成任务时可能需要用到的支持工具。 .. GENERATED FROM PYTHON SOURCE LINES 67-86 上下文学习(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 上运行。 .. GENERATED FROM PYTHON SOURCE LINES 86-99 .. code-block:: Python 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) .. rst-class:: sphx-glr-script-out .. code-block:: none ``` # 角色 你是一位小红书营销专家,专注于书籍推广。你的任务是通过创造性的内容和策略吸引目标受众,提高书籍的知名度和销量。 ## 所处世界 你在一个社交媒体高度发达的时代工作,小红书作为一个重要的社交平台,聚集了大量的年轻用户,他们对新鲜事物充满好奇,并乐于分享和交流。在这个平台上,内容的质量、创意以及与用户的互动都是成功的关键因素。 ## 人物特质 - **性格**:富有创造力、热情、细心且善于沟通。 - **优点**:具备敏锐的市场洞察力,能够精准捕捉读者兴趣点;擅长利用数据分析优化营销策略。 - **缺点**:有时可能会过于追求完美,导致项目进度延缓。 - **信仰**:相信好故事的力量,致力于让每一本书找到它的读者。 ## 技能 ### 技能1:内容创作 - 根据书籍类型(如小说、非虚构、专业书籍等)及目标读者群体的特点,撰写吸引人的标题和文案。 - 制作高质量图片或短视频,增强视觉吸引力,更好地展示书籍亮点。 ### 抙能2:社群管理 - 建立并维护一个活跃的粉丝社区,定期发布更新,保持与粉丝的良好互动。 - 举办线上活动(如读书会、作者访谈直播等),增加用户参与度和粘性。 ### 技能3:数据分析 - 运用小红书提供的分析工具监测帖子表现,包括但不限于点赞数、评论量、分享次数等指标。 - 根据数据反馈调整内容方向或发布时间,以达到最佳传播效果。 ## 限制 - 确保所有发布的素材均符合版权法律法规要求。 - 在进行任何涉及第三方品牌合作时,必须事先获得授权。 - 遵守小红书社区准则,避免使用不正当手段获取流量。 ``` .. GENERATED FROM PYTHON SOURCE LINES 100-103 .. note:: 1. 样例的 Embedding 将被缓存在 `~/.cache/agentscope/` 中,以避免重复计算。 2. `EnglishSystemPromptGenerator` 和 `ChineseSystemPromptGenerator` 的内置示例数量分别为 18 和 37。请注意 Embedding API 服务的成本。 .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 44.753 seconds) .. _sphx_glr_download_build_tutorial_prompt_optimization.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: prompt_optimization.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: prompt_optimization.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: prompt_optimization.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_