news 2026/9/2 17:02:29

DeepSeek工具包接入AI编码代理:API调用与推理模式实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepSeek工具包接入AI编码代理:API调用与推理模式实战指南

最近在给团队的编码代理做模型后端替换时,绕不开一个话题:DeepSeek 工具包。网上讨论虽然多,但大部分是零散截图和群聊消息,真正能把概念讲清楚、把接入步骤跑通的资料其实不算多。这篇文章我会从“为什么需要工具包”讲起,然后逐步拆解 DeepSeek API 的核心调用方式、思考模式下的多轮对话坑点,最后给出一套从 curl 验证、Python SDK 调用到 Codex CLI / Claude Code / VS Code 接入的完整实战流程。无论你是第一次接触 AI 编码代理,还是已经在用 Codex、Continue 这类工具的老手,都可以通过这篇文章把 DeepSeek 作为一个稳定的模型后端用起来。

1. 重新认识 DeepSeek:模型、开放平台与工具包

1.1 DeepSeek 到底是什么

DeepSeek 既指一系列开源大语言模型,也指面向开发者的开放平台。对普通开发者来说,最直接的体验是:注册开放平台账号、创建 API Key,就能通过 OpenAI 兼容的 Chat Completions 接口调用模型,把 DeepSeek 嵌入到自己的脚本、应用或开发工具里。

这里有一个非常关键的点:DeepSeek 的 API 兼容 OpenAI 的消息格式。这意味着大量原本为 OpenAI API 编写的 SDK、插件和命令行工具,只需要修改base_urlapi_key两处配置,就能把模型后端切换成 DeepSeek。这也是为什么社区里会出现各种“DeepSeek 一键接入 XX”的工具包,本质上都是利用了这个兼容性。

不过也要提醒一句:API 兼容不等于所有行为都完全一致。尤其是 DeepSeek 的推理模型(reasoner)在返回内容时多了一个reasoning_content字段,这个字段在多轮对话中需要被正确回传,否则会触发 400 报错。这一点后面会专门展开。

1.2 “工具包”和“harness”到底指什么

在 AI 编码代理这个领域,工具包(toolkit / harness)不是一个严格的学术概念,而是指一类“把模型能力封装成可用编码代理”的中间层组件。它可以是一个命令行工具、一个桌面应用、一套配置文件,也可以只是几个自动化脚本。

这类组件通常要解决四件事:

  • 协议转换:把编码代理工具发出的请求格式,转换为 DeepSeek API 能识别的格式。
  • 配置管理:集中管理模型名称、API Key、基础地址、超时时间等参数。
  • 会话管理:保存历史对话、归档会话、支持多轮上下文传递。
  • 功能增强:添加日志、限流、统计、本地缓存等辅助能力。

社区里常见的deepseek harnessdeepseek hermes桌面端、ccswitch这类名字,本质上都属于这个范畴。它们有的偏重配置切换,有的偏重会话管理,有的则是把 Anthropic 格式的请求转成 OpenAI 兼容格式的本地代理。命名比较杂,但解决的问题是相似的:让你不必每次手动改配置、写胶水代码,就能把 DeepSeek 接到 Codex CLI、Claude Code、VS Code 插件这些编码代理工具上。

理解这一层之后,你就不会被各种工具的名字绕晕。因为无论它叫什么,核心链路都是一条:

编码代理(Codex CLI / Claude Code / VS Code 插件) ↓ 发起请求 工具包 / harness / 本地代理(协议转换、配置注入) ↓ OpenAI 兼容格式 DeepSeek API(或本地部署的 DeepSeek 模型服务)

1.3 为什么 DeepSeek 适合做 AI 编码代理后端

AI 编码代理的核心工作流是:读取代码、理解需求、生成补丁、运行命令、根据报错自我修正。这个过程对模型的代码能力和上下文长度要求比较高,同时也会有大量的重复调用,所以成本是不得不考虑的因素。

DeepSeek 在这个场景下的优势有几个:

  • 代码能力比较稳,尤其是中英文技术问答和代码生成场景。
  • API 价格相对友好,适合高频调用的编码代理场景。
  • 支持 OpenAI 兼容协议,接入成本低。
  • 官方提供了 DeepSeek 开放平台,API Key 管理、用量查询都比较完善。
  • 也有开源权重可本地部署,适合对数据敏感的企业做私有化尝试。

