DeepSeek服务器繁忙 多种方式继续优雅的使用它

news2025/2/23 9:54:36

前言

你的DeepSeek最近是不是总是提示”服务器繁忙,请稍后再试。”,尝试过了多次重新生成后,还是如此。之前DeepSeek官网连续发布2条公告称,DeepSeek线上服务受到大规模恶意攻击。该平台的对话框疑似遭遇了“分布式拒绝服务攻击”(DDos),大量分布在不同地点的机器对目标进行攻击,消耗被攻击对象的网络带宽或系统资源,导致其网络或系统不胜负荷而无法提供正常的网络服务。特别对我们这种有点依赖AI审查、修改和优化代码的码农,确实很影响体验感了,所以有没有一种方法能更顺畅的使用到DeepSeek,本文提供几种思路来实现。

在这里插入图片描述

DS Api

这个是DeepSeek官方的开发平台,创建API key 后可以使用以下样例脚本的来访问 DeepSeek API。样例为非流式输出,您可以将 stream 设置为 true 来使用流式输出。

# Please install OpenAI SDK first: `pip3 install openai`

from openai import OpenAI

client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
    ],
    stream=False
)

print(response.choices[0].message.content)

模型 & 价格细节如下:
在这里插入图片描述

1.deepseek-chat 模型已经升级为 DeepSeek-V3;deepseek-reasoner 模型为新模型 DeepSeek-R1。
2.思维链为deepseek-reasoner模型在给出正式回答之前的思考过程,其原理详见推理模型。
3.如未指定 max_tokens,默认最大输出长度为 4K。请调整 max_tokens 以支持更长的输出。
4.关于上下文缓存的细节,请参考DeepSeek 硬盘缓存。
5.deepseek-reasoner的输出 token 数包含了思维链和最终答案的所有 token,其计价相同。

不过这个问题是,现在(2025.02.19)它是收费的,没有免费额度,而且它暂停充值(当前服务器资源紧张,为避免对您造成业务影响,我们已暂停 API 服务充值。存量充值金额可继续调用,敬请谅解!),如果您是之前充值的还可以继续使用。
在这里插入图片描述

那么这种方式我也没进行验证,排队情况、返回速度和可用性等都不得而知。

第三方接口

这种方式是接入第三方部署的接口,直接交互,这里是B站【秋芝2046】整理的DeepSeek 第三方API调用平台:
在这里插入图片描述

这里尝试几个免费或者赠送调用次数的平台。

OpenRouter

OpenRouter的方式是注册并创建API Key的形式调用,官方推荐的openai-python代码如下:

from openai import OpenAI

client = OpenAI(
  base_url="https://openrouter.ai/api/v1",
  api_key="<OPENROUTER_API_KEY>",
)

completion = client.chat.completions.create(
  extra_headers={
    "HTTP-Referer": "<YOUR_SITE_URL>", # Optional. Site URL for rankings on openrouter.ai.
    "X-Title": "<YOUR_SITE_NAME>", # Optional. Site title for rankings on openrouter.ai.
  },
  extra_body={},
  model="deepseek/deepseek-r1:free",
  messages=[
    {
      "role": "user",
      "content": "What is the meaning of life?"
    }
  ]
)
print(completion.choices[0].message.content)

这里我给他修改为了代GUI的形式:

from openai import OpenAI
import tkinter as tk
from tkinter import scrolledtext, ttk
import threading

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="你的key"
)


