我们知道,阿里云百炼有提供很多非常好的模型,控制台地址在:https://bailian.console.aliyun.com/ ,不要用浏览器搜索搜错了。
那这些模型要怎么调用呢,其实alibaba已经封装了调用方法,这就是github上的项目:https://github.com/alibaba/spring-ai-alibaba
今天我们就来简单搭建下。
1、新建springboot项目
这里要求jdk是17,springboot是3以上,所以我就直接用这个版本了
2、加入依赖
这个可以直接参考github项目的例子
https://github.com/alibaba/spring-ai-alibaba/blob/main/spring-ai-alibaba-examples/helloworld-example/pom.xml
如下是我的依赖文件
4.0.0
org.springframework.boot
spring-boot-starter-parent
3.3.5
com.suibibk.aliai
aliai
0.0.1-SNAPSHOT
aliai
Demo project for Spring Boot
17
1.0.0-M3.1
org.springframework.boot
spring-boot-starter
com.alibaba.cloud.ai
spring-ai-alibaba-starter
${spring-ai-alibaba.version}
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
org.springframework.boot
spring-boot-maven-plugin
其实主要就是
com.alibaba.cloud.ai
spring-ai-alibaba-starter
${spring-ai-alibaba.version}
org.springframework.boot
spring-boot-starter-web
还有下面的
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
这个是由于 spring-ai 相关依赖包还没有发布到中央仓库,如出现 spring-ai-core 等相关依赖解析问题,请在您项目的 pom.xml 依赖中加入如上仓库配置。
补充:如果您的本地 maven settings.xml 中的 mirrorOf 标签配置了通配符 * ,请根据以下示例修改。
xxxx
*,!spring-milestones
xxxx
xxxx
具体可以参考
https://github.com/alibaba/spring-ai-alibaba/blob/main/README-zh.md
3、jdk
这个可以去https://d.injdk.cn/download/openjdk/17 下载。
4、代码
直接从上面的例子复制即可
package com.suibibk.aliai.aliai;
import java.util.Objects;
import reactor.core.publisher.Flux;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/ai")
public class ChatController {
private final ChatClient chatClient;
public ChatController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@GetMapping("/chat")
public String chat(String input) {
return this.chatClient.prompt().user(input).call().content();
}
@GetMapping("/stream")
public String stream(String input) {
Flux content = this.chatClient.prompt().user(input).stream().content();
return Objects.requireNonNull(content.collectList().block()).stream().reduce((a, b) -> a + b).get();
}
}
可以看到提供了chat方式还有流的方式.
5、配置文件
spring.application.name=aliai
spring.ai.dashscope.api-key=xxxxx
这个api-key怎么来呢
6、启动测试
好了以后有需要再试试其他功能。主要是参考github里面和阿里云百炼的接口吧。不过很多接口应该都要钱,价格应该也不贵!