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

DeepSeek 大模型本地部署与云端部署全指南:从环境搭建到生产化实践

引言

2024年以来,DeepSeek 系列大模型因其出色的性能表现和开源策略,迅速成为开发者社区关注的焦点。从 DeepSeek-V2 到 DeepSeek-R1,再到最新迭代版本,这个由中国团队打造的模型家族在多项基准测试中展现出与国际顶尖模型媲美的实力,而参数量级却远低于同级别竞品。

对于广大开发者而言,如何将 DeepSeek 模型真正落地到自己的项目中,是比模型本身的性能更值得关注的问题——毕竟,再强大的模型,部署不好也只是纸上谈兵。

本文将从零开始,系统性地梳理 DeepSeek 大模型的部署方案,覆盖从个人开发者的本地轻量化部署,到企业级云原生的生产化部署,再到边缘设备的端侧推理,力求让你花一篇文章的时间,摸透 DeepSeek 部署的方方面面。

实战指南:本文配套完整的部署脚本和配置文件,建议结合实战操作阅读。更多 DeepSeek 大模型实战教程参见:DeepSeek 实战指南系列


一、DeepSeek 模型家族与部署需求分析

1.1 模型版本概览

在部署之前,先了解当前主流的 DeepSeek 模型版本及其特点:

模型参数规模特点适用场景
DeepSeek-V2236B (MoE)高性价比,激活参数仅 21B云端 API 调用
DeepSeek-R1671B (MoE)推理能力极强,思维链能力突出复杂推理任务
DeepSeek-Coder-V2236B (MoE)代码能力优秀,支持多种编程语言代码生成、审查
DeepSeek-R1-Distill1.5B-70B蒸馏版,轻量高效本地部署、边缘设备

核心要点:DeepSeek 的 MoE(Mixture of Experts)架构使得其虽然总参数量大,但每次推理仅激活部分参数。例如 DeepSeek-V2 总参数量 236B,但激活参数仅 21B,这意味著内存需求远小于同等规模的密集模型。

1.2 部署方案决策矩阵

选择哪种部署方案,主要取决于三个维度:推理速度要求可用硬件资源并发访问量

下表可以帮助你快速定位最适合的方案:

场景推荐方案最低硬件要求推理速度
个人学习/调试Ollama/llama.cpp 本地部署16GB VRAM 或 32GB RAM中等
API 集成开发云端 API (DeepSeek 官方/Huawei MaaS)无需 GPU
企业内部服务vLLM/TGI 高并发部署4×A100 80GB极快
移动端/边缘设备蒸馏版 + ONNX/TFLite8GB RAM较慢

二、本地部署方案详解

2.1 使用 Ollama 快速部署(最推荐个人开发者)

Ollama 是目前最流行的大模型本地运行工具之一,它把模型下载、量化、推理全部封装成一行命令,特别适合快速体验。

2.1.1 安装 Ollama
# Linux 一键安装 curl -fsSL https://ollama.com/install.sh | sh # macOS 可以直接下载安装包 # Windows 用户下载 exe 安装文件

安装完成后,验证版本:

ollama --version # 预期输出: ollama version 0.x.x
2.1.2 下载并运行 DeepSeek 模型

Ollama 官方仓库已经支持 DeepSeek 模型系列:

# 运行 DeepSeek-R1 蒸馏版(7B 参数,适合 8GB 显存) ollama run deepseek-r1:7b # 或者运行更大版本(需要 24GB+ 显存) ollama run deepseek-r1:14b # 运行 DeepSeek-Coder 代码专用版 ollama run deepseek-coder:6.7b

首次运行会自动下载模型权重文件,耐心等待即可。下载完成后直接进入交互式对话界面。

2.1.3 通过 API 调用本地部署的模型

Ollama 默认在http://localhost:11434提供 REST API,可以很方便地与你的应用程序集成:

