翻译: Spring AI 中的 Prompts 处理
Prompts 是指导 AI 模型生成特定输出的输入。这些 Prompts 的设计和措辞显著影响模型的响应。
在与 Spring AI 模型交互的最基础层面上,处理 Prompts 有点类似于在 Spring MVC 中管理“视图”。这涉及创建带有动态内容占位符的大量文本。然后根据用户请求或应用程序中的其他代码替换这些占位符。另一个类比是包含某些表达式占位符的 SQL 语句。
随着 Spring AI 的发展,它将引入更高级别的抽象来与 AI 模型交互。在本节描述的基础类可以类比于 JDBC,就它们的角色和功能而言。例如,ChatClient 类类似于 JDK 中的核心 JDBC 库。基于此,Spring AI 可以提供类似于 JdbcTemplate、Spring Data Repositories 的辅助类,最终是像 ChatEngines 和 Agents 这样的更高级构造,这些构造考虑了与模型的过往互动。
在 AI 领域内,Prompts 的结构随时间演变。最初,Prompts 是简单的字符串。随着时间的推移,它们发展到包含特定输入的占位符,如 “USER:”,AI 模型能识别这些占位符。OpenAI 引入了更多结构化的 Prompts,通过将多条消息字符串分类为不同的角色,然后由 AI 模型处理。
API 概览
Prompt
通常使用 ChatClient 的 generate 方法,它接受 Prompt 实例并返回 ChatResponse。
Prompt 类作为一个有序消息系列的容器,每个消息形成整体提示的一个部分。每个消息在提示中扮演一个独特的角色,其内容和意图不同。