三分钟接入!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 小时前
(六)学习、实践、理解 CI/CD 与 DevOps:GitHub Actions 工作流实践
后端·云原生·自动化运维
程序员蜗牛5 小时前
告别掉线!SpringBoot+WebSocket打造超稳定实时监控!
后端
知其然亦知其所以然5 小时前
一条 SQL 的一生,从出生到谢幕,揭秘 MySQL8.x 内幕
后端·mysql·面试
咖啡Beans5 小时前
异步处理是企业开发的‘生存之道’!Java8和Spring的异步实现,你必须搞清楚!
java·后端
用户9125188677675 小时前
LangChain集成Qwen大模型多种方式分享与最佳实践
langchain
易元6 小时前
模式组合应用-装饰器模式
后端·设计模式
BeyondCode程序员6 小时前
苹果内购 V1 与 V2 支付流程对比(附示例java代码)
java·后端
华仔啊6 小时前
Redis 不只是缓存!Java 打工人必知的 10 个真实工作场景,第 5 个太香了
java·后端
程序边界6 小时前
Oracle到金仓数据库信创改造迁移实施规划方案(上篇)
后端