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

spring-ai-alibaba 1.0.0.2 学习(三)——配置

与spring-ai接入的其他大模型一样,spring-ai-alibaba也有大模型的通用配置和个性化配置

最小化样例

我们如果想要进行模型配置,有三种方式

第一种:通过配置文件自动装配

spring.ai.dashscope.chat.options.model=qwen-plus

通过上述配置,我们指定大模型型号为qwen-plus,生效的前提是在相关AutoConfiguration包中使用该属性进行了Bean属性声明

第二种:创建ChatClient时配置

    chatClient = builder.defaultOptions(DashScopeChatOptions.builder().withModel("qwen-plus").build()).build();

第三种:调用大模型时配置

    @GetMapping("/option")public String chat(String input) {return chatClient.prompt().options(DashScopeChatOptions.builder().withModel("qwen-plus").build()   ).user(input).call().content();}

上述三种方法优先级依次提高,调用大模型时的配置最高,会覆盖其他配置

进阶知识

配置查找

那么知道了如何使用配置,我们如何确定spring-ai-alibaba中是否存在某个配置呢?

1)查看相关Options类

例如我们想对百炼大模型进行配置,找到DashScopeChatModel类中的配置类DashScopeChatOptions,可以查看其中有哪些配置项

但是此方法只适用于前面提到的第二种和第三种配置方法(defaultOptions和options),如果想要使用第一种配置方法(配置文件),如何找到类似spring.ai.dashscope.chat.options.model的配置名称?可以通过后面这两种方法

2)查看spring-configuration-metadata.json文件

我们可以查看相关AutoConfiguration包中的spring-configuration-metadata.json文件,该文件包含了此包用到的配置属性

例如,我们可以在spring-ai-alibaba-autoconfigure-dashscope包中的spring-configuration-metadata.json,通过搜索DashScopeChatOptions类找到spring.ai.dashscope.chat.options.model的配置

    {"name": "spring.ai.dashscope.chat.options.model","type": "java.lang.String","sourceType": "com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions"}

ps:双击shift,然后输入配置名也可以跳转到spring-configuration-metadata.json文件对应的位置

3)跟踪自动配置类

我们可以通过自动配置类的创建方法,跟踪其参数来源,结合ConfigurationProperties注解,确认其配置名称

例如,我们可以在spring-ai-alibaba-autoconfigure-dashscope包中的DashScopeChatAutoConfiguration类中找到百炼大模型DashScopeChatModel的创建方法,其入参中包含DashScopeConnectionProperties和DashScopeChatProperties两个参数类

DashScopeChatProperties上注解@ConfigurationProperties("spring.ai.dashscope.chat")表明其属性前缀为spring.ai.dashscope.chat,然后在其options属性中找到model,确认其最终配置名称为spring.ai.dashscope.chat.options.model

路线为:对应自动配置包 -> 对应自动配置类 -> 对应自动配置方法 -> 参数类 -> 注解+属性名

存在问题

文档较少:spring-ai-alibaba相比spring-ai增加了一些配置,然而在spring-ai-alibaba官方网站中,底层功能的相关教程仍然使用的spring-ai进行教学,并没有太多关于这些配置项的说明,我们只能类比其他模型的配置来估计这些配置的作用或通过源码查看

api-key问题:api-key尽量直接配置spring.ai.dashscope.api-key

如果只配置spring.ai.dashscope.chat.api-key,会报错提示spring.ai.dashscope.audio.synthesis.api-key未配置,即使你并不想使用这个模型(该模型配置没有enabled配置项)

而且即使是配置了spring.ai.dashscope.embedding.enabled=false,不配置spring.ai.dashscope.embedding.api-key的话也会报错

http://www.lryc.cn/news/577121.html

相关文章:

  • Transformer超详细全解!含代码实战
  • Python爬虫-爬取汽车之家全部汽车品牌及车型数据
  • 机电一体化论文写作实战指南:从创新设计到工程验证的完整路径
  • 爬虫实战之图片及人物信息爬取
  • VMware设置虚拟机为固定IP
  • 06_注意力机制
  • 1.认识Docker
  • 开发中bs,cs都是什么意思
  • MySQL-复合查询
  • 暴力风扇方案介绍
  • STM32之28BYJ-48步进电机驱动
  • stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
  • SRS流媒体服务器之本地测试rtc推流bug
  • 【系统分析师】高分论文:论软件开发模型及应用
  • 2025.6.29总结
  • MySQL的调控按钮
  • Java面试宝典:基础三
  • FPGA实现CameraLink视频解码,基于Xilinx ISERDES2原语,提供4套工程源码和技术支持
  • 应用层网络编程范式
  • 基于Java+Springboot的宠物健康咨询系统
  • 数据分析标普500
  • Linux下基于C++11的socket网络编程(基础)个人总结版
  • 数据库 DML 语句详解:语法与注意事项
  • 训练营总结
  • C++高效结合主流工具:现代系统底层动力
  • 浅谈AI大模型-MCP
  • 基于SSM + JSP 的宿舍管理系统
  • JVM基础--JVM的组成
  • AlpineLinux安装部署elasticsearch
  • STM32——HAL库总结