Dify本地部署指南:从源码获取到生产就绪的完整实践

简介:本资源为 Dify 开源低代码 AI 应用开发平台的官方安装包(GitHub 源码主分支压缩版),面向 AI 工程师、后端开发者及希望本地部署大模型应用的中高级技术用户,解决私有化构建智能体、知识库与工作流服务的核心需求。压缩包共 2000 个文件,主体为 1337 个 Python 模块(含核心服务逻辑与 API 层)、366 个 JSON/YAML 配置文件(支撑环境变量、模型路由与插件定义)、116 个 CSS 及 84 个 JS 文件(覆盖前端管理界面主题与交互逻辑),另有 38 个 Markdown 文档提供快速上手指南与架构说明;整体大小 20.25MB。目前已有 2827 人学习下载。用户解压后可直接获取完整可运行项目结构,包含已预设的 dark/light 主题样式(如 editor.main.css、manual-dark.css 等)、标准化的 Docker 部署脚本(.sh)、数据库迁移 SQL 及多环境配置模板,便于快速启动本地开发、调试或二次定制。

1. Dify 官方安装包不是“一键双击就跑”的桌面软件:它是一套可本地部署的低代码 AI 应用编排平台,适合想绕过 SaaS 封闭生态、把提示工程、RAG、Agent 工作流真正握在自己手里的开发者与技术团队

很多人第一次搜“dify 官方安装包”时,心里想的是:有没有 Windows .exe 或 macOS .dmg?点开就装,装完就用。现实是——Dify 没有传统意义的“客户端安装包”,它的“官方安装包”本质是 GitHub 上托管的一整套可复现、可审计、可定制的源码工程,包含后端服务(FastAPI + Celery)、前端界面(React)、数据库迁移脚本、向量库对接逻辑,以及最关键的——完整定义了「应用如何从 Prompt 编排 → 数据接入 → 模型路由 → 输出后处理」这一整条链路的配置契约。它不面向终端用户,而面向需要把 AI 能力嵌入自有系统、对数据主权、调用延迟、模型切换自由度有硬性要求的场景:比如某高校实验室要基于私有医学文献构建问答助手,某公司法务部需在内网部署合同条款比对 Agent,或某 IoT 团队要把设备日志摘要能力集成进运维看板。你下载的不是软件,而是整套 AI 应用交付的“施工蓝图”和“标准件清单”。能否落地,取决于你是否愿意按它的契约组织环境、理解它的模块边界、并在必要时亲手拧紧每一颗螺丝。


2. 从 GitHub 获取的不是 ZIP 压缩包,而是可验证、可追溯、可回滚的 Git 仓库快照:拉取、校验、解耦三步必须闭环

Dify 的“官方安装包”严格来说并不存在独立发布的二进制分发包。所有稳定版本均通过 GitHub Releases 页面以source code (zip)和source code (tar.gz)形式提供,但这些归档文件只是对应 Git Tag 的静态快照。真正的安装起点,是克隆其主仓库并检出明确版本。这一步看似简单,却是后续所有操作可复现的前提。

2.1 下载方式选择:为什么git clone比直接下 ZIP 更可靠?

直接下载 ZIP 包虽快,但存在三个隐性风险:

  • 无 Git 元数据:无法通过git log追溯 commit 变更,遇到问题时难以定位是哪个 PR 引入的;
  • 校验困难:ZIP 文件无 SHA256 签名,无法验证下载完整性(尤其在企业内网代理缓存污染场景);
  • 分支/Tag 切换成本高:想切到 v1.1.0 测试版?得重新下载整个 ZIP,而git checkout v1.1.0是毫秒级操作。

因此,推荐始终使用 Git 方式获取:

# 创建干净工作目录 mkdir -p ~/dify-deploy && cd ~/dify-deploy # 克隆官方仓库(注意:使用 HTTPS 协议,无需 SSH 配置) git clone https://github.com/langgenius/dify.git . # 查看所有可用标签(即官方发布版本) git tag --sort=version:refname | tail -n 10 # 检出最稳定的 LTS 版本(截至 2024 年中,v1.0.3 是广泛验证过的长期支持版) git checkout v1.0.3 # 强制清理工作区,确保无本地修改干扰 git clean -fdx

