当前位置: 首页 > news >正文

复杂提示词配置文件

当对简单提示词模板进行管理时,只需要使用上python的"""特性即可:

maohao_prompt = """写一个关于一位{type}的故事{other_description}。故事背景:{story_setting}。要求:- 故事中至少包含一个非人类角色。- 故事的结局要有出人意料的反转。- 角色对话要使用俚语。"""

之后进行填充:

print(maohao_prompt.format(type="侦探", other_description=",他失忆了,并且必须解决自己的案件", story_setting="在一个反乌托邦的赛博朋克城市"))

但是当我们的提示词需要不断地更改时,这种形式就不方便修改后即使查看。这个时候可以使用yaml文件进行存储,yaml库是第三方库需要先安装:

pip install pyyaml

prompts.yaml文件内写入:

prompt_name: advanced_story_generation
version: 1.1
author: AI_Assistant# 核心提示词内容
storyPrompt: |-写一个关于一位{type}的故事{other_description}。故事背景:{story_setting}。要求:- 故事中至少包含一个非人类角色。- 故事的结局要有出人意料的反转。- 角色对话要使用俚语。elainaPrompt: |-伊蕾娜的风格通常是:第一人称叙事:她以自己的视角讲述故事。观察者角色:她通常不会过多干预,而是记录和旁观她所遇到的各种人和事。带着一些傲慢和自恋:她经常会夸赞自己的美貌和魔法才能。简洁而富含哲理:她的故事往往短小精悍,结尾常常伴随着一句富有深意的话。轻松的、旅行者的口吻:就像在写日记或游记。伊蕾娜风格的提示词模板“你好。没错,我就是你眼前的这位旅人,人称‘灰之魔女’的伊蕾娜。我在旅途中见证了各种各样的事情,美好的、残酷的、平淡的。现在,请你为我讲述一段新的旅程。[故事背景]请描述我来到一个名为 {location} 的地方。这个地方有何独特之处?这里的人们有什么特别的风俗习惯?[核心事件]在这个地方,我偶然遇到了一件 {event}。请描述这个事件的起因和经过。我作为一名旅人,是如何观察到这一切的?我可能与事件中的某个角色进行了简短的交谈,但请记住,我通常只是旁观者,不会主动介入。[故事结局]这个事件的结局是 {outcome}[伊蕾娜的结语]最后,请用我的风格,以一句话总结这段旅程。这句话应该简洁、略带自恋,并包含一些对人性和世事的思考。例如:“好了,下一站去哪儿呢?旅途还很漫长,我的故事也才刚刚开始。”“真是个有趣的地方。不过,我可没时间一直留在这里。”“世间万物,总有其美妙之处,但有些事,还是不要深究为好。”

yaml文件中:

  • |:保留换行符。会把多行文本原封不动地存储为字符串,包括输入的每一个换行。默认文本末尾保留一个换行符。
  • |-:保留换行符,同|,但是默认文本末尾无多余换行符。
  • >:折叠换行符。会将连续的换行符替换为一个空格,而将空行(两个连续的换行符)替换为单个换行。

导入文件:

import yamlwith open('prompts.yaml', 'r', encoding='utf-8') as file:prompts = yaml.safe_load(file)

结合python的format方法动态填充模板:

storyPrompt = prompts['storyPrompt']
type = "侦探"
other_description = ",他失忆了,并且必须解决自己的案件"
story_setting = "在一个反乌托邦的赛博朋克城市"
print(storyPrompt.format(type=type, other_description=other_description, story_setting=story_setting))elainaPrompt = prompts['elainaPrompt']print(elainaPrompt.format(location="全是魔法植物的城镇", event="一个被施了恶咒的古老雕像", outcome="雕像的诅咒被打破了"))

如果更加复杂,仅仅动态填充难以实现,那么可能需要结合上函数或者Jinja2来进行实现。

Jinia2是用{{}}进行占位,有比python的format更加丰富的功能。

http://www.dtcms.com/a/325541.html

相关文章:

  • wpf问题记录
  • 重学React(五):脱围机制一
  • 关于JavaScript 性能优化的实战指南
  • React 19 通用 ECharts 组件
  • 【牛客刷题】REAL809 转化
  • GPT-5越狱与零点击AI代理攻击:云与IoT系统面临新型威胁
  • 龙虎榜——20250811
  • HTTPS的应用层协议
  • 数据类型 hash
  • 浏览器CEFSharp+X86+win7 之 测试抖音小店订单抓取(八)
  • 秋天落叶可视化
  • 【BFS 树状数组】P9026 [CCC 2021 S4] Daily Commute|普及+
  • DCA1000使用网线采集数据时的注意事项
  • 用于水T1值和脂肪分数量化的上半身自由呼吸磁共振指纹成像|文献速递-医学影像算法文献分享
  • 【软考中级网络工程师】知识点之 TCP 协议深度剖析
  • JavaEE初阶2.0
  • Linux Web服务器与WordPress部署笔记
  • Linux文件描述符相关知识
  • 一周学会Matplotlib3 Python 数据可视化-绘制直方图(Histogram)
  • Linux-常用命令
  • Windows文件时间修改指南:从手动到自动化
  • 10种经典学习方法的指令化应用
  • 【lucene】文档id docid
  • 在CentOS 7上将PostgreSQL数据库从默认路径迁移到自定义目录
  • Qwen-Image:通义团队新开源超强中文文生图模型(技术报告解读)
  • 【C++】哈希表的实现(unordered_map和unordered_set的底层)
  • 药用植物甾体皂苷生物合成途径研究进展--文献精读158
  • fwrite fread与流定位相关接口
  • CoreShop商城框架开启多租户(1)
  • 下一个排列 的 思路总结