三分钟接入!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岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号"软件求生",获取更多技术干货!

相关推荐
追逐时光者5 小时前
一款专门为 WPF 打造的开源 Office 风格用户界面控件库
后端·.net
Lin_Aries_04216 小时前
容器化 Flask 应用程序
linux·后端·python·docker·容器·flask
yuriy.wang7 小时前
Spring IOC源码篇六 核心方法obtainFreshBeanFactory.parseCustomElement
java·后端·spring
Stream_Silver8 小时前
《LangChain入门指南》学习笔记1:第1章 LangChain:开启大语言模型时代的钥匙
笔记·学习·langchain
Eoch778 小时前
HashMap夺命十连问,你能撑到第几轮?
java·后端
每天进步一点_JL8 小时前
🔥 一个 synchronized 背后,JVM 到底做了什么?
后端
杨杨杨大侠8 小时前
Atlas Mapper 教程系列 (8/10):性能优化与最佳实践
java·spring boot·spring·性能优化·架构·系统架构
SamDeepThinking8 小时前
有了 AI IDE 之后,为什么还还要 CLI?
后端·ai编程·cursor
yinke小琪8 小时前
线程池七宗罪:你以为的优化其实是在埋雷
java·后端·面试
我不是混子9 小时前
Spring Boot启动时的小助手:ApplicationRunner和CommandLineRunner
java·后端