Spring 快速搭建
环境准备
- jdk 17或者21
- spring boot 3.4.7
导包
我们需要导入以下的依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
导完包之后, 我们需要配置对应的yml文件,来设置我们需要选择对应的模型, 以及对应的api-key,内容如下所示:
spring:
ai:
openai:
base-url: https://sg.uiuiapi.com
api-key: sk-xxxxxxx
chat:
options:
model: gpt-4-turbo
OpenAI 的可用模型包括:
gpt-4-turbo(最新推荐)gpt-4gpt-3.5-turbo
但是可能有人会问, 我没有api key,怎么办呢?我们可以通过在New API这里,注册之后,可以免费获取到对应的api-key。 注意,这里的base-url就是这个域名,并且不需要加上/v1这个路径。 否则在请求的时候发生下面的错误:
org.springframework.ai.retry.NonTransientAiException: 404 - {"error":{"message":"Invalid URL (POST /v1/v1/chat/completions)","type":"invalid_request_error","param":"","code":""}}
at org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration$2.handleError(SpringAiRetryAutoConfiguration.java:100) ~[spring-ai-spring-boot-autoconfigure-1.0.0-M6.jar:1.0.0-M6]
这个就是因为我们在配置base-url属性的时候, 除了域名之外,还加上了/v1这个路径导致的,只需要将/v1删掉即可。
测试
@Configuration
public class AiConfiguration {
@Bean
public ChatClient chatClient(ChatModel chatModel) {
return ChatClient.builder(chatModel).build();
}
}
@RestController
@RequestMapping("/ai")
public class AiChatController {
@Resource
private ChatClient chatClient;
@GetMapping("/test")
public String test1(@RequestParam("userMsg") String userMsg) {
return chatClient.prompt()
.user(userMsg)
.call()
.content();
}
}
然后请求,得到的响应如下所示: