用 Calibre-Web 和 Docker 搭建个人电子书图书馆,实现多设备阅读与家庭共享
1. 是什么解决了我书房里的“混乱”我电脑里有几千本电子书这个说法听着很爽实际用起来完全不是那么回事。有的是 PDF 扫描版有的是 EPUB还有从各种渠道攒下来的 mobi 和 TXT混在一起躺在三个硬盘、两个网盘里。想找某本特定的书得先在电脑里翻一遍再去网盘里翻一遍经常最后发现某一本只存在于某台旧笔记本里而旧笔记本已经半年没开过机了。后来我把整批书交给了 Calibre 管理又在前端搭了一层 Calibre-Web做成一个真正意义上的个人图书馆。现在不管是在电脑、平板还是手机浏览器上都能直接搜书、下载、在线阅读甚至可以分享给家里人用。这篇文章就是把当时搭建、配置、踩坑的全过程整理成一份可以直接抄作业的笔记。它不需要你懂多高深的技术会复制粘贴、会改几个路径名就够了。适合谁看家里有一堆电子书想统一管理的人手里有 NAS 或者有台常年开机的小主机、想折腾点实用服务的人想在学校或家庭内部搞一个共享书库、但不想让大家把书传来传去的人。看完这篇你大概能在半小时内把服务跑起来再用一个晚上把书整理得舒舒服服。1.1 我的电子书曾经有多散先说痛点。我的书分为几类技术类 PDF 居多小说类 EPUB 居多早年还有一大批 TXT。它们原本分布在桌面文件夹、移动硬盘、手机存储、网盘以及一台旧笔记本的某个盘符里。没有统一的命名规则没有封面没有作者信息很多文件名干脆就是“下载-12345.pdf”这样的鬼样子。我想做一个“搜得到、看得见、能下载”的地方。注意关键词搜得到。不是把文件堆在一起就叫整理而是按书名、作者、标签、系列都能查到最好点进去还有封面和简介。这个需求听起来简单真做起来小工具半天就能搞定但问题是书会持续增加格式还在变设备还想多端同步——这才是我最后选择“数据库 Web 前端”方案的根本原因。1.2 Calibre-Web 到底解决了什么问题Calibre-Web 是一个基于 Web 的电子书管理前端。它本身不负责创建书库而是读取用 Calibre 生成的 metadata.db 数据库把书架、封面、元数据、在线阅读、用户权限这些能力通过浏览器暴露出来。也就是说它解决的是“库”的展示和访问问题。装好之后你在任何一台联网设备的浏览器里打开它的页面就能看到按网格排列的书架左边是作者、系列、标签、评分、格式等筛选条件点开一本书能看到封面、简介、下载按钮还能直接在线阅读。手机、平板不需要装客户端更不需要在每台设备上单独放一份书库。它还带了一层权限系统。家里老人想看小说你给他开个普通账号自己要用高级功能保留管理员权限。这个在家庭共享场景里非常好用。1.3 这套方案适合谁我不建议所有人都去折腾。如果你只有二三十本电子书用微信传输助手的收藏功能就够了。但如果你符合下面任意一条这套方案值得一试。第一书库确实大两三百本以上靠文件夹管理已经乱到认不出第二你有多台设备希望随时能找到同一本书而不是在电脑上找完再天各一方第三你想把书分享给家人或附近的朋友又不想借移动硬盘第四你手头正好有一台 7×24 小时开机的机器哪怕是一台退役笔记本。“把书搬上云端”里的“云端”不一定是你租的云服务器它完全可以是家里那台每天都不关的 NAS 或迷你主机。本质是把书从“个人硬盘”搬到一台能被持续访问的机器上。你按自己的上网条件来决定访问范围就行局域网内用也完全成立。2. 先搞懂一对搭档Calibre 和 Calibre-Web很多人第一次看到 Calibre-Web 会问既然有 Calibre为什么还要这个网页版答案一句话Calibre 是给“整理者”用的桌面工具Calibre-Web 是给“访问者”用的网络入口。两者不是替代关系是上下游关系。2.1 桌面端 Calibre 是书库的大总管Calibre 是一款资格很老的开源电子书管理软件支持 Linux、Windows、macOS。它能从一堆乱七八糟的文件里提取书名、作者、出版社、ISBN 等元数据能自动下载封面能转换格式能把电子书传送到阅读器。它管理书的单位叫“书库Library”。Calibre 的书库是存在一个目录里的里面有 metadata.db 这个 SQLite 数据库文件以及按“作者/书名 (ID)/文件名”结构组织的子文件夹。metadata.db 记录了一切书的基本信息、封面、标签、评分、阅读进度、自定义列。这意味着书库的真正核心不是那些 epub 和 pdf 文件而是这个数据库。所以 Calibre 在我这儿扮演的角色是“大总管”批量导入、批量改元数据、批量转格式全部在桌面端完成效率极高。我一般每周抽一次时间把新下载的书在 Calibre 里过一遍确认封面、简介、分类都齐全然后让它生成或更新 metadata.db。2.2 Calibre-Web 是开在书架上的窗户Calibre-Web 的设计思路很聪明它不维护自己的库而是直接读取 Calibre 生成的 metadata.db。只要你桌面 Calibre 那边更新了Calibre-Web 刷新一下页面就能看到不需要任何同步操作。它相当于给书库开了个玻璃窗户透过浏览器看里面的每一层书架。它提供的功能并不是把 Calibre 界面的所有按钮抄过来而是专注在“浏览、搜索、下载、在线阅读、用户管理”这几个高频动作上。页面响应快服务端负载低哪怕一台只有 1G 内存的小主机也跑得动。它把这个重活、细活交给 Calibre自己只负责把书漂亮地展示出来。这种做法的好处是各用所长。你在桌面上整理时用的是鼠标和键盘、大屏幕、完整的编辑功能你在手机上看书时用的是移动端友好的 Web 页面不用阅读器底座也不用同步软件。整理和消费解耦这在我实际使用中体验非常好。2.3 不建议跳级为什么不能只用其中一方有读者可能会想既然 Calibre-Web 能上传书、能编辑元数据我能不能干脆不装桌面版 Calibre能但我不建议。网页端虽然能完成单本上传和基础编辑但遇到几百本批量导入、几十本一起改标签、批量转格式这种操作网页端会累死你。反之如果只用桌面版 Calibre问题在于它默认是单机软件。你在书房电脑上整理完到了客厅平板想查一本配方书要么跑回书房要么在平板上手动塞一份书库。多设备访问、多人共享这些场景Calibre 原生就不擅长。所以比较理性的组合是一台常年开机的机器部署 Calibre-Web日常整理在任意一台装有 Calibre 的电脑上进行整理完的书库目录让 Calibre-Web 所在的机器随时读取。这就是整套方案最核心的分工逻辑。3. 动手前的准备机器、目录与书库摸底搭建之前别急着复制命令。先想清楚三件事用什么机器跑、书的文件放哪里、要不要用现有的 Calibre 书库。这三件事想清楚了后面都是水到渠成。3.1 选一台合适的“常年开机”机器Calibre-Web 本身轻得像肩膀上的羽毛纯静态页面加轻量数据库查询内存占用常常只有一两百兆。真正的重活是格式转换也就是调用 Calibre 的 ebook-convert 工具把 epub 转成 mobi 之类的操作。这块会很吃 CPU但也不会持续很久。聊到具体机器我见过几种主流方案成品 NAS 或自组 NAS最省心。多数 NAS 自带 Docker 或套件中心两条路径都能装。退役笔记本或旧迷你主机装个 Linux 发行版跑 Docker性能还绰绰有余。云服务器如果你想要随处可访问且不依赖家庭网络环境租一台小规格的云服务器也完全跑得动装好 Docker 后配置过程跟在本地没区别。我自己的选择是一台放在电视柜下面的迷你小主机常年开机平时功耗不大跑 Debian 系统。它同时干了好几件事文件共享、下载机、以及这个图书服务。如果你手里已经有 NAS优先用它少一台机器就少一层维护成本。3.2 规划目录书库和配置分离部署 Calibre-Web 前我会建议你先在宿主机上规划好两个独立目录一个是“程序配置”一个是“书库本体”。为什么这样分因为升级容器和备份时区别很大。程序配置里面放着 Calibre-Web 自己的设置、用户账号、日志通常很小需要频繁备份书库本体里面是几百 GB 的电子书文件和 metadata.db备份策略应该跟普通数据一样走增量备份或定期同步。我习惯把书库放在/srv/library把 Calibre-Web 的配置放在/srv/cw-config。目录名字你可以随意但务必避开中文路径和空格避免在 Docker 挂载时出现乱七八糟的转义问题。3.3 先给书籍做一次“分类热身”如果你的书库里已经有几百本“孤儿文件”没有统一目录、没有 metadata.db我强烈建议先不要直接扔给 Calibre-Web而是先花一个晚上用桌面版 Calibre 把它们导入一遍。导入动作本身很简单打开 Calibre选择“逐本书添加”或者指定目录批量导入。导入后它会自动为每本书建立目录结构从文件名猜测书名和作者能联网的话还能下载封面和简介。这一步做完了你的书库目录里才会有成体系的文件夹和那个关键的 metadata.db。不要贪快一次性导入几千本会让 Calibre 卡顿甚至卡死。我自己的经验是每次导入不超过三五百本分批次做。封面、简介这些信息能补齐多少算多少先把数据健壮性搞好等 Calibre-Web 架好之后再回头看哪些漏网之鱼需要手动补。4. 部署实录用 Docker 把服务器跑起来部署环境假设你已经装好了 Docker 和 Docker Compose。不管在 NAS、Linux 主机还是云服务器上下面的步骤基本一致。我用的镜像是 linuxserver/calibre-web它是我试过几个镜像中维护最勤、文档最全的。4.1 编写 docker-compose 配置新建一个目录比如/srv/cw在里面创建docker-compose.yml。下面这个配置是可以直接用的services: calibre-web: image: lscr.io/linuxserver/calibre-web:latest container_name: calibre-web environment: - PUID1000 - PGID1000 - TZAsia/Shanghai - DOCKER_MODSlinuxserver/mods:universal-calibre volumes: - /srv/cw-config:/config - /srv/library:/books ports: - 8083:8083 restart: unless-stopped几个参数的关键点说下。PUID和PGID是 linuxserver 镜像的特色设计。容器里的程序默认用这两个指定的用户权限运行目的就是让你在宿主机上的挂载目录权限能对得上。改成你自己当前用户的 uid 和 gidid命令可以查看否则后续写文件时容易出现 Permission Denied。这不是小问题我身边至少三个人卡在这一步。TZ设成Asia/Shanghai能保证日志时间和阅读进度显示正确。DOCKER_MODSlinuxserver/mods:universal-calibre这一步很关键它会在容器里安装 Calibre 的命令行工具链。没有它网页上的自定义格式转换功能比如 epub 转 mobi会直接消失。很多教程不提这行导致用户到处问为什么找不到下载转换的选项。端口方面容器内部固定是 8083左边的8083是宿主机端口。如果这个端口被占用了改成8084:8083就行。4.2 初始化启动与首次登录配置写好后在/srv/cw目录下执行docker compose up -d等镜像拉完容器启动后浏览器访问http://服务器IP:8083。如果你是在本机操作直接访问http://localhost:8083。首次登录用的默认账号是admin默认密码是admin123。不同版本对这个默认密码的处理略有差异有的会让你在登录后立刻修改有的会强制你先设置新密码。不管哪种改掉默认密码是第一件事尤其如果你的机器有公网入口。登录后进入“基本配置”把界面语言改成中文保存并重新登录就能看到一个中文界面的图书馆了。4.3 挂接已有书库还是从零建库如果你已经按上一节建议在/srv/library放了一个用桌面版 Calibre 建好的书库里面有 metadata.db那么 Calibre-Web 启动后会自动识别到数据库界面直接就有内容。如果你把/srv/library挂载成了一个空目录打开页面会提示没有检测到数据库。这时有两种处理方式一是把桌面 Calibre 的书库整体复制或迁移到这个目录。二是先接受空库之后在 Calibre-Web 里用网页上传功能慢慢建。我强烈建议选第一种因为网页端上传大量旧书是灾难性的低效操作。我个人实际用的方式更粗暴一些因为我那台小主机本身就是文件共享机书库一直存放在它上面所以我只要把目录挂进去Calibre-Web 就自动“看到”了整座书库。你在规划时如果书库文件还在主力电脑上迁移文件可以先复制后切容器避免中途断档。5. 搬书入库与日常管理部署完成接下来才是长期要用的内容怎么把书高效搬进去怎么日常维护。5.1 批量导库的最佳姿势新书入库我的标准流程是用桌面版 Calibre 打开挂载的同一份书库不要把文件复制来复制去。把新下载的 epub、pdf 拖进 Calibre 界面。确认每本书的元数据补封面、补标签需要转换格式的顺手转掉。关闭 Calibre让 metadata.db 正常落盘。打开 Calibre-Web 页面刷新发现新书已经在书架上。有没有更“懒”的办法有。如果你的 Calibre-Web 支持自动刷新也可以是浏览器强制刷新你甚至不需要重启任何服务因为 Calibre-Web 每次访问都是实时读数据库。这个“实时读”的机制省掉了大量同步操作是我最喜欢的设计。有一点要注意Calibre 和 Calibre-Web 同时指向同一个书库时不要让 Calibre 在写库的时候 Calibre-Web 正在做高并发下载否则 SQLite 偶发锁冲突。家庭使用场景几乎没有并发压力所以也就不用过度担心。5.2 网页端上传、改元数据与格式转换日常偶尔会有一两本书想在网页端直接加进来。Calibre-Web 顶栏有“上传”按钮选择文件后等待处理它会把书加进库并显示在书架上。上传成功后可以编辑元数据、加封面、还可用内嵌的格式转换功能。转换功能的具体位置点进某本书的详情页在下载按钮旁边会有一个转换图标。支持 epub、mobi、pdf 等常见格式互转。实际转换质量取决于原始文件格式epub 的排版可能因为字体、嵌套标签差异出现轻微偏差。如果你要求严格还是建议在桌面版 Calibre 里做转换并预览网页端适合应急。5.3 用 OPDS 在手机上逛图书馆如果你只想在手机浏览器里用那网页已经够好了。但想获得更接近原生阅读器的体验可以用 OPDS 协议。OPDS 是开放电子书发布系统的简称简单说就是一个标准的书单订阅协议。Calibre-Web 开启 OPDS 支持后支持 OPDS 的阅读类 App 就能像逛商店一样浏览你的书库、搜索、下载到本地阅读。在 Calibre-Web 的“基本配置 - 功能配置”里勾选启用 OPDS保存后访问路径一般是http://服务器IP:8083/opds。在手机 App 里添加这个地址就能看到书架。它跟浏览器访问的区别是App 能更自然地管理下载的书也支持在线阅读器的进度记忆阅读体验会更接近原生。5.4 家庭共享多账号与权限控制Calibre-Web 的用户管理非常实用。管理员可以创建多个账号给不同账号分配不同权限。我在家里给老人开了一个只读账号能看书、能下载但不能上传也不能改任何元数据。给孩子用的是限制标签账号只能看到指定的书架。我自己用管理员账号做全套管理。权限控制的关键选项包括是否允许上传、是否允许编辑元数据、是否允许下载、是否只能查看部分书架。这个能力涵盖了“我自己的书不想让所有室友看到”之类的场景。互联网上任何服务只要开放了端口理论上都会被扫到所以如果你要对外开访问务必给普通用户账号设置复杂密码并且关闭注册入口。6. 配置优化把图书馆调教成想要的样子服务跑起来后真正影响使用幸福感的是细节配置。这一节讲几个我调过之后基本没再动过的设置。6.1 界面显示与书单逻辑登录进管理后台在“基本配置”里可以调整页面语言、默认时间格式、每页显示书数。最影响观感的是展示模式网格视图和列表视图。网格视图适合封面好看的书列表视图适合快速扫读。首页展示逻辑也值得调默认展示最近添加的书也可以添加“随机书”“高评分书”“推荐书架”等模块。我习惯把首页设置成“最近添加随机书”这样每天打开都有一定新鲜感也会提醒我有些书买完还没读。如果你对书的封面有执念记得把“高质量封面”选项打开。Calibre-Web 会使用 internal server 从 metadata 里取封面而非每次都读原始文件加载速度快很多。6.2 书架、标签与高级搜索长期使用后书架和标签会变成你最依赖的导航工具。Calibre 桌面端不强制你用系列和书架但 Calibre-Web 会把它们完整展示出来。我在 Calibre 里给每本书填了“系列”和“标签”两个自定义字段比如“编程语言-Go”“历史-西方”“系列”用来标记同一作者的三部曲。这样在 Calibre-Web 左侧栏一点就能层层过滤。搜索框支持的关键词比想象中多书名、作者、出版社、标签、ISBN、文件格式都能搜。高级搜索还能按评分、系列序号、添加日期筛选。有几百本书时感觉不出来有几千本时这个功能的价值会被彻底放大。6.3 反向代理与上传大小限制如果你的 Calibre-Web 跑在云服务器上或者你给它配了域名并以反向代理的方式对外提供服务那么大概率会踩到上传大文件失败的坑。原因是 nginx 或 Caddy 默认对请求体大小有限制最常见的是 nginx 默认client_max_body_size为 1m。也就是说上传一本几十兆的 PDF 时请求会被直接拦下。解决办法是在 nginx 反代配置中加大限制。下面是一段我常用的最小配置片段server { listen 80; server_name your.domain.com; client_max_body_size 2048m; location / { proxy_pass http://127.0.0.1:8083; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }如果你只在局域网内访问这步可以完全跳过。另外加了反代之后记得在 Calibre-Web 的设置里开启“使用反向代理时启用 HTTPS 重写”之类的相关开关如果有的话避免页面跳转时把前缀搞丢。7. 实操中的坑问题与排查记录搭建过程难免踩坑。这里把我自己遇到过的、以及给朋友远程排查时见过的问题集中列一下按现象、原因、解决办法整理成表方便你按图索骥。7.1 常见问题的速查表问题现象常见原因解决办法打开页面提示“未检测到书库”挂载目录里没有 metadata.db把桌面版 Calibre 建好的书库复制进挂载目录或确认路径挂载对了上传书籍失败提示网络错误nginx 默认限制了请求体大小在反代配置中设置client_max_body_size上传或写封面时提示 Permission Denied容器的 PUID/PGID 跟宿主机目录所有者不一致用id查当前用户 uid/gid更新 compose 里的PUID和PGID后重启网页上没有格式转换按钮容器里没有安装 Calibre 工具链加DOCKER_MODSlinuxserver/mods:universal-calibre并重建容器打开书库很慢尤其几千本以上的库宿主机磁盘 I/O 弱或网络挂载延迟高尽量本地磁盘存放不要放在网络共享盘上做频繁读取局域网手机访问不了防火墙或安全组没放行 8083 端口检查宿主机防火墙、路由器端口转发以及是否为云服务器的安全组规则某些书名中文乱码个别老书元数据本身是坑在 Calibre 里重命名并重新保存元数据Calibre-Web 默认 UTF-8正常不会乱码7.2 我踩过的三个典型坑第一个是权限问题。我第一次装的时候懒得查 uid随便填了 PUID0 想走捷径结果搞成 root 权限运行容器。表面上没什么事但后续 Calibre 写入的书目录所有者全变成了 root害得我在宿主机上清理了半天。后来老老实实改了 PUID/PGID世界清净了。第二个是漏了 DOCKER_MODS。我一开始图省事直接只跑了基础镜像发现网页上死活找不到“转换格式”入口。最后还是翻镜像文档才发现要装一个 mod。这个 mod 不只是提供转换还顺带支持了封面处理、元数据下载这些常见能力。第三个是诊断“未检测到书库”时绕了远路。我当时把书库放在一个子目录里挂载路径写成了/books/ebooks但没有注意父目录和子目录的层级排查了半天才发现是挂载点写错。后来我统一约定compose 里的挂载路径必须精确指向 metadata.db 所在的目录不要多套一层。7.3 一份血的教训端口暴露范围如果你的服务器有公网 IP一定要谨慎对待端口暴露问题。我见过有人把 8083 直接暴露到公网没多久后台日志就开始出现陌生 IP 的爆破尝试。虽然 Calibre-Web 有登录保护默认账号密码也不算好猜但这毕竟暴露在全世界任何让人可扫描的地方。安全做法是只用局域网访问就保持默认端口不暴露公网要远程访问优先走不直接暴露端口的方案。设置强密码是底线管理员和普通账号都应该改掉默认值。8. 备份与后续维护个人书库一旦沉淀下来就是一份很重的内容资产丢了会非常心痛。备份策略应该分两层对待。第一层是书库本体。metadata.db 加所有电子书文件整盘复制开销大更适合做增量备份。我用的方案是每天晚上把/srv/library下新增或修改的文件同步到另一块硬盘用一个简单的同步命令就能搞定。不要只备份 metadata.db书文件才是大头。第二层是 Calibre-Web 自己的配置。它在容器的/config目录里保存了用户账号、设置项和日志文件。这个目录极小备份成本低我会在手动操作前直接打包一份或者接入配置管理工具做版本留档。升级方面linuxserver 镜像的升级流程非常简单拉新镜像重建容器配置和数据都还在。而且 Calibre-Web 的升级频率不高基本属于稳定项目。唯一需要注意的是每次升级后看一下默认环境变量有没有新增避免错过已经内置的功能开关。最后再分享一个小技巧Calibre-Web 打开的速度和封面解析很有关系如果你书库里的书都没有封面建议在桌面版 Calibre 里统一补一遍封面。这个过程有外部封面服务参与批量补完后整个网页的观感会从“临时工系统”变成“精品图书馆”。我最初看到一堆灰扑扑的无封面格子时已经想放弃了后来花了一个晚上把几百本常用书的封面补齐顿时觉得这活儿值了。搭建个人图书馆这件事技术含量其实不高真正的收获在于日常使用的顺滑感。书从“一堆文件”变成“一座能逛的图书馆”的那个瞬间你会觉得之前所有折腾都划算。如果你手头正好有一台机器、一批电子书那就赶紧动手吧半小时后你就能在手机上看自家书架的全貌了。