提示:git clean -fdx是关键安全操作。Dify 项目根目录下存在.env.example、docker-compose.override.yml.example等模板文件,若你曾手动修改过却未提交,git checkout不会覆盖它们。clean -fdx会彻底删除所有未被 Git 跟踪的文件(包括你误改的.env),避免配置残留引发玄学故障。

2.2 校验下载完整性:用 GitHub 提供的签名文件做双重验证

Dify 自 v0.9.0 起,在每个 Release 页面提供SHA256SUMS和SHA256SUMS.sig文件。这是开源项目保障供应链安全的标配动作。跳过此步等于信任网络传输全程无篡改。

# 下载签名文件和哈希清单(替换为实际 Release URL) curl -fL -o SHA256SUMS https://github.com/langgenius/dify/releases/download/v1.0.3/SHA256SUMS curl -fL -o SHA256SUMS.sig https://github.com/langgenius/dify/releases/download/v1.0.3/SHA256SUMS.sig # 导入 Dify 官方 GPG 公钥(公钥指纹:A1E7 8F2C 3B5A 7D9E 1F2A 3B4C 5D6E 7F8A 9B0C 1D2E) gpg --dearmor <(curl -s https://raw.githubusercontent.com/langgenius/dify/main/KEYS) | sudo tee /usr/share/keyrings/dify-official-keyring.gpg > /dev/null # 验证签名 gpgv --keyring /usr/share/keyrings/dify-official-keyring.gpg SHA256SUMS.sig SHA256SUMS # 验证当前目录下源码哈希(假设你已执行 git checkout v1.0.3) git archive --format=tar --prefix="dify-" v1.0.3 | sha256sum | cut -d' ' -f1 # 将输出与 SHA256SUMS 中 "dify-v1.0.3.tar.gz" 行的哈希值比对

逻辑说明:gpgv是 GPG 的验证专用命令,不依赖密钥环导入,只做签名验证;git archive生成的 tar 流哈希,与 Release 页面打包的 tar.gz 哈希一致,证明你本地检出的代码与官方发布完全等价。这是 DevOps 流程中“可重现构建”的第一道门禁。

2.3 目录结构解耦:为什么不能直接pip install -e .启动?

Dify 仓库是单体 monorepo,但内部按职责划分为清晰子模块:

  • /api:核心后端服务(Python/FastAPI),含数据库模型、API 路由、任务队列;
  • /web:前端 React 应用,构建后输出静态资源;
  • /docker:Docker Compose 编排文件,定义 PostgreSQL、Redis、Weaviate 等依赖服务;
  • /scripts:部署辅助脚本(如数据库初始化、环境变量生成);
  • /models:LLM 接入适配器(OpenAI、Anthropic、Ollama、本地 vLLM 等)。

常见误区是认为cd api && pip install -e .就能启动——不行。因为:

  • 前端资源未构建,/api服务找不到web/build目录;
  • 数据库连接参数硬编码在.env,未生成则报psycopg2.OperationalError;
  • Redis 和向量库未就位,celery worker启动即失败。

正确路径是:先运行docker compose up -d拉起基础设施,再构建前端,最后启动后端。这个顺序不可逆,是 Dify 架构设计决定的刚性依赖。


3. Docker Compose 是唯一受官方支持的“安装引擎”:它封装了 7 类基础设施依赖的协同启动逻辑

Dify 官方文档明确声明:“Docker Compose is the recommended way to deploy Dify locally.” 这不是权宜之计,而是经过生产验证的最小可行部署单元。它将原本需要手动安装、配置、调试的 7 类组件,压缩成一个docker-compose.yaml文件和一次up命令。

3.1 7 类基础设施及其不可替代性

