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

深度集成DeepSeek大模型:WebSocket流式聊天实现

目录

  • 5分钟快速接入DeepSeek大模型:WebSocket实时聊天指南
    • 创建应用
    • 开发后端代码 (Python/Node.js)
    • 结语

5分钟快速接入DeepSeek大模型:WebSocket实时聊天指南

创建应用

  1. 访问DeepSeek官网

    • 前往 DeepSeek官网。
    • 如果还没有账号,需要先注册一个。
      在这里插入图片描述
  2. 进入API开放平台

    • 点击右上角的“API 开放平台”按钮,进入后台管理页面。
    • 你可以看到默认赠送的10元免费额度。
      在这里插入图片描述
  3. 创建API Key

    • 点击“API keys”,进入Key管理页面。
    • 创建一个新的API Key,并确保保存好这个Key,因为一旦离开页面就无法再次查看。
      在这里插入图片描述

开发后端代码 (Python/Node.js)

推荐使用Python或Node.js编写后台代码。下面以Python为例进行说明。

  1. 安装OpenAI库

    pip3 install openai
    
  2. 引入OpenAI并创建DeepSeek客户端实例

    from openai import OpenAIclient = OpenAI(api_key="替换为你的key", base_url="https://api.deepseek.com")
    
  3. 发送请求

    response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "user", "content": "详细介绍一下你自己"},],stream=False
    )
    print(response.choices[0].message.content)
    

    输出结果如下:
    在这里插入图片描述

  4. 流式输出结果
    将请求参数 stream 设置为 True 即可实现流式输出。

    response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "user", "content": "详细介绍一下你自己"},],stream=True
    )
    for chunk in response:print(chunk.choices[0].delta.content, end='', flush=True)
    
  5. 接口封装
    将功能封装为WebSocket接口,实现实时聊天。

    import asyncio
    import json
    from websockets import serve
    from openai import OpenAIclient = OpenAI(api_key="替换为你的key", base_url="https://api.deepseek.com")async def chat_handler(websocket):async for message in websocket:data = json.loads(message)user_input = data.get('user_input', '')history = data.get('history', [])messages = [{"role": "system", "content": "You are a helpful assistant"}]messages.extend(history)messages.append({"role": "user", "content": user_input})response = client.chat.completions.create(model="deepseek-chat",messages=messages,stream=True)for chunk in response:content = chunk.choices[0].delta.contentif content:await websocket.send(json.dumps({'content': content}, ensure_ascii=False))async def main():async with serve(chat_handler, "localhost", 8765):await asyncio.Future()  # Run foreverif __name__ == "__main__":asyncio.run(main())
    

    使用Postman测试接口:
    在这里插入图片描述

结语

通过以上步骤,你可以在短短5分钟内完成与DeepSeek大模型的集成,并实现一个实时聊天应用。WebSocket技术使得聊天内容可以流式传输,提升用户体验。希望这篇指南对你有所帮助,让你的项目更加高效和强大!

前端开发教程构建高效智能对话前端:基于Ant Design X 的deepseek对话应用

源码下载地址

相关文章:

深度集成DeepSeek大模型:WebSocket流式聊天实现

目录 5分钟快速接入DeepSeek大模型:WebSocket实时聊天指南创建应用开发后端代码 (Python/Node.js)结语 5分钟快速接入DeepSeek大模型:WebSocket实时聊天指南 创建应用 访问DeepSeek官网 前往 DeepSeek官网。如果还没有账号,需要先注册一个。…...

Jmeter连接数据库、逻辑控制器、定时器

Jmeter直连数据库 直接数据库的使用场景 直连数据库的关键配置 添加MYSQL驱动Jar包 方式一:在测试计划面板点击“浏览”按钮,将你的JDBC驱动添加进来 方式二:将MySQL驱动jar包放入到lib/ext目录下,重启JMeter 配置数据库连接信…...

『Linux笔记』进程间通信(IPC)详细介绍!

