架构设计内容分享(一百三十六):Spring AI 项目简介

目录

1、概览

2、Spring AI 的主要概念

2.1、高级的 Prompt 和 AiResponse

3、Spring AI 入门

4、Spring AI 实践

4.1、在 Spring Boot 中注入 AiClient

4.2、使用 PromptTemplate 配置查询

5、Error 处理

6、总结


1、概览

Spring 通过 Spring AI 项目正式启用了 AI(人工智能)生成提示功能。本文将带你了解如何在 Spring Boot 应用中集成生成式 AI,以及 Spring AI 如何与模型互动。

2、Spring AI 的主要概念

首先回顾一下一些关键的领域术语和概念。

Spring AI 最初专注于处理语言输入和生成语言输出的模型。该项目的理念是为开发人员提供一个抽象接口,为将生成式 AI 作为独立组件纳入应用奠定基础。

接口 AiClient 就是这样一个抽象,它有两个基本实现:OpenAI 和 Azure OpenAI

public interface AiClient {
    default String generate(String message);
    AiResponse generate(Prompt prompt);
}

AiClient 为生成函数提供了两个选项。简化版生成函数:generate(String message),使用 String 作为输入和输出,可以避免使用 Prompt 和 AiResponse 类的额外复杂性。

2.1、高级的 Prompt 和 AiResponse

在 AI 领域,Prompt(提示)是指提供给 AI 的文本信息。它由上下文和问题组成,该模型用于生成答案。从 Spring AI 项目的角度来看,Prompt 是一个参数化 Message 列表。

public class Prompt {
    private final List<Message> messages;
    // 构造函数和其他方法
}

public interface Message {
    String getContent();
    Map<String, Object> getProperties();
    MessageType getMessageType();
}

Prompt 使开发人员能够对文本输入进行更多控制。Prompt 模板就是一个很好的例子,它使用预定义文本和占位符集构建。然后,可以使用传递给 Message 构造函数的 Map<String, Object> 值填充它们。

Tell me a {adjective} joke about {content}.

Message 接口还包含有关 AI 模型可处理的消息(Message)类别的高级信息。例如,OpenAI 实现区分会话角色,通过 MessageType 进行映射。对于其他模型,它可以反映消息格式或其他一些自定义属性。更多详情,请参阅 官方文档。

public class AiResponse {
    private final List<Generation> generations;
    // Get 和 Set
}

public class Generation {
    private final String text;
    private Map<String, Object> info;
}

AiResponse 由 Generation(生成)对象列表组成,每个对象都包含来自相应 Prompt(提示)的输出。此外,Generation 对象还提供 AI 响应的元数据信息。

不过,由于 Spring AI 项目仍处于测试阶段,并非所有功能都已完成并文档化。请关注 GitHub repository 中的 issues 进展。

github.com/spring-projects/spring-ai

3、Spring AI 入门

首先,AiClient 与 OpenAI 平台的所有通信都需要 API Key。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之乎者也·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值