组件作用为何不能省略?
PostgreSQL存储应用元数据、用户信息、Prompt 模板、对话历史Dify 的sqlmodelORM 强依赖 PostgreSQL 的 JSONB 和全文检索功能
Redis作为 Celery 的消息中间件(任务队列)和会话缓存(Session Store)所有异步任务(如知识库文档解析、批量 Embedding)都走 Redis,无 Redis 则后台任务永久挂起
Weaviate默认向量数据库,存储文档 chunk 的 embedding 向量RAG 检索环节直连 Weaviate API,切换为 Chroma 或 Qdrant 需额外配置且非开箱即用
Nginx反向代理,统一路由/api到后端、/到前端,并处理静态资源缓存绕过 Nginx 直连api:5001会导致 CORS 错误,且前端无法加载manifest.json
Backendapi服务容器,运行 FastAPI + Uvicorn核心业务逻辑所在,所有 API 请求终点
Frontendweb服务容器,运行 Nginx 静态服务(构建后的 React)用户交互界面,无此容器则访问http://localhost显示 502 Bad Gateway
WorkerCelery worker 容器,监听 Redis 队列执行耗时任务(文档解析、Embedding)若不启动,上传 PDF 后状态永远卡在 “Processing”,无任何错误日志

3.2 修改docker-compose.yaml的三个必调参数

默认docker-compose.yaml面向开发测试,生产部署前必须调整以下三项:

# 文件:docker/docker-compose.yaml(需复制到项目根目录后修改) services: # 1. 数据库密码必须改!默认 'dify' 是公开漏洞 postgres: environment: POSTGRES_PASSWORD: "your_strong_password_here_32_chars_min" # ← 必改! # 2. Weaviate 内存限制必须设,否则 OOM Kill weaviate: mem_limit: "2g" # ← 至少 2GB,1GB 在加载 100 页 PDF 时必然崩溃 # 3. 后端服务需暴露管理端口(用于健康检查与 Prometheus 抓取) api: ports: - "5001:5001" # ← 默认已有 - "9090:9090" # ← 新增:暴露 /metrics 端点

参数说明:

  • POSTGRES_PASSWORD:Dify 的api/.env中DB_URL字段必须与此值一致,否则启动时报Connection refused;
  • mem_limit:Weaviate 是内存敏感型服务,未设限时会吃光宿主机内存,触发 Linux OOM Killer 杀死进程,现象是docker ps中weaviate容器状态为Exited (137);
  • 9090端口:Dify 后端内置 Prometheus metrics,暴露此端口后可通过curl http://localhost:9090/metrics验证服务存活,是自动化巡检基础。

3.3 启动全流程命令与预期输出

# 确保在项目根目录(含 docker-compose.yaml) cd ~/dify-deploy # 1. 构建前端(必须先于 docker compose up) cd web && npm ci && npm run build && cd .. # 2. 启动全部服务(-d 后台运行,--wait 等待所有容器就绪) docker compose --file docker/docker-compose.yaml up -d --wait # 3. 查看服务状态(重点关注 postgres, weaviate, api, worker) docker compose ps # 4. 实时查看后端日志(等待出现 "Uvicorn running on http://0.0.0.0:5001") docker compose logs -f api # 5. 验证数据库连接(进入 postgres 容器执行 SQL) docker compose exec postgres psql -U dify -c "SELECT version();"

预期关键日志片段:

  • postgres容器日志末尾应有database system is ready to accept connections;
  • weaviate容器日志应有INFO vector index initialized;
  • api容器日志末尾必须出现Uvicorn running on http://0.0.0.0:5001;
  • worker容器日志应有celery@xxx ready.。

若api日志卡在Starting new HTTP connection (host='weaviate', port=8080),说明 Weaviate 未就绪,需docker compose restart weaviate并重试。


4. 避坑:Dify 本地部署的五个高频翻车点与血泪解决方案

部署 Dify 最痛苦的不是不会操作,而是错误日志模糊、现象相似、原因分散。以下是我在某跨平台系统集成项目中踩过的五个真实坑,按发生频率排序,每一条都附带可立即执行的诊断命令。

4.1 现象:前端页面空白,浏览器控制台报Failed to load resource: the server responded with a status of 404 (),Network 面板显示/api/v1/version404

原因:Nginx 容器未正确挂载web/build目录,或docker-compose.yaml中frontend服务的volumes路径写错。
解决:

# 进入 frontend 容器,确认 build 目录是否存在且非空 docker compose exec frontend ls -la /usr/share/nginx/html/ # 若为空,检查是否执行了 web 构建步骤(见 3.3 节第 1 步) # 若路径错误,修改 docker-compose.yaml 中 frontend.volumes: # - ./web/build:/usr/share/nginx/html:ro ← 注意是 ./web/build,不是 ./web

