当前位置: 首页 > news >正文

快速集成DeepSeek到项目

DeepSeek API-KEY 获取

  1. 登录DeekSeek 官网,进入API 开放平台

在这里插入图片描述
2. 创建API-KEY
在这里插入图片描述

  1. 复制API-KEY进行保存,后期API调用使用

在这里插入图片描述

项目中集成DeepSeek

这里只展示部分核心代码,具体请查看源码orange-ai-deepseek-biz-starter

@Slf4j
@AllArgsConstructor
public class DeepSeekChatModelServiceImpl implements ChatModelService {private final DeepSeekStorageProperties deepSeekStorageProperties;@Overridepublic PlatformEnum getPlatform() {return PlatformEnum.DEEP_SEEK;}@Overridepublic Flux<Result<ConversationReplyVO>> conversationStream(ConversationParam param) {return conversationStream(param, List.of());}@Overridepublic Flux<Result<ConversationReplyVO>> conversationStream(ConversationParam param, List<ChatSessionRecordVO> contextMessageList) {OkHttpClient client = new OkHttpClient();MediaType mediaType = MediaType.get("application/json");ChatCompletionsParam reqBody = generateChatRequestBody(param, contextMessageList);Request request = new Request.Builder().url(deepSeekStorageProperties.getChatUrl()).addHeader(SecurityConstant.AUTHORIZATION, "Bearer " + deepSeekStorageProperties.getToken()).post(RequestBody.create(JSONUtil.toJsonStr(reqBody), mediaType)).build();return Flux.create(emitter -> {EventSourceListener listener = new EventSourceListener() {@Overridepublic void onOpen(@NotNull EventSource eventSource, @NotNull Response response) {System.out.println("SSE connection opened");}@Overridepublic void onClosed(@NotNull EventSource eventSource) {emitter.complete();System.out.println("SSE connection closed");}@Overridepublic void onEvent(@NotNull EventSource eventSource, String id, String type, @NotNull String data) {if (log.isDebugEnabled()) {log.debug("data:{}", data);}if (StrUtil.isBlank(data) || DeepSeekContent.DONE.equalsIgnoreCase(data)) {emitter.complete();return;}ChatCompletionsResponse response = JSONUtil.toBean(data, ChatCompletionsResponse.class);StringBuilder content = new StringBuilder();for (ChatCompletionsResponse.ChoiceItem choice : response.getChoices()) {content.append(choice.getDelta().getContent());}emitter.next(ResultWrapper.ok(ConversationReplyVO.builder().content(content.toString()).build()));}@Overridepublic void onFailure(@NotNull EventSource eventSource, Throwable t, Response response) {System.err.println("Error occurred: " + t);}};EventSource.Factory factory = EventSources.createFactory(client);factory.newEventSource(request, listener);});}private ChatCompletionsParam generateChatRequestBody(ConversationParam param, List<ChatSessionRecordVO> contextMessageList) {List<MessageItem> messages = new ArrayList<>();if (CollUtil.isNotEmpty(contextMessageList)) {for (ChatSessionRecordVO record : contextMessageList) {if (MessageTypeEnum.USER.equals(record.getMessageType())) {messages.add(MessageItem.builder().role(MessageType.USER.getValue()).content(record.getContent()).build());continue;}if (MessageTypeEnum.ASSISTANT.equals(record.getMessageType())) {messages.add(MessageItem.builder().role(MessageType.ASSISTANT.getValue()).content(record.getContent()).build());}}}messages.add(MessageItem.builder().role(MessageType.USER.getValue()).content(param.getPrompt()).build());return ChatCompletionsParam.builder().model(param.getModelCode()).messages(messages).stream(Boolean.TRUE).build();}}

体验DeepSeek

  • 在线体验: http://tiny.hengzq.cn
    在这里插入图片描述

Orange开源项目推荐

  • Orange 官网: http://hengzq.cn
  • 在线体验: http://tiny.hengzq.cn
  • 项目文档: http://hengzq.cn/orange-monomer/
  • 单体架构-后端源码下载【GitHub】: https://github.com/hengzq/orange-monomer
  • 单体架构-后端源码下载【Gitee】: https://gitee.com/hengzq/orange-monomer
  • 微服务版本-后端源码下载【GitHub】: https://github.com/hengzq/orange-cloud
  • 微服务版本-后端源码下载【Gitee】: https://gitee.com/hengzq/orange-cloud
  • 前端源码下载【GitHub】: https://github.com/hengzq/orange-cloud
  • 前端源码下载【Gitee】: https://gitee.com/hengzq/orange-cloud

参考

  • https://api-docs.deepseek.com/zh-cn/
http://www.lryc.cn/news/535789.html

相关文章:

  • 基础连接已经关闭: 服务器关闭了本应保持活动状态的连接
  • [前端] axios网络请求二次封装
  • 本地部署DeepSeek Nodejs版
  • 【PL/SQL】常用操作复习20250212
  • vue3-02基础认识vue3中main.js入口文件,app.vue(不存在唯一根节点),扩展程序vue-devtools安装
  • 如何下载Qt和运行第一个程序。
  • 【MySQL例题】我在广州学Mysql 系列——有关数据备份与还原的示例
  • 硬件学习笔记--40 电磁兼容试验-4 快速瞬变脉冲群试验介绍
  • 国密算法SM1、SM2、SM3和SM4 具体的使用和区别
  • 在Ubuntu中安装Docker并配置国内镜像
  • 【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
  • DeepSeek本地部署详细指南
  • 厘米和磅的转换关系
  • Unity-Mirror网络框架-从入门到精通之LagCompensation示例
  • DeepSeek+3D视觉机器人应用场景、前景和简单设计思路
  • STM32+Proteus+DS18B20数码管仿真实验
  • Java自动生成api文档
  • PHP的JIT编译器
  • Golang学习历程【第七篇 闭包type defer panic recover了解time包】
  • oracle表分区--范围分区
  • 使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器进行模型检查点处理
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_monotonic_time函数
  • 业务开发 | 基础知识 | Maven 快速入门
  • 基于 Python(Flask)、JavaScript、HTML 和 CSS 实现前后端交互的详细开发过程
  • STM32 RCC功能说明 复位和时钟控制RCC
  • Windows可以永久暂停更新了
  • 高级 Python Web 开发:基于 FastAPI 构建高效实时聊天系统与并发控制
  • 深入理解Java虚拟机(JVM)
  • 笔试面试——逻辑题
  • 【深度学习入门实战】基于Keras的手写数字识别实战(附完整可视化分析)