使用Spring Ai调用DeepSeek

By ref-nobody 创建时间 2025年4月29日 | 本文最后更新于 2025年4月30日 #model, #spring

使用spring ai调用deepseek来完成对于模型的基本使用,熟悉一下spring ai的开发方式。
使用的版本信息:

spirng boot3.4.5
spring-ai-bom1.0.0-M7
spring-cloud-alibaba-dependencies2021.0.4.0

项目中使用nacos作为配置中心保存openai key的配置,因此引入了spring-cloud-alibaba-dependencies。

搭建项目依赖

版本依赖管理:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>1.0.0-M7</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2021.0.4.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-starter-model-openai</artifactId>
        </dependency>
    </dependencies>

application.yml文件配置:

spring:
  ai:
    openai:
      api-key: ${api-key}
      base-url: https://api.deepseek.com
      chat:
        options:
          temperature: 0.7
          model: deepseek-chat
      embedding:
        enabled: false
  application:
    name: spring-ai-itaiit
  config:
    import: nacos:nacos-config.properties
  cloud:
    nacos:
      config:
        file-extension: properties
        name: nacos-config
        username: nacos
        password: nacos
        namespace: d7da1cc0-7ed5-43a6-9a4e-d32edb8b6043
        server-addr: localhost:8848

配置中心配置

创建controller

这里采用spring ai官网给的代码示例进行测试:

@RestController
public class ChatController {

    private final OpenAiChatModel chatModel;

    @Autowired
    public ChatController(OpenAiChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping("/ai/generate")
    public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return Map.of("generation", this.chatModel.call(message));
    }

    @GetMapping("/ai/generateStream")
    public Flux<ChatResponse> generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        return this.chatModel.stream(prompt);
    }
}

结果验证

使用postman发送请求,接收响应。

问题汇总

1. 在调用deepseek的接口之前,需要首先进行充值,如果没有充值调用模型则会显示Insufficient Balance(余额不足)。

Leave a Reply

Your email address will not be published. Required fields are marked *

目录