Deepseek学习路线全攻略:从API调用到本地部署与微调 1. 先搞清楚Deepseek到底是个什么级别的选手1.1 一句话说清Deepseek的来路和定位最近后台收到好多私信清一色都在问同一个事儿Deepseek到底怎么学网上资料东一榔头西一棒子不是太浅就是太散根本没有一条能从头走到尾的路子。我干脆把这两年的实操经验整理成这一篇覆盖从API调用、提示词工程、本地部署到微调的完整链路按着顺序吃透遇到实际问题也能自己排查。先给还没上车的朋友交个底。Deepseek是深度求索出品的开源大模型系列目前已经形成了从轻量级到旗舰级的完整模型谱系主打的卖点就是性能对标国际一线闭源模型同时开放权重、允许商用中文理解和生成能力还特别能打。这也是为什么从技术圈到产业界都在折腾它——你手上拿到的不是一个黑盒API而是一套能自己部署、微调甚至蒸馏的完整大模型技术栈。换句话说Deepseek对大模型从业者的价值不在某个单项指标而在于它把从模型到产品这条路的中间环节全部打通了。个人开发者可以用API快速落地业务企业可以私有化部署避免数据出域研究团队可以基于开源权重做二次训练。这篇文章就是照这个由浅到深的层次来铺开的。1.2 Deepseek模型家族V3、R1、VL选型别再迷糊很多新手上来就是一句我想用Deepseek但Deepseek不是一个模型而是一族模型。用错了型号效果天差地别。模型系列定位适用场景显存参考量化后Deepseek-V3通用对话与推理主力日常问答、内容生成、代码辅助7B约6GB671B需多卡集群Deepseek-R1推理增强版数学证明、逻辑推理、复杂代码蒸馏版7B约6GBDeepseek-VL多模态视觉语言图像理解、OCR、图文问答7B约7GB蒸馏小模型边缘端部署嵌入式、Jetson、个人电脑1.5B约1.5GB选型逻辑其实就一句话先看任务需要什么能力再看你的硬件能扛多大参数。纯粹做文本对话V3系列就够了要处理数学和复杂推理换R1要读图上VL。至于蒸馏小模型别指望它达到旗舰的智商但胜在跑得快、省显存适合做本地离线服务。1.3 为什么社区都在盯着Deepseek折腾不是吹捧Deepseek这波能火确实有几个实打实的原因。最直观的是成本。API调用的价格相比国际一线模型低了一个量级这对做原型验证和创业项目的人来说太关键了——你拿它跑一天的测试账单可能只是以前的一顿饭钱。开源权重和允许商用意味着技术选型上少了一道合规锁很多人把这看作自己的模型可以随便改。更深一层的原因是模型本身的能力确实在线。中文语料的理解深度、长文本的处理能力、代码生成的质量都已经到了可以直接进生产环境的水准。而且Deepseek背后还公开了一些智能体训练的探索——比如如何通过强化学习提升模型的工具调用和规划能力这些东西对整个行业都有参考价值。2. 入门第一关API调用与基础对话开发2.1 注册、拿Key、发第一个请求用Deepseek做开发最快的路径是调用官方API。它的接口设计兼容OpenAI格式也就是说凡是能接GPT的代码换个base_url和key就能切到Deepseek。这一点对老玩家来说几乎零学习成本。注册之后到控制台创建一个API Key记好两样东西API地址和Key本身。顺便说一句Key一定要放服务端环境变量里别写在前端代码里否则别人一扒源码就能盗刷你的额度。我见过不止一个新手把Key贴在前端请求里结果被爬虫扫到一夜之间余额清零。然后就是经典的第一次对话用Python的requests库就能测通import requests API_URL https://api.deepseek.com/chat/completions API_KEY sk-你的密钥 payload { model: deepseek-chat, messages: [ {role: system, content: 你是一个乐于助人的助手。}, {role: user, content: 用一句话解释什么是大模型} ], temperature: 0.7, stream: False } resp requests.post( API_URL, jsonpayload, headers{Authorization: fBearer {API_KEY}} ) print(resp.json()[choices][0][message][content])2.2 这几个核心参数必须吃透新手调接口爱盯着模型名字其实真正影响输出质量的是这几个参数temperature温度控制随机性。0到1之间越大越天马行空越小越保守严谨。写代码、做数学题建议调到0.2以下做文案创意可以放到0.8以上。top_p核采样从概率最高的候选集合里动态采样。和temperature功能有重叠官方建议一次只调其中一个不要两个一起猛改。我自己的习惯是锁定top_p为1只通过temperature来控制风格。max_tokens最大输出长度限制生成上限。很多人栽在这里——明明要求模型输出长文本结果在max_tokens里只给了512模型话没说完就戛然而止。需要长输出就把这个值调大V3的上下文窗口足够大放心用。stop停止标记遇到指定字符串就停止生成。适合让模型输出结构化内容时使用比如指定一个分隔符方便后续解析。调试建议先固定参数跑10个样例观察输出质量再按需微调。不要凭感觉同时改多个参数否则你永远不知道是哪一项起了作用。2.3 流式输出SSE实时渲染的原理与实现做过聊天机器人的朋友都知道如果每次都要等模型把整段话生成完再一次性返回体验就像拨号上网用户等上几秒就想关页面。解决办法是流式输出也就是SSE。SSE本质上是服务器把生成的内容按token切成一块块事件通过HTTP长连接实时推给前端。服务端开启响应头Content-Type: text/event-stream客户端每次收到data:开头的行就立刻渲染。用curl就能看到原始形态curl -N -X POST https://api.deepseek.com/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的密钥 \ -d { model: deepseek-chat, messages: [{role: user, content: 讲个冷笑话}], stream: true }你会看到一行行data: {choices:[{delta:{content:从前}}]}这样的数据陆续刷新。Python侧的流式接收其实就是一个循环逐行解析JSON里的delta字段import json import requests payload { model: deepseek-chat, messages: [{role: user, content: 讲个冷笑话}], stream: True } resp requests.post(API_URL, jsonpayload, headers{Authorization: fBearer {API_KEY}}, streamTrue) for line in resp.iter_lines(): if not line: continue line line.decode(utf-8) if line.startswith(data:): data line[5:].strip() if data [DONE]: break delta json.loads(data)[choices][0].get(delta, {}) if content in delta: print(delta[content], end, flushTrue)前端同学可以用fetch来消费这个流注意要用ReadableStream来按块读取同时挂一个AbortController用于停止生成功能const controller new AbortController(); const response await fetch(/api/chat, { method: POST, body: JSON.stringify({ prompt: 你好 }), signal: controller.signal }); const reader response.body.getReader(); const decoder new TextDecoder(); while (true) { const { done, value } await reader.read(); if (done) break; const text decoder.decode(value); // 将text中的SSE数据解析后追加到页面 } // 用户点击停止时调用 controller.abort();有个坑必须提醒SSE流中途断开很常见前端要做断线重连和超时兜底。尤其是接入Agent场景时工具调用可能要让模型多次思考每次都会产生新的流需要一个合理的状态机来管理否则页面会出现内容渲染错乱。2.4 函数调用Tool Calls让模型真正做事光让模型聊天没多大价值真正有用的场景是让它调用工具查数据库、查天气、操作API。Deepseek的chat接口原生支持函数调用tool calls。流程分三步走。第一步你在请求里声明有哪些函数可用包括函数名、描述和JSON Schema参数结构。第二步模型分析用户请求返回一个我需要调用某个函数参数是这样的结果注意此时模型只是提出了调用意向并没有真的执行。第三步你的服务端按参数去执行真实函数把结果作为一个新的消息回传给模型模型基于真实结果生成最终回答。这里最容易翻车的就是第三步。很多人拿到模型返回的tool_calls后以为调用一下就完事了结果直接把函数返回的原始数据原样塞给模型没有按message格式回传模型就懵了——它不知道自己到底调没调用成功。正确的做法是把函数执行结果包装成role为tool的消息带上tool_call_id对应回去。实际项目里函数调用常常要配合流式输出的增量返回来做。也就是说模型边生成文本边决定要调用哪个工具你需要同时解析文本流和工具调用流。这个逻辑稍微复杂建议先跑通非流式版本再改流式分两步走不容易出错。3. 提示词工程与上下文工程把模型调教成你要的样子3.1 提示词工程的核心不是话术是结构很多人把提示词工程理解成会说话——多写几句好话、礼貌用语模型就听话了。其实不然。Deepseek这类模型对指令的遵循能力很强但前提是你把指令结构摆清楚。我在实际项目中总结的提示词四要素角色告诉模型你是谁比如你是资深量化分析师。角色设定能激活模型在该领域的知识分布输出风格会明显改变。任务一句话说清目标避免模糊。不要写帮我分析一下这个股票要写基于近30日的OHLCV数据输出趋势判断、关键支撑位和风险提示。格式约束指定输出结构比如以JSON格式返回包含trend、support、risk三个字段。模型是概率生成你给格式越具体它越不容易跑偏。示例给一两个输入输出对。尤其在风格和格式要求比较特殊时example比任何文字描述都管用。这个叫few-shot能让模型直接模仿你的范式。此外处理复杂任务时要把任务拆成步骤让模型一步步走而不是一口气问终极问题。比如先总结这段文本的主题再提取其中的关键实体最后输出三行摘要每个步骤的大模型推理结果都要用上效果比一次性要求强得多。3.2 上下文工程窗口不是无限的要管不要堆大模型有个尴尬的物理现实上下文窗口虽长但用得太满注意力会被稀释模型会忘记开头的信息。这就是为什么把整本小说塞进提示词的做法不可取。上下文工程解决的正是这个问题——不追求把所有信息都塞进去而是以合理的方式组织和压缩信息。我在项目中常用的招数第一是摘要压缩。长对话跑了几十轮之后把早期轮次的信息提取出关键要点存成一段精简摘要替换掉原始记录了事。第二是检索增强RAG。不把所有知识库内容塞进提示词而是根据用户提问从向量数据库里检索最相关的几段文本拼进去。第三是结构化组织。把上下文分成系统指令区、背景资料区、对话历史区、用户输入区各部分用标记符号分隔让模型清楚每一块的作用。这里要特别强调上下文窗口不是用来装的是用来精挑细选的。我做过一个测试把检索到的相关资料从10段增加到30段看似信息更全输出的准确率反而下降了原因就是相关信息的信噪比变了。上下文管理的核心是让模型在有限的注意力里聚焦到最有价值的信息上。3.3 实战案例如何用Deepseek分析股票K线图来一个可复现的实战。假设手上有某只股票近30天的日线数据包含日期、开盘、收盘、最高、最低、成交量想让Deepseek帮忙做技术分析。第一步把原始数据转成模型容易读的紧凑格式不要一上来就贴一个巨大表格。做成类似日期:2025-01-10,开:12.5,收:13.2,高:13.5,低:12.3,量:120000的文本序列。第二步写System Prompt你是技术分析助手。请基于提供的K线数据做分析 1. 判断中期趋势上升/下降/震荡 2. 标注关键支撑位和压力位 3. 识别最近的量价背离信号 4. 给出风险提示不要给绝对买卖建议 输出格式结论 理由每项理由引用具体数据第三步是模型调用技巧。把temperature调到0.2以下避免模型发挥想象力编数据。同时要求它引用具体数据能有效减少幻觉。实测效果Deepseek对带具体数字的行情数据分析得相当有条理给出的趋势判断、支撑压力位都基于真实数值推导带有严谨的推理链条。但也发现了两个局限对财务基本面数据的理解不如专业金融模型且不会自动抓取实时数据——它只分析你给它的内容不做外部查询。别指望它替代行情软件把它当作分析工具更合适。4. 本地部署把大模型装进自己的电脑或边缘设备4.1 硬件评估显存是硬约束其他都是软问题本地部署的第一步不是装软件而是算显存。大模型推理的显存需求有一个粗略公式显存需求GB≈ 参数量B× 每参数字节数 / 1024以7B模型、4-bit量化为例7B× 0.5字节≈ 3.5GB加上KV Cache和运行时开销实际推荐8GB以上显存。如果是14B模型4-bit量化算下来约7GB推荐16GB显存。70B级别你就别想消费级单卡了至少48GB的A6000/4090双卡才跑得舒服。一个常见误区只看显存大小不看带宽和算力。同样8GB显存笔记本的RTX 4050和桌面的RTX 4070跑同一模型速度差很多因为显存带宽不同。预算有限的话优先保证带宽而不是容量。4.2 部署框架选型Ollama、llama.cpp、vLLM怎么选本地部署框架我基本都试过各有定位别指望一个框架通吃所有场景框架优势适合场景Ollama安装简单、命令少、API现成个人电脑体验、快速原型llama.cpp极致性能优化、支持CPU跑老电脑、边缘设备、无GPU环境vLLM高并发、PagedAttention生产环境API服务、多用户访问对普通用户我强烈建议从Ollama入手。Windows 11下装Ollama就是下载安装包点两下然后跑一行命令拉模型ollama pull deepseek-r1:7b ollama run deepseek-r1:7b对话直接就能用。更妙的是Ollama自带API服务默认监听localhost:11434任何程序都能通过HTTP调这个本地模型接口同样是OpenAI兼容格式。也就是说你之前写的GPT代码改一下base_url为http://localhost:11434/v1就切换到了本地Deepseek。4.3 Jetson Orin等边缘设备的部署思路边缘设备是本地部署的一个特殊分支。手头有NVIDIA Jetson Orin的朋友会问能不能跑Deepseek答案是可以但要会取舍。Jetson Orin系列自带GPU显存和内存共用16GB版本大约能跑7B量化模型。关键点在于不要直接装通用的Ollama最好使用NVIDIA官方针对Orin优化的容器镜像或者直接用llama.cpp编译针对Jetson GPUARMGPU的版本推理速度比通用版本快不少。部署步骤概览# 在Jetson上安装llama.cpp git clone https://github.com/ggerganov/llama.cpp cd llama.cpp # 开启CUDA和ARM优化 cmake -B build -DGGML_CUDAON -DGGML_NATIVEON cmake --build build --config Release # 将模型文件放到models目录 # 启动本地API服务 ./build/bin/llama-server \ -m models/deepseek-r1-7b-q4_k_m.gguf \ --host 0.0.0.0 --port 8080边缘部署最大的坑是散热和功耗。跑大模型时Jetson的功耗会瞬间拉满如果散热设计不到位性能会因降频而大打折扣。建议部署前加装主动散热片并监控温度曲线。4.4 部署后的服务化与集成模型跑起来了只是第一步真正干活还得把它包装成服务。本地部署的价值就在这里开始显现模型只在本机运行数据不出内网隐私可控而且没有按token计费的心理负担想怎么调就怎么调。个人电脑本地部署的典型玩法包括搭建私人知识库问答系统接上本地的RAG引擎配合语音识别做语音助手甚至通过局域网共享给同事用。服务化时注意两个细节。一是上下文长度限制本地小模型的窗口通常比云端API窄长文档要提前做切片。二是并发处理能力Ollama默认单请求排队多用户同时访问时建议上vLLM因为它有更好的连续批处理机制吞吐量高一个量级。我自己在部署生产环境时踩过一个大坑直接用Ollama裸奔对外提供服务结果请求量上来后KV Cache内存暴涨服务直接OOM。后来加了nginx反代、请求排队和任务超时才稳定下来。本地模型服务化远没有想象中简单容量规划要做在前面。5. 模型微调让Deepseek说你的话5.1 微调之前先回答三个问题很多朋友一上来就喊我要微调大模型我先泼一盆冷水。微调是成本最高、风险最大的技术手段动手前先问自己三个问题问题一提示词能不能解决如果只是需要特定的回答风格、输出格式先尝试把要求写进System Prompt。大多数场景提示词能解决80%的问题。问题二RAG能不能解决如果模型需要回答的是私有知识库里的内容比如公司文档、个人笔记这部分用检索增强RAG就能搞定不需要动模型权重。问题三数据够不够微调需要高质量的成对数据目标是让模型学会特定模式。如果手上只有几百条数据别微调效果大概率不如提示词。至少准备几千条高质量数据才有意义。只有当模型在特殊表达范式上确实做不到——比如你的客服必须用特定术语体系、技术支持必须按照特定流程作答——才需要微调。5.2 LoRA微调实战低秩适配的原理与操作LoRA的核心思想是冻结原有模型参数只训练一小部分低秩矩阵。如果把大模型比作一个知识渊博的专家LoRA就像给专家配了一位传达员不用重新培训专家只培训传达员怎么把专家的知识翻译成你想要的表达风格。训练参数量大幅减少显存需求也随之下降普通消费级显卡也能跑微调。实操层面推荐用LLaMA-Factory来跑。流程大致是准备数据整理成对话格式的JSONL每个样本包含instruction, input, output三个字段。配置训练参数在examples目录下找到对应YAML修改模型路径、数据路径。启动训练。以7B模型为例LoRA训练在单张RTX 3090上可以跑batch size为4、学习率为1e-4大约需要几个小时。导出合并训练完成后把LoRA权重合并回原模型转成GGUF格式就可以用Ollama加载。训练脚本核心参数大概是这样model_name_or_path: deepseek-ai/deepseek-7b dataset: your_custom_dataset lora_rank: 8 lora_alpha: 16 learning_rate: 1e-4 num_train_epochs: 3 per_device_train_batch_size: 4 gradient_accumulation_steps: 4几个关键参数的解释lora_rank是低秩矩阵的维度越大表示可学习参数越多但容易过拟合8到16适合大多数任务lora_alpha是缩放系数控制LoRA影响强度一般设为rank的2倍learning_rate用1e-4这种小学习率不要学太猛。5.3 GPU配置与训练加速经验微调Deepseek到底需要什么显卡这是被问爆的问题。7B模型的LoRA微调单张16GB显存的RTX 4060 Ti就能跑因为LoRA本身可训练参数很少显存主要被基础模型和激活值占用。想跑得更舒服上24GB的RTX 3090或4090还能开更大的batch size。如果是14B模型LoRA推荐24GB起步。全参数微调就别想了那需要A100级别的多卡集群。训练加速有几个亲测有效的小技巧开启bf16混合精度能在不损失精度的前提下大幅减少显存占用和计算时间。开启gradient checkpointing以少量计算换显存适合大模型训练能省约30%的显存。小心过拟合LoRA参数少但依然可能过拟合尤其是数据量少、训练轮数多的时候。每轮训练后做一个验证集评估观察loss是否回升及时停止。还有一个经验之谈微调之后一定要做对比测试。把相同的问题分别喂给原始模型和微调模型检查输出差异是否符合预期。我见过不少微调跑了半天效果甚至不如原来白费功夫。微调前设置好基线微调后用统一评测集打分这是基本素养。6. 工具链与生态集成把大模型变成工作流的一部分6.1 Codex接入Deepseek编程助手的一次升级说说Codex接入Deepseek这个热门玩法。Codex是OpenAI的编程助手产品但你可以通过配置模型提供方把它接到Deepseek上。原理很简单Codex的模型调用走的是OpenAI兼容接口只要把地址指向Deepseek、把模型名换成deepseek-chat就行。实际给我的体验是编程生成的代码质量相当能打尤其是Python、JavaScript这类常见语言对自然语言描述的准确理解程度不亚于用闭源模型。而且因为在API层面用的是Deepseek成本和数据管控都有优势适合个人开发者在本地做一些代码辅助工具的试验。接Codex时注意Deepseek和Codex的上下文长度差异可能导致长文件处理中断建议控制文件输入大小把大文件拆成模块再逐步提问别一口气把整个仓库塞进去。6.2 Agent/Harness类工具从单次问答到自主行动大模型再聪明如果只会你问一句它答一句就只是一个高级搜索引擎。真正让它发挥价值的地方是要和工具链组合起来形成自主行动的Agent。目前生态里比较流行的方式是把LangChain、AutoGen、Dify这类Agent框架和Deepseek结合。举例来说在Dify里配置一个Agent应用给它接上搜索工具、数据库工具当用户提问帮我在数据库里查上个月销售额最高的产品时Agent会经历理解意图→决定调用数据库工具→传入查询参数→拿到结果→生成回答。用户看到的是一段完整的任务执行过程而不仅是一个回答。这类框架的集成难度不在AI模型本身而在于工具调用链路的设计。你要明确每个工具的输入输出Schema定义好异常分支工具超时怎么办工具返回空结果怎么办模型给出非法参数怎么办这些边界情况处理得好不好决定Agent是好用还是玩具。在Java生态里Spring AI也提供了类似的能力配合Web场景可以做出带SSE流式输出的对话服务适合已有Spring Boot项目的团队快速集成。6.3 知识抽取、多模态与模型即基础设施除了对话和AgentDeepseek还能用在信息处理的深层场景。知识抽取是典型代表。开源社区有OneKE这类基于大模型的通用知识抽取框架可以把非结构化文本中的实体、关系、事件抽取出来构建知识图谱。这类任务特别能体现大模型优势——传统NLP用规则或小模型做抽取准确率和召回率都吃力换成大模型之后只要提示词写对了抽取质量能提升一个档次。多模态方向上Deepseek-VL 系列支持图像输入可以做复杂版面OCR、图文问答。实际测试里它对表格图片、图表图片的理解相当稳对截图里的信息定位也很准确。如果你要做拍照问问题的产品用它比传统OCR更灵活。这些能力的背后其实是同一个趋势大模型不再是单一的聊天组件而是变成了各类应用的基础设施。你的任务不是把一个模型用好而是要学会在合适的场景里调用合适的模型配合工具、编排、缓存形成一套完整的能力管道。这也是为什么我说学Deepseek不要只学模型本身更要学怎么把它嵌进真实的工程体系。7. 高频问题排查实录与避坑指南7.1 调用API时的典型翻车现场整理一下我做技术支持时接触到的最高频问题这些问题几乎每个Deepseek开发者都会遇到现象可能原因解决方案返回401鉴权失败API Key配错或过期检查环境变量重新生成Key请求超时网络不稳定或请求体过大开启流式输出拆分长文本请求输出被截断max_tokens设置太小按需调大max_tokens1000以上起步上下文越界对话历史累积太长做摘要压缩或按窗口截断返回格式不是JSON提示词格式约束不够明确在提示词里加只输出JSON并做后置解析补救模型幻觉严重temperature太高或信息不足降低temperature补充背景资料7.2 本地部署的常见坑本地部署的问题比API调用更隐蔽因为环境千差万别。遇得最多的是这三类显存不够的报错。错误信息往往是一堆CUDA相关日志看起来很高深实则就是显存不足。解决思路不是换大显卡而是降低精度——把Q8量化降到Q4量化显存需求立马减半。实在不行用llama.cpp的CPU模式降级运行慢是慢点但至少能跑。模型下载慢或卡住。Hugging Face和其它模型下载站经常因为网络问题卡住建议用支持断点续传的下载工具或者直接找国内镜像站。服务启动失败但日志不报错。这种情况十有八九是端口被占用或者模型文件损坏。先检查端口占用状态再比对模型文件的SHA256校验值。模型文件不完整是本地部署最常见的问题没有之一。7.3 微调与集成中的高级问题微调过程中最常见的失败模式是训练loss降了但推理效果没有提升。检查这几处数据集格式是否和模型要求的对话格式一致格式错误模型根本学不到东西。训练轮数是否过多导致过拟合过拟合的典型表现是训练集loss低验证集loss高。学习率是否有问题LoRA学习率过大容易训飞降到1e-5以下试一次。集成过程中SSE流式输出的断连问题也要重点关注。生产环境一定要实现重连机制而且要注意AbortController的释放——用户快速连续提问时上一次的abort信号可能还没清除新请求会被误伤。还要特别提醒一句大模型生成的内容本质是概率性的不是金科玉律。尤其在做金融分析、技术决策之类的事情时输出结果需要人工复核。把模型的输出当作建议而不是结论这是每个大模型开发者的基本素养。8. 学习路线与最后的一点体会如果你今天刚开始接触Deepseek我建议按这个顺序走第一步先用官方API跑通对话把参数手感找好这是最便宜也最快的路径。第二步练习提示词工程尤其是结构化的输出控制这是性价比最高的技能。第三步动手做一个小应用比如一个带知识库的问答助手强迫自己处理上下文和检索问题。第四步部署一个本地模型体会硬件限制下模型的取舍。最后如果确实有垂直场景需求再考虑微调。不要一上来就啃论文和源码大模型是工程属性很强的技术先在实践中建立直觉再回到理论里深挖。纸上谈兵永远学不会写代码也永远学不会Modeling。最后分享一点个人体会。我这两年接了很多大模型项目最大的感受是大模型的价值不在于它能做什么而在于你会用它在什么场景解决什么问题。同样是Deepseek有人拿它做一个调侃用的聊天机器人有人拿它做成客服自动化的核心引擎效果天差地别。差别就在工程能力和场景理解上。工具始终是工具而工程师的价值在于把工具放在对的位置上。希望这篇教程能帮你把基础的链路跑通先把会用做到然后一步步走向用得好。真到把Deepseek部署进自己的产品里的那一刻你会感谢今天动手的自己的。