提示工程101第三课:提示模板和变量


随着 AI 语言模型的不断进步,设计有效的提示对于获取期望的输出至关重要。提示模板Prompt Template)和变量具有以下优势:

  • 可复用性:模板可在不同场景下重复使用,节省时间并确保一致性。

  • 灵活性:变量支持动态内容插入,使提示能够适应各种情况。

  • 复杂性管理:模板可以处理复杂结构,包括条件逻辑和循环,使 AI 交互更加智能化。

  • 可扩展性:随着应用规模扩大,结构良好的模板有助于管理和维护大量提示内容。


本教程旨在帮助学习者掌握创建强大且灵活的提示模板的技能,从而提升他们在 AI 语言模型中的应用能力。


本教程全面介绍了在 AI 语言模型中创建和使用带变量的提示模板的方法。重点讲解如何利用 Python 在 LangChain 和 JinJa2 中的提示模板引擎构建灵活、可复用的提示结构,以便动态插入内容。教程还演示了如何使用这些高级提示技巧与阿里的 Qwen 模型交互。



LangChain 字符串提示模板  




LangChain 中的 PromptTemplate 将字典作为输入,其中每个键代表提示模板中要填写的变量。最终输出是一个字符串。



字典的键理论上可以任意多:





Jinja2 提示模板  



Jinja2 是 Python 中的一个强大模板引擎,常用于动态生成文本,包括 HTML、配置文件,以及在 AI 领域中的提示模板


在 LLM(大语言模型)应用中,Jinja2 允许动态插入变量使用条件语句循环,从而构建灵活、可复用的提示模板。


首先我们写一个 Jinja2PromptTemplate 类:



然后便可以像使用 LangChain 的 PromptTemplate 那样使用了,不过这里变量要放到两个花括号中,即 {{ var }}



接下来我们学习一下 Jinja2 的高级功能,这些功能目前 LangChain 的 PromptTemplate 是不具备的。


动态插入变量




在提示模板中使用列表


下面是在 LangChain 中使用列表的案例,现在你可能看不到有什么特殊:



但是 Jinja2 支持在提示模板中使用循环:




本文源代码:

https://github.com/realyinchen/PromptEngineering/blob/main/03-prompt-templates-variables.ipynb

查阅此前文章:

   《提示工程101第二课:基础的提示结构》

   《提示工程101第一课:基础入门》

文章来源:PyTorch研习社







(文:PyTorch研习社)

欢迎分享

发表评论