示例: Java调用deepseekApi

一、获取 API key

开放平台地址:DeepSeek
登录deepseek开放平台,创建API keys,注意创建的时候复制key,然后保存,以免使用的时候忘记
在这里插入图片描述以下是官方的API文档规范
在这里插入图片描述

二、完整代码案例

1. 简介

本案例将展示如何使用 Java Spring Boot 框架构建一个简单的 Web 应用,并通过 Controller 层调用 DeepSeek 的文本生成 API,实现智能文本生成功能。

2. 技术栈

  • Spring Boot
  • Apache HttpClient
  • DeepSeek API

3. 项目结构

src
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           └── deepseek
│   │               ├── controller
│   │               │   └── TextGenerationController.java
│   │               ├── service
│   │               │   └── DeepSeekService.java
│   │               └── DeepseekApplication.java
│   └── resources
│       └── application.properties
└── test
    └── java

4. 代码实现

4.1 application.properties

deepseek.api.key=YOUR_API_KEY
deepseek.api.url=https://api.deepseek.com/v1/text/generate

4.2 DeepseekApplication.java

package com.example.deepseek;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DeepseekApplication {

    public static void main(String[] args) {
        SpringApplication.run(DeepseekApplication.class, args);
    }

}

4.3 DeepSeekService.java

package com.example.deepseek.service;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

@Service
public class DeepSeekService {

    @Value("${deepseek.api.key}")
    private String apiKey;

    @Value("${deepseek.api.url}")
    private String apiUrl;

    public String generateText(String prompt, int maxTokens, double temperature) throws Exception {
        String requestBody = String.format("{\"prompt\": \"%s\", \"max_tokens\": %d, \"temperature\": %f}", 
                prompt, maxTokens, temperature);

        try (CloseableHttpClient client = HttpClients.createDefault()) {
            HttpPost request = new HttpPost(apiUrl);
            request.setHeader("Content-Type", "application/json");
            request.setHeader("Authorization", "Bearer " + apiKey);
            request.setEntity(new StringEntity(requestBody));

            return client.execute(request, response -> {
                if (response.getStatusLine().getStatusCode() == 200) {
                    return EntityUtils.toString(response.getEntity());
                } else {
                    throw new RuntimeException("Failed to generate text: " + response.getStatusLine().getReasonPhrase());
                }
            });
        }
    }
}

4.4 TextGenerationController.java

package com.example.deepseek.controller;

import com.example.deepseek.service.DeepSeekService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/text")
public class TextGenerationController {

    @Autowired
    private DeepSeekService deepSeekService;

    @PostMapping("/generate")
    public String generateText(@RequestParam String prompt,
                              @RequestParam(defaultValue = "200") int maxTokens,
                              @RequestParam(defaultValue = "0.7") double temperature) {
        try {
            return deepSeekService.generateText(prompt, maxTokens, temperature);
        } catch (Exception e) {
            e.printStackTrace();
            return "Error generating text: " + e.getMessage();
        }
    }
}

5. 运行项目

  1. YOUR_API_KEY 替换为你的 DeepSeek API Key。
  2. 运行 DeepseekApplication.java 启动 Spring Boot 应用。
  3. 访问 http://localhost:8080/api/text/generate?prompt=写一篇关于人工智能的文章。 即可获取生成的文本。

6. 总结

本案例展示了如何使用 Java Spring Boot 构建 Web 应用,并通过 Controller 层调用 DeepSeek API 实现智能文本生成功能。你可以根据需要扩展代码,例如添加异常处理、日志记录、参数校验等功能。

7. 注意事项

  • 请妥善保管你的 API Key,不要泄露给他人。
  • 使用 API 时请遵守 DeepSeek 的使用条款。
  • 本文代码仅供参考,实际使用时请根据需要进行修改和完善。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