class ChatApp:
    def __init__(self, root):
        self.root = root
        self.root.title("DS AI助手")
        self.messages = []
        self.generating = False
        self.stop_requested = False

        # 创建界面组件
        self.create_widgets()

    def create_widgets(self):
        # 主界面布局
        main_frame = ttk.Frame(self.root)
        main_frame.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)

        # 对话显示区域
        self.chat_display = scrolledtext.ScrolledText(
            main_frame, wrap=tk.WORD, state='disabled',
            font=('Microsoft YaHei', 10), height=20
        )
        self.chat_display.pack(fill=tk.BOTH, expand=True)

        # 控制面板
        control_frame = ttk.Frame(main_frame)
        control_frame.pack(fill=tk.X, pady=5)

        # 输入框
        self.input_box = tk.Text(
            control_frame, height=4,
            font=('Microsoft YaHei', 10), wrap=tk.WORD
        )
        self.input_box.pack(side=tk.LEFT, fill=tk.X, expand=True, padx=(0, 5))

        # 按钮框架
        btn_frame = ttk.Frame(control_frame)
        btn_frame.pack(side=tk.RIGHT)

        # 发送按钮
        self.send_btn = ttk.Button(
            btn_frame, text="发送",
            command=self.start_generation, width=8
        )
        self.send_btn.pack(pady=2)

        # 停止按钮
        self.stop_btn = ttk.Button(
            btn_frame, text="停止",
            command=self.stop_generation, width=8, state=tk.DISABLED
        )
        self.stop_btn.pack(pady=2)

        # 绑定快捷键
        self.root.bind('<Return>', lambda e: self.start_generation())
        self.root.bind('<Shift-Return>', lambda e: self.insert_newline())

    def insert_newline(self):
        self.input_box.insert(tk.INSERT, '\n')
        return "break"

    def update_display(self, role, content):
        self.chat_display.configure(state='normal')
        tag = 'user' if role == "You" else 'assistant'
        self.chat_display.insert(tk.END, f"{role}: ", ('bold', tag))
        self.chat_display.insert(tk.END, f"{content}\n\n", tag)
        self.chat_display.configure(state='disabled')
        self.chat_display.see(tk.END)

    def start_generation(self):
        if self.generating:
            return

        user_input = self.input_box.get("1.0", tk.END).strip()
        if not user_input:
            return

        self.input_box.delete("1.0", tk.END)
        self.messages.append({"role": "user", "content": user_input})
        self.update_display("You", user_input)

        self.generating = True
        self.stop_requested = False
        self.send_btn.config(state=tk.DISABLED)
        self.stop_btn.config(state=tk.NORMAL)

        threading.Thread(target=self.generate_response, daemon=True).start()

    def stop_generation(self):
        self.stop_requested = True

    def generate_response(self):
        full_response = ""

        try:
            completion = client.chat.completions.create(
                model="deepseek/deepseek-r1:free",
                messages=self.messages,
                extra_headers={
                    "HTTP-Referer": "http://localhost",
                    "X-Title": "My Chat App"
                },
                extra_body={},
                stream=True
            )

            self.root.after(0, self.update_display, "Assistant", "")

            for chunk in completion:
                if self.stop_requested:
                    break

                if chunk.choices[0].delta.content:
                    content = chunk.choices[0].delta.content
                    full_response += content
                    self.root.after(0, self.append_response, content)

        except Exception as e:
            full_response = f"发生错误: {str(e)}"
            self.root.after(0, self.update_display, "System", full_response)

        finally:
            if not self.stop_requested and full_response:
                self.messages.append({"role": "assistant", "content": full_response})

            self.root.after(0, self.reset_ui)

    def append_response(self, content):
        self.chat_display.configure(state='normal')
        self.chat_display.insert(tk.END, content, 'assistant')
        self.chat_display.configure(state='disabled')
        self.chat_display.see(tk.END)

    def reset_ui(self):
        self.generating = False
        self.send_btn.config(state=tk.NORMAL)
        self.stop_btn.config(state=tk.DISABLED)


if __name__ == "__main__":
    root = tk.Tk()
    root.geometry("800x600")

    # 配置文本样式
    root.style = ttk.Style()
    root.style.configure('bold.TLabel', font=('Microsoft YaHei', 10, 'bold'))

    app = ChatApp(root)

    # 配置标签样式
    app.chat_display.tag_configure('bold', font=('Microsoft YaHei', 10, 'bold'))
    app.chat_display.tag_configure('user', foreground='#2c7fb8')
    app.chat_display.tag_configure('assistant', foreground='#2ca25f')
    app.chat_display.tag_configure('system', foreground='#636363')
    root.mainloop()

OpenRouter 的体验效果还不错,免费且响应还算及时:
日常回答:
在这里插入图片描述

代码检查:
在这里插入图片描述

提示词生成:
在这里插入图片描述

Nvidia

这里也进行了 英伟达API的测试,不完全免费不过送1k积分,所以可以进行尝试,它的操作也是先申请API key,然后官方给出了如下代码:

from openai import OpenAI

client = OpenAI(
  base_url = "https://integrate.api.nvidia.com/v1",
  api_key = ""
)

completion = client.chat.completions.create(
  model="deepseek-ai/deepseek-r1",
  messages=[{"role":"user","content":"Which number is larger, 9.11 or 9.8?"}],
  temperature=0.6,
  top_p=0.7,
  max_tokens=4096,
  stream=True
)

for chunk in completion:
  if chunk.choices[0].delta.content is not None:
    print(chunk.choices[0].delta.content, end="")