当然,具体选择 DeepSeek 还是豆包、元宝、千问,需要结合你的业务场景、模型效果、价格和部署条件综合判断。本文不替你做选型结论,而是把“怎么接入、怎么用稳、怎么排错”这件事讲透。选型是需求问题,接入是工程问题,后者才是这篇文章的重点。

2. 环境准备与版本说明

2.1 本文环境约定

标题里的“中配”指的是这篇文章的配置定位:普通开发机即可,不需要 A100/H100 这类服务器级显卡。你只需要一台能正常联网的电脑,都能完成下面所有步骤。

我在本文使用的环境如下,版本请按你的实际项目调整:

  • 操作系统:Windows 10/11、macOS、Linux 均可,下文命令以 macOS/Linux 终端为主,Windows 建议使用 PowerShell 或 WSL。
  • Python:3.9 及以上版本,用于编写 API 调用示例。
  • Node.js:18 及以上版本,因为很多编码代理 CLI 工具和工具包基于 Node.js 开发。
  • 命令行工具:curl、git。
  • 编辑器:VS Code,作为编码代理插件的演示环境。

2.2 获取 DeepSeek API Key

在使用 DeepSeek API 之前,需要先在 DeepSeek 开放平台完成注册,然后在控制台创建一个 API Key。创建时注意以下几点:

  • API Key 只会在创建时完整显示一次,务必立即复制并保存到安全的地方。
  • 不要直接在代码里硬编码 Key。
  • 建议通过环境变量或本地配置文件方式管理,避免误提交到 Git 仓库。

本文后续示例统一使用环境变量DEEPSEEK_API_KEY。你可以先在本机设置:

export DEEPSEEK_API_KEY="sk-你的密钥"

Windows PowerShell 下用:

$env:DEEPSEEK_API_KEY="sk-你的密钥"

验证变量是否设置成功:

echo $DEEPSEEK_API_KEY

2.3 安装编码代理命令行工具

以 Codex CLI 为例,它通常通过 npm 安装:

npm install -g @openai/codex

安装完成后,可以通过codex --version验证。不同版本的配置项名称可能有差异,本文会用“以当前常见版本为例”的方式描述,实际操作时请以你本机版本为准。

如果你使用的是 Claude Code,安装方式一般是官方提供的一键脚本或 npm 包。这里不展开,只说明思路:Claude Code 原生并不直接支持 DeepSeek,需要通过本地代理工具做协议转换,后面会给出一个最小代理示例。

3. 核心概念拆解:API 结构、思考模式与上下文回传

3.1 Chat Completions 接口的基本结构

DeepSeek API 采用 OpenAI 兼容的对话补全接口,核心地址是:

https://api.deepseek.com/chat/completions

同时官方也兼容/v1路径写法,例如:

https://api.deepseek.com/v1/chat/completions

注意这里的/v1只是兼容路径,和模型版本没有关系,这一点很多新手会误会。

请求体是一个 JSON 对象,核心字段如下:

  • model:模型名称,例如deepseek-chatdeepseek-reasoner
  • messages:消息列表,每一条消息包含rolecontent字段。rolesystemuserassistant三种。
  • temperature:采样温度,控制输出的随机性。
  • stream:是否流式返回。
  • max_tokens:限制最大输出长度(具体字段名以最新文档为准)。

响应体里最核心的部分是choices[0].message.content,也就是模型生成的正文内容。

这里特别说明:DeepSeek 官方模型名称会随版本迭代调整,不同账号看到的具体模型列表可能不同。本文示例使用常见的deepseek-chatdeepseek-reasoner命名,如果你在平台上看到的是其他名称,以平台展示为准。

3.2 思考模式与 reasoning_content 字段

DeepSeek 的推理模型在生成正式回答之前,会产生一段“思考过程”。在 API 响应中,这段思考过程会放在reasoning_content字段里,而正式回答放在content字段里。

例如一次非流式请求的返回可能是这样:

{ "choices": [ { "message": { "role": "assistant", "content": "这是正式回答", "reasoning_content": "这是模型的思考过程" } } ] }

reasoning_content是一个非常有用的调试信息,也是很多工具包会专门展示在界面上的内容。用户能看到模型“怎么想”,对判断回答质量很有帮助。

但在多轮对话中,这个字段也会变成坑。因为当你想把之前的助手回复作为历史消息传回 API 时,如果这条历史消息带有reasoning_content,那么必须原样包含它;如果压缩掉了,API 可能直接返回 400 错误。

