概述
提示词(Prompts)是引导 AI 模型生成特定输出的输入内容,这些提示词的设计和措辞会显著影响模型的响应。
在 Spring AI 中,与 AI 模型交互的最低层级上,处理提示词的方式有些类似于在 Spring MVC 中管理”视图(View)”。这涉及创建包含动态内容占位符的大量文本,然后根据用户请求或应用程序中的其他代码来替换这些占位符。另一个类比就是包含占位符的 SQL 语句。
随着 Spring AI 的发展,它将引入更高层次的抽象来简化与 AI 模型的交互。本节描述的基础类在角色和功能上可以类比为 JDBC:
- ChatModel 类类似于 JDK 中的核心 JDBC 库。
- ChatClient 类可以类比为 JdbcClient,构建在 ChatModel 之上,通过 Advisor 提供更多高级构造,用于考虑与模型的过去交互、用额外的上下文文档增强提示词,以及引入代理行为。
提示词的结构在 AI 领域随着时间的推移不断演进。最初,提示词只是简单的字符串。后来,它们逐渐包含了特定输入的占位符,例如 AI 模型能识别的 “USER:”。OpenAI 通过将多个消息字符串在处理前按不同角色进行分类,为提示词引入了更结构化的形式。