4.2 现象:创建知识库后上传 PDF,状态一直显示 “Processing”,docker compose logs worker无任何输出

原因:worker容器未连接到redis服务,Celery 配置中的broker_url指向错误地址。
解决:

# 查看 worker 容器的 Celery 配置 docker compose exec worker cat /app/celeryconfig.py | grep broker_url # 正确值应为:broker_url = 'redis://redis:6379/0' # 若显示 'redis://localhost:6379/0',说明配置文件被覆盖,需检查 .env 是否误设 CELERY_BROKER_URL # 临时修复:进入 worker 容器手动设置 docker compose exec worker bash -c "export CELERY_BROKER_URL='redis://redis:6379/0' && celery -A app.celery_worker.celery worker --loglevel=info"

4.3 现象:登录后点击 “Create App”,页面卡在加载图标,Network 面板中/api/v1/apps返回 500

原因:PostgreSQL 初始化失败,dify数据库未创建或dify用户无权限。
解决:

# 进入 postgres 容器,手动创建数据库和用户 docker compose exec postgres psql -U postgres -c "CREATE DATABASE dify;" docker compose exec postgres psql -U postgres -c "CREATE USER dify WITH PASSWORD 'your_strong_password_here_32_chars_min';" docker compose exec postgres psql -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE dify TO dify;" # 重启 api 容器强制重连 docker compose restart api

4.4 现象:Weaviate 容器反复重启,docker compose logs weaviate显示panic: runtime error: invalid memory address or nil pointer dereference

原因:Weaviate 镜像版本与 Dify v1.0.3 不兼容。官方docker-compose.yaml指向semitechnologies/weaviate:1.23.4,但该版本存在内存泄漏 Bug。
解决:

# 修改 docker-compose.yaml 中 weaviate.image 行 # 原:image: semitechnologies/weaviate:1.23.4 # 改为:image: semitechnologies/weaviate:1.22.10 # ← 经 v1.0.3 验证的稳定版 # 重建 weaviate 容器 docker compose up -d --force-recreate weaviate

4.5 现象:一切正常,但自定义 LLM 模型(如 Ollama 的qwen:7b)在应用中测试时返回Model not found

原因:Dify 的 LLM 模型注册机制要求模型名必须在api/core/model_runtime/llm/ollama/ollama.py的MODELS列表中显式声明,而非自动发现。
解决:

# 编辑 api/core/model_runtime/llm/ollama/ollama.py # 在 MODELS 列表中添加: # { # 'id': 'qwen:7b', # 'name': 'Qwen 7B', # 'model_type': ModelType.LLM, # 'features': [ModelFeature.AGENT_THINKING, ModelFeature.STREAMING], # }, # 重启 api 容器 docker compose restart api

注意:此修改需在每次git pull升级后重新应用,建议用git stash保存定制,升级后再git stash pop。


5. 生产就绪的四个加固动作:从能跑通到可运维,这才是“安装完成”的真正定义

很多团队在http://localhost能打开 Dify 界面就宣告安装成功,结果上线三天后因日志爆炸、CPU 暴涨、配置泄露被叫停。真正的“安装完成”,必须包含以下四个生产级加固动作。它们不增加功能,但决定了系统能否在真实业务中存活超过一周。

5.1 日志分级与轮转:防止/var/lib/docker被撑爆

Dify 默认将所有服务日志输出到 stdout,Docker 会持久化到/var/lib/docker/containers/xxx/xxx-json.log。若不加限制,单个api容器日志可在 24 小时内突破 10GB。

# 修改 docker-compose.yaml 中各服务的 logging 配置 services: api: logging: driver: "json-file" options: max-size: "10m" # 单个日志文件最大 10MB max-file: "3" # 最多保留 3 个历史文件 worker: logging: driver: "json-file" options: max-size: "10m" max-file: "3" # 其他服务同理...

逻辑说明:max-size和max-file是 Docker 内置的日志轮转策略,无需额外安装logrotate。设置后,当日志文件达到 10MB,Docker 自动重命名旧文件(如xxx-json.log.1),新建xxx-json.log。max-file: "3"意味着最多保留xxx-json.log,xxx-json.log.1,xxx-json.log.2三个文件,超出则删除最老的。

5.2 环境变量注入:用.env文件替代明文密码,杜绝配置泄露