3.3 多轮对话中的消息回传规则

很多初学者以为多轮对话就是简单地把历史消息拼接后发出去。对于普通的deepseek-chat模型,确实只需要保留rolecontent。但对于deepseek-reasoner这类思考模型,规则更严格:

  • 用户消息:包含rolecontent
  • 助手消息:必须同时包含contentreasoning_content,即上一轮返回的reasoning_content需要原样带回来。
  • 系统消息:正常放在消息列表最前面。

社区里经常看到的一个报错原文是这样的:

cc switch local proxy failed while handling codex endpoint /responses. provider: deepseek; model: deepseek-v4-flash; upstream_status: http 400; cause: the `reasoning_content` in the thinking mode must be passed back to the api.

这句话翻译过来就是:在思考模式下,reasoning_content必须回传给 API。出现这个报错,通常不是 DeepSeek API 本身的问题,而是编码代理工具或第三方代理在组装多轮消息时,没有保留reasoning_content字段。

理解了这条规则,你在排错时就有了明确方向:要么升级工具版本,让工具正确传递思考内容;要么在代理层手动补全这个字段;要么干脆关闭思考模式,改用普通的deepseek-chat模型。

4. 完整实战:把 DeepSeek 接入 AI 编码代理

4.1 用 curl 验证 API 连通性

先跑通最原始的 API 调用,确认你的 API Key 有效、网络通路正常。在终端执行:

curl https://api.deepseek.com/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $DEEPSEEK_API_KEY" \ -d '{ "model": "deepseek-chat", "messages": [ {"role": "system", "content": "你是一名资深 Python 工程师"}, {"role": "user", "content": "用 Python 写一个二分查找函数"} ], "stream": false, "max_tokens": 512 }'

如果一切正常,你会收到一段 JSON 响应。重点关注choices[0].message.content字段,里面就是模型生成的代码。如果你打开stream开关,响应会变成一段 SSE(Server-Sent Events)流式数据,每行以data:开头,这是编码代理工具常用的交互方式。

顺手验证一下deepseek-reasoner模型,观察返回里是否有reasoning_content字段:

curl https://api.deepseek.com/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $DEEPSEEK_API_KEY" \ -d '{ "model": "deepseek-reasoner", "messages": [ {"role": "user", "content": "一个数组里只有两个数字出现奇数次,其余出现偶数次,请用 O(n) 时间找出这两个数字"} ], "stream": false, "max_tokens": 1024 }'

这个现象能帮助你确认当前使用的模型是否属于“思考模式”,也能帮助你理解后面要讲的多轮对话回传问题。

4.2 用 Python SDK 调用 DeepSeek API

由于 DeepSeek API 兼容 OpenAI 格式,可以直接使用 OpenAI 官方 Python SDK,只需要替换base_urlapi_key

先安装依赖:

pip install openai

然后创建文件deepseek_demo.py

# 文件路径:deepseek_demo.py from openai import OpenAI client = OpenAI( api_key="sk-你的密钥", base_url="https://api.deepseek.com" ) resp = client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "你是一名资深 Python 工程师,请给出可直接运行的代码,并简要解释关键点。"}, {"role": "user", "content": "实现一个函数,用于统计一段文本中每个单词出现的次数,忽略大小写和标点符号。"}, ], temperature=0.3, max_tokens=1024, ) print(resp.choices[0].message.content)

运行:

python deepseek_demo.py

这个示例虽然简单,但已经包含了接入 DeepSeek API 的完整三要素:base_urlapi_keymessages。你可以在messages里继续追加多轮对话,把历史回复传回去,让模型具备上下文记忆能力。

需要说明的是,这里把 API Key 直接写在代码里只是为了演示。实际项目中一定要从环境变量读取,避免密钥泄露。可以使用os.getenv("DEEPSEEK_API_KEY")

4.3 接入 Codex CLI

Codex CLI 是 OpenAI 开源的终端编码代理,它本身支持配置自定义模型提供方。我们可以通过配置文件把模型后端指向 DeepSeek。

Codex CLI 的配置文件通常是~/.codex/config.toml。一个常见的配置思路如下(配置项名称可能随版本调整,请以你的版本支持为准):

