[{"data":1,"prerenderedAt":305},["ShallowReactive",2],{"works":3,"work-\u002Fproject\u002Fmaintpilot":111,"works-reading":301},[4,28,45,62,78,95],{"path":5,"title":6,"short":7,"description":8,"cover":9,"date":10,"source":11,"author":11,"authorShort":11,"origin":12,"stack":13,"tags":19,"link":24,"repo":11,"team":25,"type":26,"no":27},"\u002Fproject\u002Fmaintpilot","MaintPilot：设备检修 AI 诊断系统","MaintPilot","设备检修的 AI 诊断系统，答案能追溯到手册页码。以维修手册和故障案例为知识源，从一句故障描述走到一张能执行的作业单。","\u002Fimages\u002Fcovers\u002Fmaintpilot.jpg","2026-05-22",null,"original",[14,15,16,17,18],"Vue 3","Go","Python","PostgreSQL","pgvector",[20,21,22,23],"项目","RAG","多 Agent","全栈","https:\u002F\u002Fmaintpilot.lzwcc.xyz\u002Fwelcome","两人合作：我负责前端和部署，同学负责后端和 AI 服务","project","P01",{"path":29,"title":30,"short":31,"description":32,"cover":33,"date":34,"source":35,"author":36,"authorShort":11,"origin":37,"stack":38,"tags":40,"type":43,"no":44},"\u002Fui\u002Fpaper-scroll","纸张滚动效果","纸张滚动","文字在纸上流动，纸张的边缘与阴影保持原位。","\u002Fimages\u002Fcovers\u002Fpaper.jpg","2026-10-05","https:\u002F\u002Fseg6.space\u002F","seg6.space","recreation",[39],"css",[41,42],"滚动","纸张","ui","001",{"path":46,"title":47,"short":48,"description":49,"cover":50,"date":51,"source":52,"author":53,"authorShort":11,"origin":37,"stack":54,"tags":56,"type":60,"no":61},"\u002Fanimation\u002Fdither-ripple-avatar","抖动像素波纹头像","像素波纹头像","指针划过时像素被推开再弹回，点击激起向外扩散的波环。每个像素都是一个带弹簧的粒子。","\u002Fimages\u002Fcovers\u002Favatar.jpg","2026-10-08","https:\u002F\u002Fadixcode.com\u002F","adixcode.com",[55],"canvas",[57,58,59],"头像","粒子","指针交互","animation","002",{"path":63,"title":64,"short":65,"description":66,"cover":67,"date":68,"source":69,"author":70,"authorShort":71,"origin":37,"stack":72,"tags":73,"type":60,"no":77},"\u002Fanimation\u002Fclaude-micro-interactions","Claude 风格的文字显现与输入框交互","Claude 风格微交互","逐字模糊消解、输入框的悬浮边框，以及聚焦时的双环反馈。","\u002Fimages\u002Fcovers\u002Fclaude.jpg","2026-10-14","https:\u002F\u002Fclaude-storybook.bystanderss.chatgpt.site\u002F","Claude Design System Storybook","Claude Storybook",[39],[74,75,76],"文字动画","输入框","聚焦状态","003",{"path":79,"title":80,"short":81,"description":82,"cover":83,"date":84,"source":11,"author":11,"authorShort":11,"origin":12,"stack":85,"tags":89,"link":11,"repo":93,"team":11,"type":26,"no":94},"\u002Fproject\u002Ftoken-stats","token-stats：汇总几台机器的 AI 编程用量","token-stats","统计我在几台机器上用了多少 Claude Code 和 Codex 的 token，画成 GitHub 主页上的卡片。服务器上什么都不用装，只依赖 Python 标准库。","\u002Fimages\u002Fcovers\u002Ftoken-stats.jpg","2026-10-23",[16,86,87,88],"SQLite","SVG","GitHub Actions",[20,90,91,92],"命令行工具","数据可视化","开源","https:\u002F\u002Fgithub.com\u002FLZWcc\u002Ftoken-stats","P02",{"path":96,"title":97,"short":11,"description":98,"cover":99,"date":100,"source":101,"author":102,"authorShort":103,"origin":37,"stack":104,"tags":105,"type":43,"no":110},"\u002Fui\u002Fgrain-gradient-cover","颗粒渐变封面","几团糊开的色块，上面撒一层 1px 的灰色颗粒。拆解 ElevenLabs 博客封面的做法，做成一个可以导出图片的生成器。","\u002Fimages\u002Fcovers\u002Fgrain.jpg","2026-10-24","https:\u002F\u002Fx.com\u002Fianneo_ai\u002Fstatus\u002F2113225499556381172","Ian (@ianneo_ai)","X @ianneo_ai",[55],[106,107,108,109],"渐变","噪点","封面","背景","004",{"id":112,"title":6,"author":11,"authorShort":11,"body":113,"cover":9,"date":10,"description":8,"extension":293,"icon":11,"link":24,"meta":294,"navigation":295,"origin":12,"path":5,"repo":11,"seo":296,"short":7,"source":11,"stack":297,"stem":298,"tags":299,"team":25,"__hash__":300},"project\u002Fproject\u002Fmaintpilot.md",{"type":114,"value":115,"toc":284},"minimark",[116,120,123,130,134,137,142,145,164,169,172,212,215,220,223,226,229,234,237,240],[117,118,119],"p",{},"MaintPilot 是一套面向设备检修现场的 B\u002FS 作业辅助系统。检修员输入一句故障描述，或者拍一张现场照片，系统从维修手册、故障案例和一线经验里检索证据，由多个 Agent 分工推理，给出故障分析、检修步骤、安全提醒和工具备件清单。每条结论都标着出自哪份文档的哪一页。",[117,121,122],{},"项目从 2026 年 5 月开始，和同学两人合作。下面的截图来自线上的产品介绍页，系统本身需要登录才能使用。",[124,125],"project-shot",{":height":126,":width":127,"alt":128,"src":129},"750","1200","MaintPilot 产品介绍页首屏","\u002Fimages\u002Fprojects\u002Fmaintpilot\u002Fhero.jpg",[131,132,133],"h2",{"id":133},"它解决什么问题",[117,135,136],{},"设备手册放在架子上，排障经验留在老师傅脑子里。现场遇到故障时，翻手册慢，问人不一定问得到，查到的结论也说不清出处。MaintPilot 把手册、案例和数据库、网页里的文本统一入库，每次诊断都有据可查；诊断完的经验经过审核再入库，下一次诊断就能用上。",[124,138],{":height":139,":width":127,"alt":140,"src":141},"707","痛点对比：传统做法和 MaintPilot 的做法","\u002Fimages\u002Fprojects\u002Fmaintpilot\u002Fpain.jpg",[131,143,144],{"id":144},"一次诊断怎么走",[146,147,148,152,155,158,161],"ol",{},[149,150,151],"li",{},"检修员输入故障描述，可以附上现场照片或设备铭牌，OCR 和视觉理解的结果一起进入检索。",[149,153,154],{},"检索同时走关键词（BM25）和向量（pgvector），再用 RRF 合并排序。故障码这类要精确匹配的信息，和说法不固定的现象描述，都能找到。",[149,156,157],{},"多个 Agent 分工推理，每一步的思考、调用和结论都能在诊断轨迹里回看。",[149,159,160],{},"输出故障分析、检修步骤、安全提醒和工具备件清单，每条结论挂着来源文档、章节和页码。",[149,162,163],{},"结果可以一键生成分级作业指引，再转成检修工单，执行、复核、归档形成闭环。",[124,165],{":height":166,":width":127,"alt":167,"src":168},"952","链路走查：从故障描述到工单的六个阶段","\u002Fimages\u002Fprojects\u002Fmaintpilot\u002Fflow.jpg",[131,170,171],{"id":171},"主要能力",[173,174,175,182,188,194,200,206],"ul",{},[149,176,177,181],{},[178,179,180],"strong",{},"多 Agent 诊断链","：故障描述进来后由多个 Agent 分工推理，过程可以回看。",[149,183,184,187],{},[178,185,186],{},"证据可溯源","：结论都带来源文档、章节和页码，点开就能核对原文。",[149,189,190,193],{},[178,191,192],{},"多模态输入","：现场照片、设备铭牌都能作为输入，图文一起判断。",[149,195,196,199],{},[178,197,198],{},"知识图谱","：设备、手册和故障案例之间的关联，点任意节点顺着往下查。",[149,201,202,205],{},[178,203,204],{},"作业指引与工单闭环","：研判结果生成分级作业指引，转成工单后执行、复核、归档。",[149,207,208,211],{},[178,209,210],{},"知识沉淀与审核","：一线经验提交后经过审核入库，切分成可检索的片段。",[117,213,214],{},"系统分检修员、审核员、管理员三种角色，各有自己的工作台。",[124,216],{":height":217,":width":127,"alt":218,"src":219},"654","六项主要能力","\u002Fimages\u002Fprojects\u002Fmaintpilot\u002Fsystem.jpg",[131,221,222],{"id":222},"架构",[117,224,225],{},"前端是 Vue 3 + TypeScript；Go（Gin）提供业务 API，负责鉴权、业务逻辑和文件管理；Python（FastAPI）负责文档解析、向量化和大模型调用；PostgreSQL + pgvector 同时存业务数据和向量；Redis 用来做健康探测和任务重放；Nginx 托管前端并转发 API。",[117,227,228],{},"后端整套部署在一台龙芯（LoongArch）服务器上。前端用的 Tailwind CSS v4 依赖 lightningcss，它没有 loong64 的预编译包，服务器上构建不了，所以前端在开发机上构建好再上传。",[124,230],{":height":231,":width":127,"alt":232,"src":233},"1050","五层架构：接入层、业务层、智能层、数据层、运行层","\u002Fimages\u002Fprojects\u002Fmaintpilot\u002Farch.jpg",[131,235,236],{"id":236},"我做了什么",[117,238,239],{},"我主要负责前端，也写了一部分后端接口和部署脚本：",[173,241,242,248,254,260,266,272,278],{},[149,243,244,247],{},[178,245,246],{},"视觉设计系统","：把前端整体重做成深色优先的「指挥舱」风格，建立共享组件层，重做应用外壳和品牌标志，再用共享组件统一所有业务页面；保留浅色皮肤，支持跟随系统、浅色、深色三种模式。",[149,249,250,253],{},[178,251,252],{},"诊断工作台","：AI 诊断页的诊断链卡片、进度条和自动折叠，以及诊断轨迹的业务化展示。",[149,255,256,259],{},[178,257,258],{},"知识图谱和数据统计仪表盘","：前端可视化（ECharts）和对应的接口。",[149,261,262,265],{},[178,263,264],{},"使用体验","：骨架屏、全局提示、分页跳转、图片预览、文档解析进度和预计耗时、使用指南。",[149,267,268,271],{},[178,269,270],{},"产品介绍页","：就是上面截图里的这一页，包括粒子连线、打字机、跑马灯和链路走查演示。",[149,273,274,277],{},[178,275,276],{},"账号相关","：登录页、找回密码、记住登录、个人资料。",[149,279,280,283],{},[178,281,282],{},"部署","：龙芯服务器的一键安装脚本，支持没有配置邮件服务时首次部署、离线重置管理员。",{"title":285,"searchDepth":286,"depth":286,"links":287},"",2,[288,289,290,291,292],{"id":133,"depth":286,"text":133},{"id":144,"depth":286,"text":144},{"id":171,"depth":286,"text":171},{"id":222,"depth":286,"text":222},{"id":236,"depth":286,"text":236},"md",{},true,{"title":6,"description":8},[14,15,16,17,18],"project\u002Fmaintpilot",[20,21,22,23],"CxMc0Sl6jmjK5PhUfKpCEFxqsuEoQAN8am5-8lRTOUk",{"\u002Fui\u002Fcontent-routing":302,"\u002Fui\u002Fgrain-gradient-cover":286,"\u002Fui\u002Fpaper-scroll":302,"\u002Fanimation\u002Fclaude-micro-interactions":303,"\u002Fanimation\u002Fdither-ripple-avatar":302,"\u002Fproject\u002Fmaintpilot":304,"\u002Fproject\u002Ftoken-stats":286},1,7,3,1793112261015]