相关新闻

Log4j2实战指南:异步日志、性能调优与故障排查全解析

Log4j2实战指南:异步日志、性能调优与故障排查全解析

你有没有遇到过这种情况:单机日志打印频率一高,接口响应时间直接翻倍;排查线上问题的时候,发现关键日志因为之前的日志太多被刷掉了;项目想迁移到新日志框架,又怕搞坏现有系统。如果这些场景你都经历过&…

2026/10/9 2:16:28 阅读更多 →
Linux eBPF Security Tracer 架构深度解析:从内核 tracepoint 到用户空间检测引擎的完整设计

Linux eBPF Security Tracer 架构深度解析:从内核 tracepoint 到用户空间检测引擎的完整设计

【免费下载链接】Cybersecurity-Projects Building 70 Projects ranging from beginner to advanced so anyone can — learn from, build upon, use as a reference, or even copy directly. Gamified Cybersecurity learning 👇 项目地址: https://git…

2026/10/9 2:15:27 阅读更多 →
Sapling 测试体系全指南:从 .t 测试到 Rust/Python 测试的编写规范

Sapling 测试体系全指南:从 .t 测试到 Rust/Python 测试的编写规范

开发工具CLI后端 【免费下载链接】sapling A Scalable, User-Friendly Source Control System. 项目地址: https://gitcode.com/gh_mirrors/sa/sapling 点击查看 免费下载 本篇技术指南围绕 Sapling(开源的可扩展、易用的源码控制系统)的测试…