# 文件路径:~/.codex/config.toml model = "deepseek-chat" model_provider = "deepseek" [model_providers.deepseek] name = "DeepSeek" base_url = "https://api.deepseek.com/v1" env_key = "DEEPSEEK_API_KEY"

配置完成后,在终端启动 Codex:

codex

Codex 会读取配置,通过 DeepSeek 的 API Key 发起请求。如果你的模型是思考模式,而当前 Codex 版本还没有适配reasoning_content回传逻辑,就可能看到 400 报错。这时候的处理方案有两个:一是把model改成deepseek-chat,关闭思考模式;二是升级到一个已经适配 DeepSeek 思考模式回传逻辑的版本。

还有一类工具叫 ccswitch,它的作用是帮你在多个模型提供方之间快速切换。在它的配置文件里把 provider 配置成 DeepSeek、填入 API Key,就能在 Codex 里一键切换。如果你在切换后遇到cc switch local proxy failed这类报错,根因往往还是深度思考模式的消息回传问题,排查方向是一样的。

4.4 接入 Claude Code 或通过本地代理协议转换

Claude Code 原生使用的是 Anthropic 的消息接口,和 OpenAI 兼容格式不同,所以不能像 Codex 那样直接改base_url。社区里最常见的做法是起一个本地代理服务,把 Anthropic 格式的请求转换成 OpenAI 兼容请求,再转发给 DeepSeek。这正是很多工具包/harness 的核心功能。

下面给出一个最小代理示例,使用 FastAPI 实现一个 OpenAI 兼容接口,内部转发到 DeepSeek。这个示例思路可以用于理解工具包的工作原理,也可以作为你自研内部工具包的起点。

先安装依赖:

pip install fastapi uvicorn openai python-dotenv

创建proxy.py

# 文件路径:proxy.py import os from fastapi import FastAPI, Request from openai import OpenAI app = FastAPI() client = OpenAI( api_key=os.getenv("DEEPSEEK_API_KEY"), base_url="https://api.deepseek.com" ) @app.post("/v1/chat/completions") async def chat_completions(req: Request): payload = await req.json() # 这里可以补充协议转换、日志、限流、鉴权等逻辑 messages = payload.get("messages", []) model = payload.get("model", "deepseek-chat") stream = payload.get("stream", False) resp = client.chat.completions.create( model=model, messages=messages, stream=stream, temperature=payload.get("temperature", 0.3), ) return resp.model_dump()

启动服务:

export DEEPSEEK_API_KEY="sk-你的密钥" uvicorn proxy:app --host 127.0.0.1 --port 8010

然后用 curl 验证本地代理:

curl http://127.0.0.1:8010/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [ {"role": "user", "content": "你好,请介绍一下你自己"} ] }'

这个代理虽然简陋,但已经具备了一个工具包的最小骨架。真实的产品级工具包还会处理思考模式字段、会话归档、错误重试、API Key 加密存储等细节。理解了这一步,你再去看任何 DeepSeek 工具包的源码,都会觉得清晰很多。

4.5 在 VS Code 中接入 DeepSeek

VS Code 中有很多 AI 编程插件支持自定义 OpenAI 兼容服务地址,例如 Continue、Cline、Roo Code 等。它们的配置思路基本一致:

  • 在插件设置里选择自定义 OpenAI 兼容 provider。
  • API Base URL 填写https://api.deepseek.comhttps://api.deepseek.com/v1
  • API Key 填写你的 DeepSeek Key。
  • 模型名称填写平台支持的具体模型名。

以 Continue 插件为例,它的配置文件通常是~/.continue/config.json,可以添加一个自定义模型:

{ "models": [ { "title": "DeepSeek Chat", "provider": "openai", "model": "deepseek-chat", "apiBase": "https://api.deepseek.com/v1", "apiKey": "sk-你的密钥" } ] }

配置完成后,在 VS Code 侧边栏打开 Continue 面板,选中 DeepSeek 模型,就能在编辑器里让 AI 编码代理直接读取当前文件、生成代码、解释报错。这是日常开发中性价比最高的接入方式,因为 VS Code 插件已经把代码上下文自动组装好了,你不需要手动拼接文件内容。

4.6 本地部署 DeepSeek 的补充

除了调用官方 API,DeepSeek 也有开源权重,可以用 Ollama、vLLM 等工具在本地部署。本地部署适合以下场景:

  • 企业对数据隐私要求高,不允许代码外传。
  • 需要离线环境使用。
  • 希望完全掌控模型的版本和行为。

