上一节学习了spring-ai调用本地ollama,这次继续学习调用远程deepseek

一、pom依赖调整

加入openai的依赖

1 <dependency>
2 <groupId>group.springframework.ai</groupId>
3 <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
4 </dependency>

二、yaml配置调整

其中api-key换成真实的deepseek api key(注:没有的,参考本文最后的截图,去deepseek官网申请1个,非常便宜,早饭吃根油条的钱,就能体验很久)

spring:
ai:
openai:
api-key: sk-***
base-url: https://api.deepseek.com
chat:
options:
model: deepseek-chat
temperature: 0.7

三、注入openai模型

@Bean("openaiClient")
public ChatClient remoteClient(OpenAiChatModel model) {
return ChatClient.builder(model)
.defaultSystem("你是可爱且热情、人见人爱,花见花开的AI助手,中文名字叫小美,英文名字叫Rose,你有一个好朋友,他的网名叫[菩提树下的杨过],请以阿呆的身份回答问题")
.defaultAdvisors(new ConsoleOutputAdvisor())
.build();
}

四、调整Controller 

@Autowired
@Qualifier("openaiClient")
ChatClient openaiClient; @RequestMapping("/openai/chat")
public String openAIChat(String prompt) {
return openaiClient.prompt()
.user(prompt)
.call()
.content();
} @RequestMapping(value = "/openai/chat-stream", produces = "text/html;charset=utf-8")
public Flux<String> openAIChatStream(String prompt) {
return openaiClient.prompt()
.user(prompt)
.stream()
.content();
}

  

注:抛个小问题,如果想自己做1个多用户平台,希望每个用户登录后,动态使用自己的deepseek api-Key,spring-ai并没有提供相应方法,可以动态设置。如果要实现类似功能,可参考 全自助使用Cursor生成的DeepSeek Demo java 项目

文中代码:https://github.com/yjmyzz/spring-ai-sample/tree/day02

spring-ai 学习系列(2)-调用远程deepseek的更多相关文章

  1. Spring Boot 学习系列(10)—SpringBoot+JSP的使

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 解决问题 随着spring boot 框架的逐步使用,我们期望对于一些已有的系统进行改造,做成通用的脚手架, ...

  2. Spring Boot 学习系列(03)—jar or war,做出你的选择

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 两种打包方式 采用Spring Boot框架来构建项目,我们对项目的打包有两种方式可供选择,一种仍保持原有的 ...

  3. Spring Boot 学习系列(09)—自定义Bean的顺序加载

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Bean 的顺序加载 有些场景中,我们希望编写的Bean能够按照指定的顺序进行加载.比如,有UserServ ...

  4. Spring Boot 学习系列(序)—Spring Boot

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Spring Boot? Spring Boot 是由pivotal团队提供的一个基于Spring的全新框架 ...

  5. Spring Boot 学习系列(06)—采用log4j2记录日志

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 为什么选择log4j2 log4j2相比于log4j1.x和logback来说,具有更快的执行速度.同时也支 ...

  6. [eShopOnContainers 学习系列] - 03 - 在远程 Ubuntu 16.04 上配置开发环境

    直接把 md 粘出来了,博客园的富文本编辑器换成 markdown,没啥效果呀 ,先凑合吧.实在不行换地方   # 在远程 Ubuntu 16.04 上配置开发环境 ## 零.因 为什么要用这么麻烦的 ...

  7. Spring Boot 学习系列(05)—自定义视图解析规则

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 自定义视图解析 在默认情况下Spring Boot 的MVC框架使用的视图解析ViewResolver类是C ...

  8. Spring Boot 学习系列(08)—自定义servlet、filter及listener

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 传统的filter及listener配置 在传统的Java web项目中,servlet.filter和li ...

  9. Spring Boot 学习系列(07)—properties文件读取

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 传统的properties读取方式 一般的,我们都可以自定义一个xxx.properties文件,然后在工程 ...

  10. Spring Boot 学习系列(04)—分而治之,多module打包

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 明确功能,各司其职 在一个结构清晰的项目中,一个没有module划分的结构显然不是最佳实践.有人会说可以在同 ...

随机推荐

  1. NOIP集训 P4137 Rmq Problem / mex 题解

    前置指使:可持久化线段树 题解:P4137 Rmq Problem / mex 有一个长度为 \(n\) 的数组 \(\{ a_1,a_2,...,a_n \}\) . \(m\) 次询问,每次询问一 ...

  2. x86花指令

    花指令 参考: https://bbs.kanxue.com/thread-279604.htm#msg_header_h3_21 两种反编译算法 线性扫描算法:逐行反汇编(无法将数据和内容进行区分) ...

  3. 【笔记】PyVis|神经网络数据集的可视化

    文章目录 版本: 应用实例: PyVis的应用: 零.官方教程 一.初始化画布`Network` 二.添加结点 添加单个结点`add_node`: 添加一系列结点`add_nodes`: 三.添加边 ...

  4. linux期末考试题(1)

    linux期末考试题 一.选择题(共20分,每小题2分) 1.以下哪个环境变量表示shell搜索外部命令或程序路径(C) A.ENV B.PWD C.PATH D.ROOT 解答: ENV用于显示当前 ...

  5. BP算法完整推导 2.0 (下)

    上篇主要阐述 BP算法的过程, 以及 推导的 4 大公式的结论, 现在呢要来逐步推导出这写公式的原理. 当理解到这一步, 就算真正理解 BP算法了. 也是先做一个简单的回顾一下, 不是很细, 重点在推 ...

  6. skip

    哇酷哇酷,和你的春天一样稍纵即逝的夏天 藏什么藏呢 自卑吗 你以为是缺点的 恰恰让我喜欢 但要短确实很短 说难是很难 而且烂 恰到好处吧 好男人也没的身手! 为了足以被好男人拯救 我在练习 结果是腿废 ...

  7. 基于First Order Motion与TTS的AI虚拟主播系统全流程实现教程

    前言:多模态虚拟主播的技术革命 在AI内容生成领域,虚拟主播技术正经历从2D到3D.从固定模板到个性化定制的跨越式发展.本文将深入解析如何通过Python技术栈构建支持形象定制与声音克隆的AI虚拟主播 ...

  8. Linux如何进入bios

    如何通过Linux系统进入bios 我们都知道在系统没启动前用按键进入bios,但是如果在启动没启动之前按键失效(bios里面设置的原因). 如果能进入linux系统,那么可以执行 sudo syst ...

  9. RBMQ案例三:发布/订阅模式

    在上篇教程中,我们搭建了一个工作队列,每个任务只分发给一个工作者(worker).在本篇教程中,我们要做的跟之前完全不一样 -- 分发一个消息给多个消费者(consumers).这种模式被称为&quo ...

  10. 【pr】利用lrc快速导入歌曲的歌词

    确保你的bgm是原汁原味的,没有经过变速或剪辑 下载lrc https://www.musicenc.com/ pr不能直接导入lrc,需要将lrc转换成srt https://www.lrccon. ...