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

目录

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库

    shell 复制代码
    pip3 install openai
  2. 引入OpenAI并创建DeepSeek客户端实例

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

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

    输出结果如下:

  4. 流式输出结果

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

    python 复制代码
    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接口,实现实时聊天。

    python 复制代码
    import asyncio
    import json
    from websockets import serve
    from openai import OpenAI
    
    client = 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.content
                if 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 forever
    
    if __name__ == "__main__":
        asyncio.run(main())

    使用Postman测试接口:

结语

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

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

源码下载地址

相关推荐
DevOpenClub8 小时前
网站标题与图标 API:URL 输入、空字段与返回边界
api·favicon·网站工具
特立独行的猫A9 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持9 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang10 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰11 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc12 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
羲云网络15 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
橙橙笔记18 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事18 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
天天被压力21 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python