English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french
查看: 7|回复: 0

Spring Boot 接入 DeepSeek API:实现智能应用的全新路径

[复制链接]
查看: 7|回复: 0

Spring Boot 接入 DeepSeek API:实现智能应用的全新路径

[复制链接]
查看: 7|回复: 0

204

主题

0

回帖

622

积分

高级会员

积分
622
I4q7kww6Pn

204

主题

0

回帖

622

积分

高级会员

积分
622
2025-2-20 20:10:32 | 显示全部楼层 |阅读模式
在数字化时代,人工智能技术的飞速发展为各行业带来了前所未有的变革机遇。自然语言处理作为 AI 领域的重要分支,正逐渐渗透到我们日常生活的方方面面,从智能客服、文本生成到知识问答等应用场景,其价值不断凸显。DeepSeek 作为一种先进且功能强大的自然语言处理 API,为开发者提供了高效、精准的语言理解和生成能力。
而 Spring Boot 作为 Java 领域广受欢迎的轻量级开发框架,以其简洁、高效、易维护等特点,深受企业级应用开发者的青睐。将 Spring Boot 与 DeepSeek API 相结合,能够快速构建出具备智能语言处理能力的应用系统,为各行业的数字化转型注入新的活力,无论是提升客户服务体验、优化内容生成流程,还是增强知识管理效率,都具有广阔的前景和深远的意义。

一、接入前的准备

注册 DeepSeek 账号并获取 API Key :访问 DeepSeek 官方网站,完成注册流程,创建应用后即可获取专属的 API Key,这是后续调用 DeepSeek API 的关键凭证,需妥善保管。
创建 Spring Boot 项目 :可使用 Spring Initializr 工具,选择合适的依赖项,如 Spring Web 等,快速搭建项目基础结构。
二、添加依赖

在 Spring Boot 项目的 pom.xml 文件中,添加必要的依赖以支持 HTTP 请求的发送。以下为添加的依赖代码:
1 2 3    org.springframework.boot 4    spring-boot-starter-web 5 6 7 8 9    org.apache.httpcomponents10    httpclient11    4.5.1412

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.





添加上述依赖后,项目便具备了发送 HTTP 请求的基础能力,其中 spring-boot-starter-web 依赖提供了构建 Web 应用的相关支持,而 httpclient 依赖则用于发送自定义的 HTTP 请求,方便与 DeepSeek API 进行交互。
三、配置 API 信息

在 application.properties 文件中,配置 DeepSeek API 的相关信息,以便在代码中能够方便地获取和使用:
1deepseek.api.key=你的API Key2deepseek.api.url=https://api.deepseek.com/v1/chat/completions

  • 1.
  • 2.





通过在配置文件中集中管理 API 配置信息,遵循了良好的软件开发原则,提高了代码的可维护性和可配置性,同时也便于在不同环境之间切换和管理 API 相关参数。
四、编写代码

创建 DeepSeek 服务类 :该类负责封装与 DeepSeek API 的交互逻辑,实现对 API 的调用并处理返回结果。以下为服务类的代码示例:
1import org.springframework.beans.factory.annotation.Value; 2import org.springframework.stereotype.Service; 3import org.apache.http.client.methods.CloseableHttpResponse; 4import org.apache.http.client.methods.HttpPost; 5import org.apache.http.entity.StringEntity; 6import org.apache.http.impl.client.CloseableHttpClient; 7import org.apache.http.impl.client.HttpClients; 8import org.apache.http.util.EntityUtils; 910@Service11public class DeepSeekService {1213    @Value("${deepseek.api.key}")14    private String apiKey;1516    @Value("${deepseek.api.url}")17    private String apiUrl;1819    public String generateText(String prompt) {20        CloseableHttpClient client = HttpClients.createDefault();21        HttpPost request = new HttpPost(apiUrl);22        request.setHeader("Content-Type", "application/json");23        request.setHeader("Authorization", "Bearer " + apiKey);2425        String requestBody = String.format(26            "{\"model\": \"deepseek-chat\", \"messages\": [{\"role\": \"user\", \"content\": \"%s\"}], \"stream\": false}",27            prompt28        );29        request.setEntity(new StringEntity(requestBody));3031        try (CloseableHttpResponse response = client.execute(request)) {32            return EntityUtils.toString(response.getEntity());33        } catch (Exception e) {34            e.printStackTrace();35            return "Error generating text";36        }37    }38}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.





在上述代码中,通过 @Value 注解从配置文件中获取 API Key 和 API URL,并在 generateText 方法中,构建了符合 DeepSeek API 要求的 HTTP 请求,包括设置请求头、构建请求体等操作。然后使用 HttpClients 发送 POST 请求,并对返回的响应结果进行处理,最终返回给调用者。
创建控制器类 :用于接收前端或其他客户端的请求,并调用 DeepSeek 服务类来处理请求,返回相应的结果。以下为控制器类的代码示例:
1import org.springframework.beans.factory.annotation.Autowired; 2import org.springframework.web.bind.annotation.GetMapping; 3import org.springframework.web.bind.annotation.RequestParam; 4import org.springframework.web.bind.annotation.RestController; 5 6@RestController 7public class DeepSeekController { 8 9    @Autowired10    private DeepSeekService deepSeekService;1112    @GetMapping("/askDeepSeek")13    public String askDeepSeek(@RequestParam String question) {14        return deepSeekService.generateText(question);15    }16}

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.





在该控制器类中,通过 @RestController 注解标识这是一个 RESTful 风格的控制器,@GetMapping 注解定义了一个 GET 请求的映射方法,用于接收客户端传递的 question 参数,并将其作为输入传递给 DeepSeek 服务类的 generateText 方法,最终将生成的文本结果返回给客户端。
五、测试与优化


  • 启动项目并测试 :运行 Spring Boot 项目,通过浏览器或 Postman 等工具访问 http://localhost:8080/askDeepSeek?question=你的问题,查看返回的结果是否符合预期。如果返回的结果正确且完整,说明接入 DeepSeek API 成功。
  • 优化与扩展 :在实际应用中,可根据需求对代码进行优化和扩展。例如,添加异常处理机制,对可能出现的异常情况进行捕获和处理,提高系统的稳定性;使用异步调用方式,提升系统的并发处理能力;对返回结果进行格式化和解析,提取有用的信息,更好地满足业务需求。
通过以上步骤,我们成功地在 Spring Boot 项目中接入了 DeepSeek API,实现了自然语言处理的相关功能。这一过程不仅展示了 Spring Boot 与 DeepSeek API 结合的强大潜力,也为开发者提供了一个可参考的实践案例,有助于在实际项目中快速应用和推广,为构建智能应用提供有力支持。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

204

主题

0

回帖

622

积分

高级会员

积分
622

QQ|智能设备 | 粤ICP备2024353841号-1

GMT+8, 2025-3-12 13:37 , Processed in 4.582663 second(s), 29 queries .

Powered by 智能设备

©2025

|网站地图