Spring AI快速搭建

378 阅读1分钟

Spring 快速搭建

环境准备

  1. jdk 17或者21
  2. 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-4
  • gpt-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();
    }
}

然后请求,得到的响应如下所示:

image.png