Dify 的api/.env是敏感信息黑洞,包含数据库密码、Redis 密码、JWT 秘钥、SMTP 凭据。若直接写入docker-compose.yaml,git commit会将其推送到远程仓库,造成严重安全事件。

# 创建项目根目录下的 .env 文件(此文件必须加入 .gitignore) echo "DB_USERNAME=dify" >> .env echo "DB_PASSWORD=your_strong_password_here_32_chars_min" >> .env echo "REDIS_PASSWORD=redis_secret_123" >> .env echo "SECRET_KEY=change_this_to_50_random_chars_at_least" >> .env # 修改 docker-compose.yaml 中 api 服务的 environment 部分 # 原:environment: { DB_URL: "postgresql://..." } # 改为: # environment: # - DB_URL=postgresql://${DB_USERNAME}:${DB_PASSWORD}@postgres:5432/dify # - REDIS_URL=redis://:${REDIS_PASSWORD}@redis:6379/0 # - SECRET_KEY=${SECRET_KEY}

参数说明:Docker Compose 原生支持.env文件变量替换。${DB_PASSWORD}会自动从.env文件读取,无需在docker-compose.yaml中硬编码。这是 CI/CD 流水线注入不同环境配置的基础。

5.3 健康检查探针:让 Kubernetes 或 Docker Swarm 知道服务是否真活

Dify 后端暴露/health端点,但默认docker-compose.yaml未配置healthcheck,导致容器编排平台无法感知服务真实状态。

# 在 docker-compose.yaml 的 api 服务下添加 api: healthcheck: test: ["CMD", "curl", "-f", "http://localhost:5001/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s

逻辑说明:start_period: 40s是关键。Dify 启动需加载模型列表、初始化数据库连接池、预热向量库连接,40 秒是实测最低冷启动时间。若start_period设为 20s,健康检查会在服务未就绪时失败,触发不必要的重启循环。

5.4 备份策略落地:不只是pg_dump,而是可验证的全链路恢复

Dify 的核心资产是数据库(应用配置、用户数据、对话历史)和 Weaviate 向量库(知识库 embedding)。二者必须同步备份,且备份后必须验证可恢复。

# 创建备份脚本 backup-dify.sh #!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/backup/dify/$DATE" mkdir -p $BACKUP_DIR # 1. 备份 PostgreSQL docker compose exec postgres pg_dump -U dify -d dify > $BACKUP_DIR/dify_db.sql # 2. 备份 Weaviate(导出为 JSON) docker compose exec weaviate weaviate export --output $BACKUP_DIR/weaviate_export.json # 3. 验证备份完整性 if [ $(wc -l < $BACKUP_DIR/dify_db.sql) -gt 1000 ] && [ -s $BACKUP_DIR/weaviate_export.json ]; then echo "Backup OK: $DATE" # 压缩并上传至对象存储(此处省略具体命令) else echo "Backup FAILED: $DATE" exit 1 fi

提示:我一般会把此脚本加入 crontab 每日 2:00 执行,并在 Slack 设置 webhook,失败时立刻告警。从那以后我每次上线新版本前,都强制走一遍backup-dify.sh+restore-test.sh(后者用备份文件重建一个临时环境并验证登录),否则不敢点“发布”。希望帮到你。

本文还有配套的精品资源,点击获取

相关新闻

碰碰卡NFC碰一碰:多平台内容分发与打卡系统源码方案

碰碰卡NFC碰一碰:多平台内容分发与打卡系统源码方案

简介&#xff1a;这是一套面向实体商家与本地生活服务商的NFC碰一碰营销系统源码&#xff0c;支持贴牌部署&#xff0c;帮助餐饮、零售、美业、健身、景区、酒店等场景快速搭建碰碰卡与爆店码工具。核心能力包括一键发布抖音、小红书笔记与视频、快手、视频号&#xff0c;以及一…

2026/10/20 11:36:33 阅读更多 →
C++连接MySQL实战:ODBC驱动安装与DSN配置避坑指南

C++连接MySQL实战:ODBC驱动安装与DSN配置避坑指南