但本地部署也有明显的门槛:

  • 需要较大的显存,量化模型可以在中配显卡上运行,但推理速度和效果会有折损。
  • 需要自己处理并发、监控、模型更新等运维问题。
  • 编码代理场景通常需要大上下文,本地部署会让内存和显存压力成倍增加。

所以我的建议是:个人开发和快速验证阶段,直接使用官方 API 最省事;如果确实有私有化需求,再评估本地部署。本地部署更多是运维和资源问题,和“接入工具包”是两个话题。本文重点在 API 接入,本地部署只做提示,不做深入展开。

5. 常见问题与排查清单

5.1 报错 400:reasoning_content 未回传

这是 DeepSeek 接入编码代理时最常见的问题,典型的报错片段在 3.3 节已经给出。核心原因是思考模式下,多轮对话的助手消息里缺少reasoning_content字段。

排查顺序如下:

  1. 确认当前使用的模型是不是思考模型,例如deepseek-reasoner
  2. 查看请求里是否携带了历史助手消息。
  3. 如果携带,检查这条历史助手消息里是否包含reasoning_content
  4. 如果工具不支持回传这个字段,最简单的办法是切到deepseek-chat
  5. 如果必须使用思考模型,可以升级工具版本,或者像 4.4 节那样在代理层补全字段。

5.2 其他高频问题汇总

下面把接入 DeepSeek 工具包过程中容易遇到的问题整理成一张表,方便快速定位。

问题现象常见原因解决思路
HTTP 400,提示 reasoning_content 必须回传思考模式的多轮消息缺少思考字段切换 deepseek-chat,或升级工具/代理补全字段
HTTP 401 UnauthorizedAPI Key 错误、过期或未设置检查环境变量,重新创建 Key
请求超时网络不稳定或响应时间过长增加超时时间,检查网络连通性
429 Too Many Requests触发限流或余额不足降低并发,检查账户额度
上下文过长报错编码代理把大量代码塞进上下文精简上下文,限制上下文窗口
工具包配置不生效配置文件路径或字段名不对查看工具版本文档,确认配置项
输出被截断max_tokens 设置过小调大 max_tokens,或开启流式输出

5.3 通用排查清单

如果你遇到了上面表格里没有覆盖的问题,可以按下面的清单逐步排查:

  • 先用 curl 直接调用 DeepSeek API,确认 API 本身是否正常。
  • 确认环境变量DEEPSEEK_API_KEY是否在当前终端会话里生效。
  • 检查 base_url 是否正确,https://api.deepseek.comhttps://api.deepseek.com/v1不要混用。
  • 查看工具的运行日志,定位请求是发到了哪一步。
  • 检查是否使用了思考模型,思考模型和普通模型的行为差异很大。
  • 查看账户余额和限流状态。
  • 尽量用最小复现方式测试,例如用单轮对话先验证,再加多轮。

排查的原则是“先隔离,再定位”。把问题分成 API 层、配置层、工具层三个层面,逐层确认,通常很快能找到根因。

6. 最佳实践与工程建议

6.1 API Key 安全

API Key 就是你的资金凭证,泄露后可能被他人恶意调用。最佳实践是:

  • 通过环境变量或专门的密钥管理工具注入,不硬编码在代码里。
  • .gitignore中加入.env文件,避免本地配置被提交。
  • 为不同项目创建独立 Key,泄露时可以单独吊销。
  • 定期轮换 Key,降低长期泄露风险。
  • 关注开放平台的用量统计,发现异常及时处理。

6.2 上下文与提示词管理

编码代理的效果很大程度上取决于上下文组织。建议做到:

  • 控制消息长度,不把整个项目塞进上下文。
  • system消息明确角色和约束,例如“只输出代码,不要解释”。
  • 多轮对话时,注意思考模型的消息回传规则。
  • 对历史消息做裁剪,保留关键结论,丢弃中间噪声。
  • 在代理层记录每次请求的 token 消耗,方便成本分析。

6.3 成本控制与模型选择

编码代理场景调用量大,成本控制要提前设计。可以做的优化包括:

  • 简单任务使用普通模型,复杂推理任务才使用思考模型。
  • 设置合理的max_tokens,避免模型输出无意义的长文本。
  • 对重复性请求做本地缓存,命中缓存时跳过 API 调用。
  • 对长上下文任务,考虑先做代码摘要再发送。
  • 监控 token 消耗,建立成本告警。