使用了OpenAI的客户端,调用了NVIDIA的API,模型是deepseek-r1。原来的代码里,messages是一个固定的列表,里面只有一个用户的问题:“Which number is larger, 9.11 or 9.8?”。想要让这个代码能够接受用户的输入,动态地构建对话内容。将其改为交互式输入对话的版本,一个带UI的版本,UI包括输入框、发送按钮和停止按钮。最后修改后的代码如下:

from openai import OpenAI
import tkinter as tk
from tkinter import scrolledtext, ttk
import threading

client = OpenAI(
    base_url="https://integrate.api.nvidia.com/v1",
    api_key=""  # 替换为你的实际API密钥
)


class ChatApp:
    def __init__(self, root):
        self.root = root
        self.root.title("DS AI助手")
        self.messages = []
        self.generating = False
        self.stop_requested = False

        # 创建界面组件
        self.create_widgets()

    def create_widgets(self):
        # 对话显示区域
        self.chat_display = scrolledtext.ScrolledText(
            self.root, wrap=tk.WORD, state='disabled', height=20, width=60
        )
        self.chat_display.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)

        # 输入区域框架
        input_frame = ttk.Frame(self.root)
        input_frame.pack(padx=10, pady=5, fill=tk.X)

        # 用户输入框
        self.user_input = tk.Text(input_frame, height=4, width=50)
        self.user_input.pack(side=tk.LEFT, fill=tk.X, expand=True)

        # 按钮框架
        button_frame = ttk.Frame(input_frame)
        button_frame.pack(side=tk.RIGHT, padx=5)

        # 发送按钮
        self.send_btn = ttk.Button(
            button_frame, text="发送", command=self.start_generation
        )
        self.send_btn.pack(pady=2, fill=tk.X)

        # 停止按钮
        self.stop_btn = ttk.Button(
            button_frame, text="停止", command=self.stop_generation, state='disabled'
        )
        self.stop_btn.pack(pady=2, fill=tk.X)

    def update_display(self, role, content):
        self.chat_display.configure(state='normal')
        self.chat_display.insert(tk.END, f"{role}: {content}\n\n")
        self.chat_display.configure(state='disabled')
        self.chat_display.see(tk.END)

    def start_generation(self):
        if self.generating:
            return

        user_text = self.user_input.get("1.0", tk.END).strip()
        if not user_text:
            return

        self.user_input.delete("1.0", tk.END)
        self.messages.append({"role": "user", "content": user_text})
        self.update_display("您", user_text)

        self.generating = True
        self.stop_requested = False
        self.send_btn.config(state='disabled')
        self.stop_btn.config(state='normal')

        threading.Thread(target=self.generate_response, daemon=True).start()

    def stop_generation(self):
        self.stop_requested = True

    def generate_response(self):
        full_response = ""

        try:
            completion = client.chat.completions.create(
                model="deepseek-ai/deepseek-r1",
                messages=self.messages,
                temperature=0.6,
                top_p=0.7,
                max_tokens=4096,
                stream=True
            )

            self.root.after(0, self.update_display, "AI回答", "")

            for chunk in completion:
                if self.stop_requested:
                    break

                if chunk.choices[0].delta.content:
                    content = chunk.choices[0].delta.content
                    full_response += content
                    self.root.after(0, self.append_response, content)

        except Exception as e:
            full_response = f"发生错误: {str(e)}"
            self.root.after(0, self.update_display, "System", full_response)

        finally:
            if not self.stop_requested and full_response:
                self.messages.append({"role": "assistant", "content": full_response})

            self.root.after(0, self.reset_ui)

    def append_response(self, content):
        self.chat_display.configure(state='normal')
        self.chat_display.insert(tk.END, content)
        self.chat_display.configure(state='disabled')
        self.chat_display.see(tk.END)

    def reset_ui(self):
        self.generating = False
        self.send_btn.config(state='normal')
        self.stop_btn.config(state='disabled')


if __name__ == "__main__":
    root = tk.Tk()
    app = ChatApp(root)
    root.mainloop()

英伟达api的测试就一言难难尽,刚开始问答很正常,不过后续就一直等待、要么报错:
在这里插入图片描述

后来我去网站上直接提问了两次发现,排队极其恐怖:

在这里插入图片描述
也有带队1500+的:
在这里插入图片描述

其他在线使用

