三分钟接入!SpringAI 玩转 Perplexity 聊天模型实战



大家好呀,我是爱折腾的31岁的大哥哥

上周末在家煮火锅的时候,我突然灵光一闪:既然前阵子我们已经玩过 SpringAI 接入 Ollama、Mistral、Groq、NVIDIA 的聊天模型,那这次不如来点不一样的------把 Perplexity AI 聊天模型接到 Spring 项目里!

结果一搞,还真发现里面有不少有意思的点:比如 自动配置超级丝滑 ,比如 函数调用支持 ,甚至连 多模态能力 都能玩。今天这篇文章,我就带大家一步步走一遍完整的流程,手把手把 Perplexity 聊天模型"请进"Spring Boot 项目里。

Perplexity AI

先聊聊主角 Perplexity AI

你可能听过它是一个"搜索+对话"的智能助手,和单纯聊天的模型不同,Perplexity 最大的特点是 结合实时搜索结果,回答问题时会带上参考资料链接,特别适合做"知识型对话"或"需要外部数据支持"的场景。

而且!它也开放了 API,可以像用 OpenAI、Anthropic 一样,在后台用 HTTP 调用它的聊天接口。

这就意味着:我们完全可以通过 SpringAI 来做一层封装,让业务开发更顺手。

前提条件

万事开头先准备。想要在 Spring Boot 项目里用 Perplexity 聊天模型,先得满足几个前提条件:

  1. 申请 API Key
  2. 去 Perplexity AI 官网申请一个开发者 Key,记得妥善保存。
  3. Spring Boot 项目
  4. 建议 Spring Boot 3.x(我用的是 3.3.x),因为 SpringAI 本身就是紧密跟随 Spring Boot 版本迭代的。
  5. JDK 版本
  6. 至少 Java 17 起步,否则很多依赖不兼容。

准备完这些,就能开始动手啦~

添加仓库和 BOM

既然是 SpringAI,自然少不了在 pom.xml 里加依赖。Spring 官方已经帮我们准备了 Spring AI BOM,只需要在父依赖里加一行,就能自动管理版本。

然后在依赖里引入 Perplexity Starter

这样就能自动装配了,不用手写 Bean,很省心。

自动配置

Spring Boot 的精髓就是"约定大于配置"。

有了 starter,Spring 会自动帮我们装配 PerplexityChatClient,只要配置好 application.yml 就能用。比如:

是不是很丝滑?

这里我特意选了 llama-3.1-sonar-small-128k-chat 作为模型,它是 Perplexity 提供的高效聊天模型之一。

聊天属性

SpringAI 给 Perplexity Starter 准备了很多配置属性,可以用来调节重试、连接、以及聊天本身的细节。

我把它们分成三类:重试属性、连接属性、配置属性,下面用表格给大家列出来。

1.、重试属性

2.、连接属性

3.、配置属性

这些参数的好处是:可以全局调,也可以在运行时动态覆盖。

运行时选项

假如你在全局配置里设了一个默认模型,但在业务逻辑里想临时换一个怎么办?

没问题,SpringAI 的 ChatClient 支持在运行时传入 ChatOptions:

这样就能一边保持默认配置,一边灵活切换。

函数调用

Perplexity 也支持函数调用(Function Calling),这个功能在做"智能助手"时特别有用,比如让模型帮我们自动调用天气接口。

SpringAI 封装得很优雅,只需要定义接口,然后标注 @Service 即可。例如:

然后在 ChatClient 调用时:

模型会智能决定是否调用 getWeather,最终返回带上下文的回答。是不是很炫酷?

多模态

Perplexity 的 API 也支持多模态输入,意思就是:不仅能处理文字,还能结合图片。

在 SpringAI 里也能这样写:

模型会返回对图片的理解。这对做图文问答、内容审核,甚至电商商品描述生成,都特别实用。

示例控制器

光写配置还不过瘾,我们来写个小 Demo Controller。

启动后访问:

http://localhost:8080/chat?question=讲个冷笑话

模型就会乖乖回你一段回答,丝滑无比。

支持的模型

最后来看看 Perplexity 官方支持的模型(部分常用的列一下):

选择哪个,要根据你的业务需求来定:

  • 如果要高并发、快速响应,可以选 small
  • 如果要高质量、支持复杂问答,就选 largehuge

总结

到这里,Perplexity 聊天模型就被我们完整接进 Spring Boot 里了 。

今天我们从 Perplexity AI 的特点 开始,一路聊到:

  • 前提条件准备
  • Maven 仓库和 BOM
  • 自动配置
  • 聊天属性(重试、连接、配置)
  • 运行时选项
  • 函数调用
  • 多模态
  • 示例控制器
  • 支持的模型

整个流程走下来,我最大的感受是:SpringAI 的封装真香

以前我们可能要自己拼 HTTP 请求、写一堆 DTO,现在只要加个 starter,几行配置,就能愉快地和模型聊天。

未来我打算做一个小项目,用 Perplexity + SpringAI 做一个 "智能调研助手" :输入一个话题,模型会帮你拉最新的资料,再总结成一篇 Markdown 报告。到时候再写文章和大家分享。

END

各位小伙伴,如果你也在研究 SpringAI,或者想要把 AI 模型用在自己的项目里,不妨先试试 Perplexity,说不定能让你眼前一亮 。

那么问题来了:

你觉得 Perplexity 更适合做 搜索增强助手 ,还是 通用聊天机器人呢?

评论区见~

我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号"软件求生",获取更多技术干货!

相关推荐
码字的字节17 分钟前
Spring Cloud服务注册与发现(一):手把手搭建Eureka Server,详解高可用配置
spring·spring cloud·eureka
大厂资深架构师20 分钟前
Spring Cloud Eureka在后端系统中的服务剔除策略
spring·spring cloud·ai·eureka
掘金者阿豪40 分钟前
关系数据库迁移的“暗礁”:金仓数据库如何规避数据完整性与一致性风险
后端
ServBay1 小时前
一个下午,一台电脑,终结你 90% 的 Symfony 重复劳动
后端·php·symfony
sino爱学习1 小时前
高性能线程池实践:Dubbo EagerThreadPool 设计与应用
java·后端
孤舟晓月1 小时前
Langchain 1.0后astream_events事件类型及生命周期简析
langchain·大模型·langgraph
颜酱1 小时前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
掘金者阿豪1 小时前
UUID的隐形成本:一个让数据库“慢下来”的陷阱
后端
用户084465256372 小时前
Docker 部署 MongoDB Atlas 到服务端
后端
玄同7652 小时前
我的 Trae Skill 实践|使用 UV 工具一键搭建 Python 项目开发环境
开发语言·人工智能·python·langchain·uv·trae·vibe coding