进程间通信(IPC)详细介绍! 文章目录 一. 进程间通信(IPC)详细介绍1. 共享内存(Shared Memory)2. 消息队列(Message Queues)3. 信号量(Semaphores&#xff09…...

Jmeter进阶篇(34)如何解决jmeter.save.saveservice.timestamp_format=ms报错?

问题描述 今天使用Jmeter完成压测执行,然后使用命令将jtl文件转换成html报告时,遇到了报错! 大致就是说jmeter里定义了一个jmeter.save.saveservice.timestamp_format=ms的时间格式,但是jtl文件中的时间格式不是标准的这个ms格式,导致无法正常解析。对于这个问题,有如下…...

Visual Studio 2022配置网址参考

代码格式化和清理冗余代码选项的配置: 代码样式选项和代码清理 - Visual Studio (Windows) | Microsoft Learn 调试时传递参数: 调试时传递命令行参数(C) - Visual Studio (Windows) | Microsoft Learn...

Redis中集合(Set)常见命令详解

集合(Set)常见命令详解 集合(Set)在Redis中是一种无序且不可重复的数据结构,非常适合用于存储唯一元素的集合。以下是Redis集合操作的一些常用命令及其详细说明: 添加成员 sadd key member [member ...]…...

动态规划

简介 动态规划最核心两步: 状态表示:dp[i]代表什么状态转移方程:如何利用已有的dp求解dp[i] 只要这两步搞对了, 就完成了动态规划的%95 剩下的就是细节问题: dp初始化顺序(有时是倒序)处理边…...

stm32rtc实时时钟详解文章

目录 stm32 后备区域基础知识详解 stm32 bkp基础知识详解 Unix时间戳基础知识详解 stm32 rtc实时时钟基础知识详解 相关代码初始化配置 欢迎指正,希望对你,有所帮助!!! stm32 后备区域基础知识详解 stm32芯片的 …...

DeepSeek 助力 Vue 开发:打造丝滑的 键盘快捷键(Keyboard Shortcuts)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

【第一节】C++设计模式(创建型模式)-工厂模式

目录 前言 一、面向对象的两类对象创建问题 二、解决问题 三、工厂模式代码示例 四、工厂模式的核心功能 五、工厂模式的应用场景 六、工厂模式的实现与结构 七、工厂模式的优缺点 八、工厂模式的扩展与优化 九、总结 前言 在面向对象系统设计中,开发者常…...

深入理解 SQL 注入漏洞及解决方案

一、引言 在当今数字化时代,数据库作为存储和管理数据的核心组件,其安全性至关重要。SQL 注入是一种常见且极具威胁性的数据库安全漏洞,它可能导致数据泄露、篡改甚至系统被完全控制。本文将深入探讨 SQL 注入漏洞的产生原因、表现形式以及如…...

使用 deepseek实现 go语言,读取文本文件的功能,要求支持 ascii,utf-8 等多种格式自适应

使用 deepseek实现 go语言,读取文本文件的功能,要求支持 ascii,utf-8 等多种格式自适应我要用 chatgpt,也问过,但是比 deepseek 还是差一个级别,具体如下: package mainimport ("bufio&qu…...

7.【线性代数】——求解Ax=0,主列和自由列

七 求解Ax0,主列和自由列 1. 消元、秩、特解特解零空间 2. 简化行阶梯形式 :主元上下都是0,主元简化为1 1. 消元、秩、特解 矩阵消元 [ 1 2 2 2 2 4 6 8 3 6 8 10 ] ⏟ A ⇒ r o w 2 − 2 r o w 1 , r o w 3 − 3 r o w 1 [ 1 2 2 2 0 0 2 4 0 0 2 4 ]…...

vue3结合后端传递过来的文件进行预览功能

业务的需要,前端需要根据后端传递过来的文件流进行预览的功能,前端点击链接直接触发浏览器的窗口的预览功能。 实现方式一: 使用弹窗和iframe的标签的形式进行预览文件,但是iframe可能会出现网站安全性的问题,限制比较…...

【Python爬虫(39)】掌控全局:分布式爬虫的任务管理与监控之道

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…...

Jenkins整合Jmeter实现接口自动化测试

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、安装jmeter 下载:http://jmeter.apache.org/download_jmeter.cgi 这里我用了一台Windows安装jmeter用来写接口测试的脚本,启动前修改j…...

Web 自动化测试提速利器:Aqua 的 Web Inspector (检查器)使用详解

Web 自动化测试提速利器:Aqua 的 Web Inspector (检查器)使用详解 前言简介一、安装二、Web Inspector 的使用2.1 获取元素定位器(Locators)2.2 将定位器添加到代码2.3 验证定位器2.4 处理 Frames (框架)总结前言 JetBrains 的 Aqua IDE 提供强大的 Web Inspector 工具,帮…...

大语言模型:从开发到运行的深度解构

一、LLM开发训练的全流程解析 1. 数据工程的炼金术 数据采集:构建涵盖网页文本(Common Crawl)、书籍、论文、代码等领域的超大规模语料库,典型规模可达数十TB。例如GPT-4的训练数据包含超过13万亿token数据清洗:通过…...

【GoLang】【算法模板】2、GoLang 算法模板整理

文章目录 0、前言1、GoLang 算法必会技巧1.1、标准库1.1.1、sort 包1.1.2、slice 包 1.2、数据结构1.2.1、优先队列 2、板子2.1、二分2.1.1、lower_bound、upper_bound 2.2、字符串2.2.1、kmp 0、前言 整理一下 golang 的算法板子,作为备忘录使用。可能有些板子、博…...

合理建模--最短路径

这道题目难就难在如何想到用最短路径来做 主要是这个题目不能用bfs来写,因为距离并不是1 狄克斯特拉算法很久没写了,有些地方生疏了 且这个题目需要记录三个信息,得用tuple 题目地址 int dx[] {0,0,1,-1};int dy[] {1,-1,0,0}; class Solut…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

二维数组 行列混淆区分 js

二维数组定义 行 row&#xff1a;是“横着的一整行” 列 column&#xff1a;是“竖着的一整列” 在 JavaScript 里访问二维数组 grid[i][j] 表示 第i行第j列的元素 let grid [[1, 2, 3], // 第0行[4, 5, 6], // 第1行[7, 8, 9] // 第2行 ];// grid[i][j] 表示 第i行第j列的…...

Shell 解释器​​ bash 和 dash 区别

bash 和 dash 都是 Unix/Linux 系统中的 ​​Shell 解释器​​&#xff0c;但它们在功能、语法和性能上有显著区别。以下是它们的详细对比&#xff1a; ​​1. 基本区别​​ ​​特性​​​​bash (Bourne-Again SHell)​​​​dash (Debian Almquist SHell)​​​​来源​​G…...