目前这种方式最省事,这里是B站【秋芝2046】整理的DeepSeek 第三方在线使用平台,包含 腾讯元宝
、跃问、AskManyAI、问小白、腾讯云-大模型知识引擎、商汤大装置、支付宝百宝箱、钉钉、ima、中国移动云盘等多方平台,同时【秋芝2046】还整理了地址、收费情况、响应速度、多轮对话等详细信息。

在这里插入图片描述

这些第三方平台如果免费的话,只需要注册登录就能快速使用。
直达链接:https://ccnk05wgo092.feishu.cn/wiki/WeGmwNVgLi9SFtkfwnacu6H5nfd?table=tblfZlmGJHoAYrQe&view=vewv6xDDG2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2303862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

量子计算的基本运算:Hadamard 门、CNOT 门、Pauli 门详解

量子计算是现代计算科学的前沿领域,它与经典计算机在处理信息的方式上有着本质的区别。量子计算机利用量子比特(qubit)的叠加态和量子纠缠等特性来进行计算,从而在某些特定任务上超越传统计算机。量子计算的核心运算单元是量子门,它们通过作用于量子比特来操控量子状态。本…

mysql之Innodb数据页

Innodb数据页结构 InnoDB数据页结构一、数据页基础概念二、数据页核心结构1. 头部控制区2. 数据存储区3. 尾部与目录区 三、关键机制详解1. 记录链表与删除优化2. 页目录与二分查找3. 空间复用与碎片管理4. 数据页的合并与分裂 四、应用与性能影响1. 索引效率2. 插入优化3. 事务…

基于 PyQt5 的聊天机器人程序(AI)

这是一个基于 PyQt5 的聊天机器人程序&#xff0c;通过 API 接入硅基流动&#xff08;Silicon Flow&#xff09;或其他的聊天服务&#xff0c;支持用户与聊天机器人进行交互。 API 设置&#xff1a;通过菜单栏的“设置”选项&#xff0c;用户可以修改 API 地址和 API 密钥。 设…

[实现Rpc] 服务端 | RpcRouter实现 | Builder模式

目录 项目服务端独用类的实现 1. RpcRouter类的实现 ServiceDescribe SDescribeFactory ⭕ Builder模式 1. 动机 2. 模式定义 3. 要点总结 4. 代码感受 ServiceManager RpcRouter 4. 代码感受 ServiceManager RpcRouter 前文我们就将 Rpc 通用类都实现完啦&#…

红外人体传感器选型和电路解析

红外人体传感器选型和电路解析 背景&#xff1a;想要制作一套IoT系统&#xff0c;基于HA构建上层管理&#xff0c;蓝牙和蓝牙MESH构建无线网络&#xff0c;以及多种传感器和控制器作为底层&#xff0c;其中人体红外传感器作为一个重要的选项&#xff0c;需要考虑好。 红外人体传…

rtthread的串口框架、485框架

一、串口接收超时中断的实现。 1. rtthread中定义的串口超时结构体 定义串口接收超时的结构体 CM_TMR0_TypeDef 为TM0的实例(实际有CM_TMR0_1 CM_TMR0_2 对应华大460的两个TMR0单元 ) channel 每个timer0有两个通道(TMR0_CHA、TMR0_CHB) clock 为FCG2_PERIPH_TMR0_1、FCG…

Embedding模型

检索的方式有那些 关键字搜索&#xff1a;通过用户输入的关键字来查找文本数据。 语义搜索&#xff1a;它的目标是理解用户查询的真实意图&#xff0c;不仅考虑关键词的匹配&#xff0c;还考虑词汇之间的语义 &#xff08;文字&#xff0c;语音&#xff0c;语调...&#xff0…

最新扣子(Coze)案例教程:全自动DeepSeek 写影评+批量生成 + 发布飞书,提效10 倍!手把手教学,完全免费教程

&#x1f468;‍&#x1f4bb;群里有同学是做影视赛道的博主&#xff0c;听说最近DeepSeek这么火&#xff0c;咨询能不能用DeepSeek写影评&#xff0c;并整理电影数据资料&#xff0c;自动发布到飞书文档&#xff0c;把每天的工作做成一个自动化的流程。 那今天斜杠君就为大家…

Ubuntu 22.04安装K8S集群

以下是Ubuntu 22.04安装Kubernetes集群的步骤概要 一、设置主机名与hosts解析 # Master节点执行 sudo hostnamectl set-hostname "k8smaster" # Worker节点执行 sudo hostnamectl set-hostname "k8sworker1"# 所有节点的/etc/hosts中添加&#xff1a; ca…

Apifox 增强 AI 接口调试功能:自动合并 SSE 响应、展示DeepSeek思考过程