import requests import json # 配置模型地址 OLLAMA_API = "http://localhost:11434/api/generate" # 构建请求 payload = { "model": "deepseek-r1:7b", "prompt": "用 Python 实现一个快速排序算法,并分析其时间复杂度。", "stream": False } # 发送请求 response = requests.post(OLLAMA_API, json=payload) result = response.json() print(result["response"])

如果你需要流式输出(类似 ChatGPT 的逐字输出效果),将stream参数设为True

payload["stream"] = True response = requests.post(OLLAMA_API, json=payload, stream=True) for line in response.iter_lines(): if line: chunk = json.loads(line.decode('utf-8')) print(chunk["response"], end="", flush=True)

2.2 使用 llama.cpp 部署(极致性能优化)

如果你的 GPU 显存有限,或者需要在纯 CPU 环境下运行,llama.cpp 是最佳选择。它通过 4-bit/8-bit 量化将模型体积压缩到原来的四分之一甚至更小。

2.2.1 编译安装
# 克隆仓库 git clone https://github.com/ggerganov/llama.cpp cd llama.cpp # CPU 版本编译 make # 如果要用 GPU 加速(以 CUDA 为例) make LLAMA_CUDA=1
2.2.2 下载量化模型

可以使用 Hugging Face 上已有的量化版本,也可以自己进行量化:

# 下载已量化的 DeepSeek 模型(GGUF 格式) # 从 Hugging Face 下载 wget https://huggingface.co/bartowski/DeepSeek-R1-Distill-Qwen-7B-GGUF/resolve/main/DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf # 或者从 ModelScope 下载(国内速度更快) # pip install modelscope # from modelscope import snapshot_download # snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-7B-GGUF')
2.2.3 运行量化模型
# 基本推理 ./main -m DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf \ -p "用 Python 实现一个 LRU 缓存,要求线程安全。" \ -n 1024 \ -t 8 # 交互式聊天模式 ./main -m DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf \ -i \ --interactive-first \ --color \ --ctx-size 4096 \ --temp 0.7

参数解释:
--m:指定模型文件
--p:输入提示
--n:生成的最大 token 数
--t:CPU 线程数
---temp:温度参数,控制输出的随机性
---ctx-size:上下文窗口大小

2.2.4 提供 API 服务

llama.cpp 的服务器模式可以将模型暴露为兼容 OpenAI API 的服务:

./server -m DeepSeek-R1-Distill-Qwen-7B-Q4_K_M.gguf \ --host 0.0.0.0 \ --port 8080 \ --n-gpu-layers 35 # GPU 卸载层数,根据显存调整

启动后即可通过标准 OpenAI 客户端调用:

