引入alibaba百炼
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
配置文件
spring.ai.openai.api-key=sk-b344XXXX
spring.ai.openai.chat.options.model=qwen3-max
spring.ai.openai.base-url=https://dashscope.aliyuncs.com/compatible-mode
logging.level.org.springframework.ai=debug
注意baseurl跟aliyun给的不太一样,去掉v1
写一个tool交由ioc容器管理
package com.example.demo;
import cn.hutool.core.map.MapUtil;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class FunctionTool {
@Tool(description = "根据姓名获取用户的分数,输入姓名,返回分数,没查询到用户返回-1")
public Integer getScore(@ToolParam(description = "用户姓名")String name) {
Map<String, Integer> map = MapUtil.<String,Integer>builder().put("zhangsan", 11).put("lisi", 12).build();
if(map.containsKey(name))
return map.get(name);
return -1;
}
}
写个测试接口
public String index(String prompt,FunctionTool functionTool){
return chatClient.prompt(prompt)
.tools(functionTool)
.call()
.content();
}
有bug 不要用flux返回流式
测试

成功