Spring AI Alibaba支持通过Function Calling让大模型调用本地定义的函数。实现步骤如下:
1. 定义Function类,实现Function<Request, Response>接口:
public class MockWeatherService implements Function<Request, Response> {
@Override
public Response apply(Request request) {
// 根据请求参数返回结果
}
}
2. 使用JSON注解描述参数,帮助大模型理解函数用途:
@JsonClassDescription描述函数整体功能@JsonPropertyDescription描述每个参数含义@JsonProperty(required = true)标记必填参数
3. 在Controller中注册Function:
chatClient.prompt()
.function("getWeather", "根据城市查询天气", new MockWeatherService())
.user(subject)
.call()
.content();
通过.function()方法指定函数名、描述和实现类,大模型会根据用户输入自动判断是否需要调用该函数,并将函数返回结果整合到最终回答中。