6.4 生产环境与合规红线

如果你的编码代理要进入团队或生产环境,有几个原则一定要守住:

  • 先在小范围试点,确认工具、配置、模型效果稳定后再推广。
  • 所有变更先做测试环境验证,不要直接改线上配置。
  • 涉及外部 API 调用的,遵守平台服务条款和合规要求。
  • 最小权限原则:代理工具能访问的代码目录越少越好,避免权限过大导致破坏。
  • 保留审计日志,对编码代理生成的关键代码变更做人工复核。

6.5 版本锁定与可维护性

工具链的版本变化很快,今天能跑的配置,下个月可能因为版本升级而失效。建议:

  • 锁定编码代理工具和工具包的版本,升级前先在测试环境验证。
  • 把配置文件和部署脚本纳入版本管理,方便回溯。
  • 关注 DeepSeek API 的版本变更和模型上线公告。
  • 自己写的代理脚本要有注释和日志,方便后续接手维护。

7. 总结与下一步学习路线

这篇文章的核心内容可以概括为三句话:DeepSeek 提供了一个 OpenAI 兼容的 API,让我们可以用很低的成本把它接入各种编码代理工具;工具包和 harness 的本质是协议转换和配置管理,理解了这一点,任何第三方工具在你眼里都不再神秘;思考模式下reasoning_content的回传是多轮对话最关键的规则,这个坑占了社区报错的很大比例。

如果你接下来想继续深入,我建议按这个顺序实践:

  • 先用官方 API 和 Python SDK 写一个自己的对话脚本,把单轮、多轮、流式三种调用都跑通。
  • 然后接入 Codex CLI 或 VS Code 插件,体验真实编程场景下的编码代理工作流。
  • 再尝试写一个最小本地代理,亲手实现一次协议转换。
  • 最后再考虑本地部署和团队级接入,把成本控制、权限管理、日志审计补上。

AI 编码代理本身是一门“工具 + 模型 + 工程化”的组合学问。工具包和 harness 解决的是工程化问题,DeepSeek 解决的是模型和成本问题,而你真正要练的,是如何在真实项目里安全、高效、可控地使用它们。建议你拿着这篇文章里的 curl 和 Python 示例,把自己的 API Key 配置好,实际跑一轮,遇到报错就对照第 5 节的排查清单处理。动手跑通一次完整流程,比收藏十篇教程都管用。如果你在接入 DeepSeek 工具包时还踩过其他有意思的坑,欢迎在评论区分享,我们一起把问题研究透。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 17:02:11

win本机设置服务启停脚本

将以下内容放到新建的.bat文件 脚本示例MySQL服务,更换服务中对应的名称即可启停其他服务,例如Redis服务等echo off chcp 65001 >nul setlocal EnableExtensions rem 到服务中找mysql对应名称复制(需要区分大小写) set "S…

作者头像 李华
网站建设 2026/9/2 16:59:54

Liunx网络编程

网络通信:不同主机、进程间通信。一.基本概念1.OSI七层模型国际标准化组织(ISO)提出的网络体系结构模型称为开放系统互连参考模型(OSI/RM),简称OSI参考模型。OSI参考模型有7层,自下而上(第1~7层)依次为物理层、数据链路层、网络层、传输层、会…

作者头像 李华
网站建设 2026/9/2 16:56:13

Linux网络——HTTPS加密/解密详解

bit::Shadow✧(≖ ◡ ≖✿ 目录 HTTPS加密 基本概念 1.运营商劫持 2.常见加密算法 2.1对称加密 2.2非对称加密 2.2.1公钥、私钥 3.数据摘要(数据指纹) 4.签名认识 4.1CA机构 签名与验证逻辑 非对称加密数字签名对称加密 ☆总结 HTTPS加密 HTTPS HTTP TLS/SSL&a…

作者头像 李华
网站建设 2026/9/2 16:54:54

Qt+SQLite千万级数据游标分页实战与性能优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/2 16:53:27

在Docker上复现一个github项目

接上一篇文章,已经将docker镜像创建好,并和本地目录镜像做了一个统一;这篇记录如何在这个docker容器中进行一个项目复现;复现项目链接:GitHub - HKUDS/LightRAG: [EMNLP2025] LightRAG: Simple and Fast Retrieval-Aug…

作者头像 李华