当前位置: 首页 > 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的话也会报错

相关文章:

  • 野生动物检测数据集介绍-5,138张图片 野生动物保护监测 智能狩猎相机系统 生态研究与调查
  • Wpf布局之DockPanel面板!
  • vue计算属性
  • 六边形软件架构模式(Architecture Pattern)
  • WPF两种绑定方式的分析
  • 条件概率:不确定性决策的基石
  • IDEA在AI时代的智能编程实践:从工蜂到通义灵码的效能跃迁‌‌
  • Ubuntu开放mysql 3306端口
  • 现代C++ 文件系统库
  • 【算法设计与分析】(四)Strassen 矩阵
  • games101 作业6
  • C语言中常见字符串处理函数
  • Mybatis多条件查询设置参数的三种方法
  • Vue 3 Teleport 特性
  • [Python] -基础篇3-掌握Python中的条件语句与循环
  • UE5 Grid3D 学习笔记
  • 低延时高速数据链技术在无人平台(无人机无人船无人车)中的关键作用与应用
  • Android大图加载优化:BitmapRegionDecoder深度解析与实战
  • 认知智能平台搭载LLM+RAG,重构行业洞察与决策支持体系!
  • 零基础学习RabbitMQ(5)--工作模式(1)