在现代的API接口调试中&#xff0c;效率和精确性对于开发者和测试人员来说至关重要。Apifox&#xff0c;作为一款功能强大的API管理和调试工具&#xff0c;近年来不断提升其用户体验和智能化功能。最近&#xff0c;Apifox 推出了增强版的AI接口调试功能&#xff0c;其中包括自动…

MATLAB基础学习相关知识

MATLAB安装参考&#xff1a;抖音-记录美好生活 MATLAB基础知识学习参考&#xff1a;【1小时Matlab速成教程-哔哩哔哩】 https://b23.tv/CnvHtO3 第1部分&#xff1a;变量定义和基本运算 生成矩阵&#xff1a; % 生成矩阵% 直接法% ,表示行 ;表示列 a [1,2,3;4,5,6;7,8,9];%…

DeepSeek赋能智慧文旅:新一代解决方案,重构文旅发展的底层逻辑

DeepSeek作为一款前沿的人工智能大模型&#xff0c;凭借其强大的多模态理解、知识推理和内容生成能力&#xff0c;正在重构文旅产业的发展逻辑&#xff0c;推动行业从传统的经验驱动向数据驱动、从人力密集型向智能协同型转变。 一、智能服务重构&#xff1a;打造全域感知的智…

蓝桥与力扣刷题(蓝桥 交换瓶子)

题目&#xff1a;有 N 个瓶子&#xff0c;编号 1 ~ N&#xff0c;放在架子上。 比如有 5 个瓶子&#xff1a; 2 1 3 5 4 要求每次拿起 2 个瓶子&#xff0c;交换它们的位置。 经过若干次后&#xff0c;使得瓶子的序号为&#xff1a; 1 2 3 4 5 对于这么简单的情况&#x…

腿足机器人之十一- 深度强化学习

腿足机器人之十一- 深度强化学习 机器人能力腿足机器人RL问题建模强化学习解决方案 强化学习算法库选择建议 深度学习技术已经在语音、图像、视频、文本等领域应用广泛&#xff0c;其和强化学习的结合使得基于深度学习的大模型能力更是上升一个台阶。因而用在腿足机器人的运动中…

纠错检索增广生成论文

一、摘要 动机&#xff1a;RAG严重依赖于检索文档的相关性&#xff0c;如果检索出错&#xff0c;那么LLM的输出结果也会出现问题 解决方案&#xff1a;提出纠正性检索增强生成&#xff08;CRAG&#xff09;即设计一个轻量级的检索评估器&#xff0c;用来评估针对某个查询检索…

多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题

多源 BFS 是一种解决 边权为 1 的多源最短路问题 的高效算法。其核心思想是将所有源点视为一个“超级源点”&#xff0c;通过一次 BFS 遍历即可计算所有节点到最近源点的最短距离。以下从原理、实现和代码示例三个方面深入讲解&#xff1a; 目录 一、原理分析 1. 单源 BFS vs…

Jenkins 构建 Unity 打包 .apk 同时生成 .aab

Jenkins 构建 Unity 打包 .apk 同时生成 .aab Android App Bundle简称 AAB&#xff0c;想了解更多关于 AAB 的知识&#xff0c;请看官网 https://developer.android.google.cn/guide/app-bundle/faq?hlzh-cn APK 打包部分在复用上一篇 Jenkins 构建 Unity打包APK 一、新建一…

清华大学第五弹:《DeepSeek与AI幻觉》

作者&#xff1a;清华大学新闻与传播学院新媒体研究中心、人工智能学院&#xff08;新媒沈阳团队&#xff09; 时间&#xff1a;2025年2月 完整版下载地址&#xff1a;夸克网盘分享 一、AI幻觉的定义与分类 定义 学术定义&#xff1a;模型生成与事实不符、逻辑断裂或脱离上下…

分布式数据库解析

title: 分布式数据库解析 date: 2025/2/20 updated: 2025/2/20 author: cmdragon excerpt: 通过金融交易、社交平台、物联网等9大真实场景,结合Google Spanner跨洲事务、DynamoDB毫秒级扩展等38个生产级案例,揭示分布式数据库的核心原理与工程实践。内容涵盖CAP定理的动态…

Zotero 快速参考文献导出(特定期刊引用)

目录 一、添加样式 每次投期刊时每种期刊的引用方式不一样&#xff0c;就很麻烦。发现zeotero添加期刊模板再导入很方便 一、添加样式 然后就能导出自己想要的期刊格式的引用了