2026/10/9 2:15:27 阅读更多 →

最新新闻

基于氢燃料电池下垂控制的直流微网与电机驱动系统

基于氢燃料电池下垂控制的直流微网与电机驱动系统

在新能源微电网向高效化、清洁化升级的背景下,氢燃料电池以零排放、能量密度高、续航能力强的核心优势,成为直流微网分布式供电的核心单元,其输出电压的稳定性直接决定微网供电可靠性与负载运行安全性。在传统电池稳电压的直流微网系统中&…

2026/10/9 2:46:44 阅读更多 →
LangChain 从入门到实战(08):让模型「说人话还附出处」——检索增强 RAG(下)

LangChain 从入门到实战(08):让模型「说人话还附出处」——检索增强 RAG(下)

LangChain 从入门到实战(08):让模型「说人话还附出处」——检索增强 RAG(下) 上一篇我们把私有文档切块、向量化、存进了 Chroma 向量库(建库完成)。这一篇做「问答下半场」:每次提问,先从库里检索出最相关的小块,拼进 prompt,再让模型基于资料作答——还带来源出处…

2026/10/9 2:46:44 阅读更多 →
LangChain 从入门到实战(06):模型只会动嘴?给它一双手——工具调用

LangChain 从入门到实战(06):模型只会动嘴?给它一双手——工具调用

