当前位置: 首页 > news >正文

SpringAI动态调整大模型平台

一、添加所用到大模型的配置

#在application.properties中添加配置


#deepseek
spring.ai.deepseek.api-key=你的key
spring.ai.deepseek.chat.options.model=deepseek-chat#阿里云百炼
spring.ai.dashscope.api-key=你的key
spring.ai.dashscope.audio.synthesis.options.model=qwen-plus#本地ollama
spring.ai.ollama.chat.options.model=deepseek-r1:1.5b

二、构造出这些个模型

 HashMap<String, ChatModel> platforms = new HashMap<>();public ChatClientController(OllamaChatModel ollamaChatModel,DashScopeChatModel dashScopeChatModel,DeepSeekChatModel deepSeekChatModel) {platforms.put("ollama", ollamaChatModel);platforms.put("dashscope", dashScopeChatModel);platforms.put("deepseek", deepSeekChatModel);
}

三、动态构造ChatClient参数

  • 在 Spring AI 中, temperature 参数的取值范围通常为‌0到1‌(部分模型可能支持更高值)。
  • 该参数用于控制生成内容的随机性和多样性:
    1.低温‌(接近0):输出更确定,适用于需要高准确性的场景,如法律文本、技术文档等。 ‌
    ‌2.中温‌(如0.5-0.7):平衡随机性与一致性,适合对话生成、创意写作等场景。 ‌
    ‌3.高温‌(接近1):输出更灵活,适用于广告文案、故事创作等需要多样性的任务。 ‌
 /**** @param msg 提示词* @param model 选用哪个模型* @param platform 哪个平台  阿里/ollama/deepseek* @param temperature 温度通常设定在0-1的范围内  double类型   数字越大可以理解为AI思想越活跃* @return*/public String adjustPlatform(String msg, String model, String platform, double temperature) {//得到对应平台的ChatModel ChatModel chatModel = platforms.get(platform);//动态构造出所需要的模型ChatClient chatClient = ChatClient.builder(chatModel).defaultOptions(ChatOptions.builder().model(model).temperature(temperature).build()).build();String content = chatClient.prompt().user(msg).call().content();return content;}

四、效果展示
在这里插入图片描述
五、完整代码

@RestController
@RequestMapping("/chatClient")
public class ChatClientController {HashMap<String, ChatModel> platforms = new HashMap<>();public ChatClientController(OllamaChatModel ollamaChatModel,DashScopeChatModel dashScopeChatModel,DeepSeekChatModel deepSeekChatModel) {platforms.put("ollama", ollamaChatModel);platforms.put("dashscope", dashScopeChatModel);platforms.put("deepseek", deepSeekChatModel);}/**** @param msg 提示词* @param model 选用哪个模型* @param platform 哪个平台  阿里/ollama/deepseek* @param temperature 温度通常设定在0-1的范围内  double类型   数字越大可以理解为AI思想越活跃* @return*/@GetMapping("/adjustPlatform")public String adjustPlatform(String msg, String model, String platform, double temperature) {ChatModel chatModel = platforms.get(platform);//动态构造出所需要的模型ChatClient chatClient = ChatClient.builder(chatModel).defaultOptions(ChatOptions.builder().model(model).temperature(temperature).build()).build();String content = chatClient.prompt().user(msg).call().content();return content;}}
http://www.dtcms.com/a/318978.html

相关文章:

  • 数据结构----栈和队列认识
  • Spring IoC 容器核心流程(面试必懂)
  • SpringMvc的原理深度剖析及源码解读
  • crew AI笔记[1] - 简介
  • list类
  • Spring中用到了哪些设计模式
  • 容器之王--Docker镜像的管理及镜像仓库的构建演练
  • W25Q64模块
  • 智慧园区系统:打造未来城市生活新体验
  • 从周末去哪儿玩到决策树:机器学习算法的生活启示
  • 机试备考笔记 7/31
  • 【数据结构】排序(sort) -- 交换排序(冒泡快排)
  • 接入免费的数字人API接口详细教程!!!——小甲鱼数字人
  • OpenCV的关于图片的一些运用
  • 一个基于 select 实现的多路复用 TCP 服务器程序:
  • Opencv-管理图片
  • 计算机视觉--opencv(代码详细教程)
  • ansible-playbook之获取服务器IP存储到本地文件
  • Spring事务失效场景?
  • 光纤滑环 – 光纤旋转接头(FORJ)- 杭州驰宏科技
  • 科技云报到:热链路革命:阿卡 CRM 的 GTM 定位突围
  • 芯谷科技--高效噪声降低解决方案压缩扩展器D5015
  • 全球化2.0 | 泰国IT服务商携手云轴科技ZStack重塑云租赁新生态
  • 安全守护,温情陪伴 — 智慧养老产品上新
  • Element Plus实现分页查询
  • 码头岸电系统如何保障供电安全?安科瑞绝缘监测及故障定位方案解析
  • Rust爬虫与代理池技术解析
  • NAS技术在县级融媒体中心的架构设计与安全运维浅析
  • VSCode ssh一直在Setting up SSH Host xxx: Copying VS Code Server to host with scp等待
  • 支付宝小程序商城怎么搭?ZKmall开源商城教你借力蚂蚁生态做增长