from openai import OpenAI client = OpenAI( base_url="http://localhost:8080/v1", api_key="not-needed" # llama.cpp 不需要 API Key ) response = client.chat.completions.create( model="deepseek-r1", messages=[ {"role": "system", "content": "你是一个专业的 Python 技术顾问。"}, {"role": "user", "content": "解释 Python 中的 GIL 是什么,以及它如何影响多线程编程。"} ], temperature=0.7, max_tokens=2048 ) print(response.choices[0].message.content)

2.3 使用 vLLM 部署(高吞吐生产环境)

对于需要处理高并发请求的生产环境,vLLM 是目前最成熟的选择之一。它通过 PagedAttention 等技术大幅提升推理吞吐量。

2.3.1 安装与启动
# 安装 vLLM(需要 CUDA 环境) pip install vllm # 启动服务(从 Hugging Face 直接加载) python -m vllm.entrypoints.openai.api_server \ --model deepseek-ai/DeepSeek-V2-Chat \ --tensor-parallel-size 4 \ --dtype auto \ --api-key token-abc123 \ --port 8000
2.3.2 高并发调用
from openai import OpenAI client = OpenAI( base_url="http://localhost:8000/v1", api_key="token-abc123" ) # 批量处理请求 requests_batch = [ {"role": "user", "content": f"解释一下 {topic}"} for topic in ["虚拟内存", "进程调度", "文件系统", "I/O 多路复用"] ] # 流式请求 for req in requests_batch: response = client.chat.completions.create( model="deepseek-ai/DeepSeek-V2-Chat", messages=[req], temperature=0.8, max_tokens=1024, stream=True ) full_response = "" for chunk in response: if chunk.choices[0].delta.content: full_response += chunk.choices[0].delta.content print(f"问题: {req['content']}") print(f"回答: {full_response}\n")
2.3.3 vLLM 性能调优参数
python -m vllm.entrypoints.openai.api_server \ --model deepseek-ai/DeepSeek-V2-Chat \ --max-num-seqs 256 \ # 最大并行序列数 --max-model-len 8192 \ # 最大上下文长度 --gpu-memory-utilization 0.9 \ # GPU 显存利用率 --block-size 16 \ # PagedAttention 块大小 --swap-space 16 \ # CPU 交换空间 (GB) --enforce-eager \ # 强制使用 eager 模式(调试用) --trust-remote-code

三、云端部署方案详解

3.1 使用 DeepSeek 官方 API

对于不想管理基础设施的开发者,直接调用 DeepSeek 官方 API 是最省事的选择。

# 注册获取 API Key # 访问 platform.deepseek.com 注册账号 export DEEPSEEK_API_KEY="your-api-key-here"

调用示例:

from openai import OpenAI client = OpenAI( api_key="your-api-key-here", base_url="https://api.deepseek.com/v1" ) response = client.chat.completions.create( model="deepseek-chat", # DeepSeek-V2 messages=[ {"role": "system", "content": "你是一个资深算法工程师。"}, {"role": "user", "content": "详细讲解 KMP 字符串匹配算法的原理,并给出 Python 实现。"} ], temperature=0.7, max_tokens=4096, stream=True ) for chunk in response: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="")

API 定价参考(以 DeepSeek-V2 为例):
- 输入:约 ¥1 元/百万 tokens
- 输出:约 ¥2 元/百万 tokens
- 缓存命中:约 ¥0.2 元/百万 tokens

3.2 使用华为云 MaaS 平台部署 DeepSeek

华为云 MaaS(ModelArts as a Service)平台提供了 DeepSeek 模型的托管服务,适合国内用户使用,网络延迟更低。

3.2.1 创建推理服务

通过华为云控制台或 SDK 创建部署:

# 华为云 MaaS Python SDK 调用示例 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkcore.http.http_config import HttpConfig # 配置认证信息 credentials = BasicCredentials( ak="your-access-key", sk="your-secret-key" ) # 配置 API 网关 config = HttpConfig.get_default_config() config.ignore_ssl_verification = True # 发送推理请求 import requests url = "https://maas-infer.cn-north-4.myhuaweicloud.com/v1/chat/completions" headers = { "Authorization": f"Bearer {credentials.sign(url, 'POST')}", "Content-Type": "application/json" } payload = { "model": "deepseek-v2-chat-32k", "messages": [ {"role": "user", "content": "介绍 MaaS 平台的主要功能特点。"} ], "max_tokens": 2048 } response = requests.post(url, json=payload, headers=headers) print(response.json())
3.2.2 使用 Flexus 云服务器自建推理服务

如果想在同区域部署自己的推理服务,华为云 Flexus 云服务器提供了灵活的资源选择:

# 在 Flexus 实例上安装依赖 # 以 Ubuntu 22.04 为例 apt update && apt install -y python3-pip nvidia-cuda-toolkit # 安装推理框架 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install vllm # 下载模型 pip install huggingface-hub huggingface-cli download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local-dir ./models/deepseek-r1-7b # 启动推理服务 python -m vllm.entrypoints.openai.api_server \ --model ./models/deepseek-r1-7b \ --port 8080 \ --host 0.0.0.0

3.3 Docker 容器化部署

容器化部署可以简化环境依赖管理,推荐用于生产环境。

3.3.1 Dockerfile 示例
FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04 # 设置工作目录 WORKDIR /app # 安装 Python 和依赖 RUN apt-get update && apt-get install -y \ python3 python3-pip curl \ && rm -rf /var/lib/apt/lists/* # 安装 vLLM RUN pip3 install vllm==0.4.0 # 复制应用代码 COPY app.py . COPY start.sh . # 暴露推理端口 EXPOSE 8000 # 启动命令 CMD ["bash", "start.sh"]
3.3.2 docker-compose 多服务编排
version: '3.8' services: deepseek-api: build: . ports: - "8000:8000" environment: - MODEL_NAME=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B - TENSOR_PARALLEL_SIZE=1 - GPU_MEMORY_UTILIZATION=0.9 deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] volumes: - ./models:/app/models - model_cache:/root/.cache nginx-reverse-proxy: image: nginx:alpine ports: - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./ssl:/etc/nginx/ssl depends_on: - deepseek-api volumes: model_cache:
3.3.3 Nginx 反向代理配置
events { worker_connections 1024; } http { upstream deepseek_backend { least_conn; server deepseek-api:8000; } server { listen 443 ssl; server_name api.example.com; ssl_certificate /etc/nginx/ssl/cert.pem; ssl_certificate_key /etc/nginx/ssl/key.pem; location /v1/ { proxy_pass http://deepseek_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_buffering off; # SSE (Server-Sent Events) 支持 proxy_set_header Connection ''; proxy_http_version 1.1; chunked_transfer_encoding on; # 超时配置 proxy_read_timeout 300s; proxy_send_timeout 300s; } location /health { proxy_pass http://deepseek_backend/health; } } }

四、性能优化与最佳实践

4.1 推理加速技术

4.1.1 KV Cache 优化

大模型推理时,KV Cache 的大小直接影响吞吐量。以 DeepSeek-V2 为例,一个请求的 KV Cache 大约占用:

KV Cache 大小 ≈ 2 × num_layers × hidden_size × context_length × dtype_size

对于 236B 模型,单请求的 KV Cache 可能达到数 GB。优化策略:

# vLLM 内置的 PagedAttention 优化 # 启用 prefix caching 可以复用相同前缀的 KV Cache python -m vllm.entrypoints.openai.api_server \ --model deepseek-ai/DeepSeek-V2-Chat \ --enable-prefix-caching
4.1.2 批量推理(Dynamic Batching)

将多个请求合并为一个 batch 处理,充分利用 GPU 并行计算能力:

from vllm import LLM, SamplingParams # 初始化模型 llm = LLM( model="deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", tensor_parallel_size=1, gpu_memory_utilization=0.9 ) # 批量输入 prompts = [ "解释 Python 装饰器的工作原理。", "用 C++ 实现一个线程安全的单例模式。", "对比 HTTP/1.1 和 HTTP/2 的主要区别。", "解释数据库事务的 ACID 特性。", ] sampling_params = SamplingParams( temperature=0.7, max_tokens=1024, ) # 批处理推理 outputs = llm.generate(prompts, sampling_params) for i, output in enumerate(outputs): print(f"请求 {i+1}: {prompts[i]}") print(f"回答: {output.outputs[0].text}\n")

4.2 显存优化技术

4.2.1 模型量化

量化是降低显存需求最有效的手段:

# 使用 bitsandbytes 进行 4-bit 量化 pip install bitsandbytes # 在加载时进行量化 from transformers import AutoModelForCausalLM, BitsAndBytesConfig import torch quant_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16, bnb_4bit_use_double_quant=True, bnb_4bit_quant_type="nf4" ) model = AutoModelForCausalLM.from_pretrained( "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", quantization_config=quant_config, device_map="auto" )
4.2.2 FlashAttention

FlashAttention 可以同时降低显存占用和提升推理速度:

# 启用 FlashAttention v2 model = AutoModelForCausalLM.from_pretrained( "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", torch_dtype=torch.float16, attn_implementation="flash_attention_2", device_map="auto" )

4.3 多 GPU 分布式推理

对于完整的 DeepSeek-V2(236B)或 DeepSeek-R1(671B),单卡 GPU 显存无法容纳,需要多卡分布式推理:

# 使用 vLLM 的 tensor parallelism python -m vllm.entrypoints.openai.api_server \ --model deepseek-ai/DeepSeek-V2-Chat \ --tensor-parallel-size 4 \ --dtype bfloat16 \ --max-model-len 8192
# 使用 Transformers 的 device_map from transformers import AutoModelForCausalLM import torch model = AutoModelForCausalLM.from_pretrained( "deepseek-ai/DeepSeek-V2-Chat", torch_dtype=torch.bfloat16, device_map="auto", # 自动分配到多 GPU max_memory={ 0: "40GB", # GPU 0 1: "40GB", # GPU 1 2: "40GB", # GPU 2 3: "40GB" # GPU 3 } )

4.4 监控与运维

4.4.1 Prometheus + Grafana 监控
# prometheus.yml 配置 scrape_configs: - job_name: 'vllm' static_configs: - targets: ['localhost:8000'] metrics_path: '/metrics'
4.4.2 关键监控指标

部署上线后,需要重点关注的指标:

指标正常范围告警阈值
GPU 显存利用率70-90%>95% 或 <30%
推理延迟 (P99)<5s>10s
每秒钟请求数 (RPS)视硬件而定下降 50% 以上
每分钟 Token 输出量视配置而定下降 30% 以上
API 错误率<1%>5%

五、常见问题与排错指南

5.1 CUDA Out of Memory

现象:运行时出现CUDA out of memory错误

解决方案(按推荐顺序尝试):

  1. 使用更小的批次大小:--max-num-seqs 64
  2. 使用模型量化:Q4_K_M 可以将显存需求降低约 75%
  3. 减少最大上下文长度:--max-model-len 4096
  4. 升级蒸馏版本:从 DeepSeek-R1 换到 DeepSeek-R1-Distill-Qwen-7B

5.2 推理速度过慢

现象:Token 生成速度远低于预期

排错步骤

# 1. 检查 GPU 利用率和温度 nvidia-smi -l 1 # 2. 检查是否使用 CPU 推理(没有 GPU 加速) # 运行 vLLM 时添加 --verbose 参数查看加载日志 # 3. 检查模型是否加载了过多的 CPU offload # 查看日志中的 "Loading model on devices" 信息

优化方案
- 增加--tensor-parallel-size启用更多 GPU
- 确保使用bfloat16float16而非float32
- 使用 FlashAttention v2

5.3 模型输出质量不佳

现象:生成内容偏离主题、重复,或缺乏逻辑性

调整方案

# 更精细的参数控制 response = client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "你是一个严谨的技术专家,回答应当准确、简洁、结构化。"}, {"role": "user", "content": query} ], temperature=0.3, # 降低温度减少随机性 top_p=0.9, # 核采样 frequency_penalty=0.1, # 减少重复 presence_penalty=0.1, # 鼓励新话题 max_tokens=2048 )

5.4 Docker 部署常见问题

# 问题:Docker 容器内无法识别 GPU # 解决方案:安装 nvidia-container-toolkit distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker # 验证 GPU 是否可用 docker run --rm --gpus all nvidia/cuda:12.1.0-runtime-ubuntu22.04 nvidia-smi

六、总结与展望

本文系统性地介绍了 DeepSeek 大模型从本地部署到生产化的完整方案。从技术选型角度来看:

个人开发者首选 Ollama + 蒸馏版模型,一条命令即可运行,零配置学习成本。结合量化技术,6-8GB 显存的 GPU 就能流畅运行 7B 级别的模型,日常编码辅助完全够用。

企业内部服务推荐 vLLM + Docker 容器化部署,通过 Tensor Parallelism 多卡扩展、PagedAttention 内存优化、以及 Dynamic Batching 批量处理,可以在 4×A100 上达到上千 QPS 的吞吐能力,满足企业级应用需求。

云原生场景直接使用 DeepSeek 官方 API 或华为云 MaaS 平台提供的托管服务,无需管理基础设施,按量付费,适合快速验证和 MVP 阶段。

值得关注的趋势包括:
-硬件适配加速:各大芯片厂商(NVIDIA、AMD、华为昇腾)都在针对 MoE 架构进行底层优化,未来推理成本将进一步降低
-推理框架整合:vLLM、SGLang 等框架持续演进,推理引擎与模型架构的协同优化将成为重点
-端侧推理兴起:随着蒸馏技术和量化算法进步,移动端运行 DeepSeek 级别的模型将不再遥远

部署大模型不是一锤子买卖,而是持续迭代的过程。建议从最小可行方案开始,在验证业务价值后逐步优化硬件配置和推理性能。技术选型没有银弹,最适合你的方案取决于具体的业务场景、预算约束和技术栈。

希望这份部署指南能帮助你少走弯路,快速将 DeepSeek 的能力应用到实际项目中。


拓展阅读:更多关于 DeepSeek 大模型的高级用法、微调技巧和性能调优实战,请关注 DeepSeek 实战指南系列。

http://www.jsqmd.com/news/908752/

相关文章:

  • PS2026移除工具不可用怎么办?用 Banana 修图在 PS 里一样能去除杂物
  • 从二进制到动画:在Unity中复刻《寻秦OL》的完整避坑指南(附源码)
  • 解放双手!碧蓝航线全自动脚本终极指南:从零到精通的智能游戏管理方案
  • 如何快速备份微信聊天记录:面向普通用户的完整指南
  • BMS四层板电源完整性设计与纹波抑制
  • YouTube 2026 新规:AI 生成内容自动检测 + 更醒目标签,创作者与观众的双赢
  • 矩阵控制屏障函数(MCBF)原理与多无人机系统应用
  • Function Calling 详解:AI Agent Harness Engineering 的手与脚
  • GIS数据工程师的私藏技巧:用FME的StringSearcher和AttributeCreator玩转OSGB批量重命名与格式转换
  • RePKG终极指南:轻松解锁Wallpaper Engine壁纸资源宝库
  • Midjourney的Fast和Relax模式到底怎么选?算算你的10刀/30刀套餐怎么用最划算
  • 3分钟快速备份:GetQzonehistory帮你完整保存QQ空间历史说说的终极指南
  • 2026-05-29 全国各地响应最快的 BT Tracker 服务器(联通版)
  • ncmdumpGUI:一键解锁网易云音乐NCM格式,实现全设备音乐自由
  • 开源语言模型:从模型权重到工具链的全面开放解析
  • 2026年弥勒市正规上门黄金白银回收品牌门店名录:K金+铂金+金条+银条回收门店联系方式推荐+指南 - 前途无量YY
  • Matlab新手避坑指南:手把手教你用Kmeans处理自己的数据集(从导入数据到结果分析)
  • 品牌内容创新方法论:从流量思维到关系思维,构建反脆弱内容生态
  • 基于555定时器的Atari合成器DIY:从电路原理到3D打印外壳全流程
  • 频率调制干涉测量技术:原理、误差分析与优化
  • 如何彻底解放你的QQ音乐:qmcdump终极音频解密指南
  • 如何用E7Helper彻底解放双手?第七史诗自动化脚本终极指南
  • 3分钟掌握HsMod:告别炉石传说的55个烦恼,开启极致游戏体验
  • 用EB Tresos和ARXML文件搞懂AUTOSAR配置:一个CAN模块参数配置的实战拆解
  • CR2032电池驱动自动变色LED:极简电子制作与电路优化实战
  • 2026年汨罗市正规上门黄金白银回收品牌门店名录:K金+铂金+金条+银条回收门店联系方式推荐+指南 - 前途无量YY
  • 智慧树刷课插件:告别手动操作的学习效率神器
  • 2026杭州高端手表回收哪家好?五大本地口碑平台实力对比 - 合扬奢侈品交易中心
  • 保姆级教程:在UE4.24.3里用WEBUI插件嵌入ECharts图表,实现数据动态更新
  • BMS四层板精密采样电路布局