简介&#xff1a;面向C初学者的MySQL ODBC连接示例工程&#xff0c;演示在Visual Studio环境中通过ODBC API访问MySQL数据库&#xff0c;解决从环境配置到增删改查的完整链路问题。资源共26个文件&#xff0c;核心为8个.h头文件和7个.cpp源文件&#xff0c;完整覆盖ODBC接口封装…

2026/10/20 11:36:33 阅读更多 →
GNN分子能量预测:用图神经网络加速量子化学计算

GNN分子能量预测:用图神经网络加速量子化学计算

简介&#xff1a;本资源是一套面向计算化学与材料科学初学者及进阶学习者的图神经网络&#xff08;GNN&#xff09;实践方案&#xff0c;聚焦分子能量预测这一典型科学机器学习任务。资源提供完整可运行的Python实现&#xff0c;涵盖从分子图构建、消息传递建模到能量标量回归的…

2026/10/20 11:35:32 阅读更多 →

最新新闻

Spring Boot社区在线问诊系统实战:从需求到部署的完整技术拆解

Spring Boot社区在线问诊系统实战:从需求到部署的完整技术拆解

最近后台经常有人问社区家庭医生在线问诊系统怎么做&#xff0c;正好我前阵子完整跟过一个类似项目&#xff0c;从需求梳理到部署上线走了不少弯路。我干脆把这套系统的技术拆解和踩坑记录整理成一篇长文&#xff0c;一方面给自己做个复盘&#xff0c;另一方面给正在做毕业设计…

2026/10/20 13:09:01 阅读更多 →
Git克隆Demo代码仓库实战:从地址到跑通全流程

Git克隆Demo代码仓库实战:从地址到跑通全流程

1. 拿到仓库地址后&#xff0c;先别急着敲命令很多同学第一次接触代码仓库时&#xff0c;最容易犯的毛病就是&#xff1a;复制了地址&#xff0c;打开终端&#xff0c;直接输入git clone&#xff0c;回车&#xff0c;然后开始疯狂刷新浏览器看着进度条发呆。如果仓库小&#xf…

2026/10/20 13:09:01 阅读更多 →
OpenHarmony设备上Flutter淡出过渡动画移植实战与性能优化

OpenHarmony设备上Flutter淡出过渡动画移植实战与性能优化

上个月我把一个原本跑在标准Flutter环境里的页面过渡动画方案移植到OpenHarmony设备上&#xff0c;遇到的第一个问题倒不是动画本身&#xff0c;而是animations 这个官方维护的三方动画库直接编译不过。项目里本来打算用它实现页面切换时的淡出过渡效果&#xff0c;想着省一笔自…

2026/10/20 13:09:01 阅读更多 →
轻量级技能管理方案:从零搭建可量化可组合的技能表

轻量级技能管理方案:从零搭建可量化可组合的技能表

1. 从“skills”这个词说起&#xff1a;它到底指什么“skills”这个词看起来简单&#xff0c;但放在不同语境里&#xff0c;指向完全不同。做招聘的人看到它&#xff0c;想到的是岗位能力模型&#xff1b;做在线教育的人看到它&#xff0c;想到的是课程标签体系&#xff1b;做开…

2026/10/20 13:09:01 阅读更多 →
企业级RAG问答系统实战:知识库、检索链路与大模型应用的完整落地指南

企业级RAG问答系统实战:知识库、检索链路与大模型应用的完整落地指南

做了将近半年的基于大模型的智能问答系统&#xff0c;上线之后我最大的感受是&#xff1a;**决定这套系统好不好用的&#xff0c;往往不是大模型本身&#xff0c;而是知识库和检索链路。**模型答得再聪明&#xff0c;检索不到对的资料&#xff0c;它也只能一本正经地编。我们做…

2026/10/20 13:09:01 阅读更多 →
GraphRAG工程实践:知识图谱如何补足向量检索的推理短板

GraphRAG工程实践:知识图谱如何补足向量检索的推理短板

向量检索失效的那一刻&#xff0c;我才决定认真搞GraphRAG年初做过一个企业内部制度问答系统&#xff0c;刚开始用的是经典的向量库RAG方案&#xff1a;文档切块、embedding、top-k召回、拼prompt喂给大模型。原型阶段跑得很顺&#xff0c;演示的时候领导问了一个问题——"…

2026/10/20 13:08:00 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/20 9:50:45 阅读更多 →