LangChain 从入门到实战(06):模型只会动嘴?给它一双手——工具调用 前面 5 篇的模型都「只会嘴上说说」:你问 1+1,它背话术;你问杭州天气,它答非所问,因为它根本拿不到真实数据。这一篇讲 LangChain 最出圈的能力——工具调用(Tool Calling):让模型「伸手调用一个…

2026/10/9 2:46:44 阅读更多 →
LangChain 从入门到实战(07):让它「读」你的私有文档——检索增强 RAG(上)

LangChain 从入门到实战(07):让它「读」你的私有文档——检索增强 RAG(上)

LangChain 从入门到实战(07):让它「读」你的私有文档——检索增强 RAG(上) 模型再强,也只学过公开数据;你的公司文档、产品手册、用户手册,它一概不知。这一篇开始处理让模型「看得见你的私有知识」。RAG(Retrieval-Augmented Generation,检索增强生成)是眼下最主流…

2026/10/9 2:46:44 阅读更多 →
22 Java 做 AIGC:Spring AI 还是 LangChain4j?调 API 还是私有化?

22 Java 做 AIGC:Spring AI 还是 LangChain4j?调 API 还是私有化?

面试官翻了翻项目经历,问了一个看似随意、其实很能分辨人的问题:"你这个 AI 知识库项目,后端用的什么框架?""Spring AI。"候选人答得很干脆。"为什么用它,而不是 LangChain4j?&qu…

2026/10/9 2:46:44 阅读更多 →
潜水泵控制器原理选型与安装维护指南

潜水泵控制器原理选型与安装维护指南

一、潜水泵应用中面临的行业痛点 潜水泵大量应用于地下集水坑排水、基坑排水、深井取水、污水提升、建筑地下车库等场景。潜水泵长期浸泡在水下,现场环境潮湿恶劣,传统继电器控制方案存在不少现实问题: 1.人工值守效率低:需要人员…

2026/10/9 2:45:44 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26: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/7 13:34:55 阅读更多 →