资讯详情

pip install mirobody:在自己代码中直接用离线健康术语解析引擎,无需 API Key 也无需联网

📅 2026/10/12 11:08:33 | 华诺云谱 👁 阅读
pip install mirobody:在自己代码中直接用离线健康术语解析引擎,无需 API Key 也无需联网
【免费下载链接】mirobodyTurn scattered health data into answers you can trace. Self-hosted AI health data engine for lab reports, wearables and genetics, with a built-in MCP server. Run it with Docker and one LLM key, or keep every model local on llama.cpp.项目地址https://gitcode.com/gh_mirrors/mi/mirobody点击查看免费下载mirobody 是一款自托管的 AI 健康数据引擎而它发布在 PyPI 上的mirobody包有一个特别轻量的用法执行pip install mirobody后你就能在自己的 Python 代码中直接使用这个健康术语解析引擎——把任意语言的体检指标名称解析为 LOINC 标准编码、把单位换算到 UCUM 标准单位。整个过程无需 API Key、无需联网、无需数据库唯一依赖只有 numpy。为什么健康数据需要先说同一种语言拿到体检报告后很多人发现同一个指标在不同机构有不同的名字英文报告写hemoglobin中文报告写血红蛋白日文写ヘモグロビン同一种胆固醇有的实验室按mmol/L出值有的按mg/dL出值体重有人记lb、有人记kg体温有°F和°C两套单位。如果直接把这些数据拼进同一张趋势图得到的曲线是静默地错的——看起来正常实际混了两个不同的东西。健康数据标准化的意义就是把名称统一到标准编码LOINC、单位统一到标准量纲UCUM让可比较成为前提。 上面的文件 demo/upload/mom_physical_2026-06.jpg 就是项目演示数据中的一份真实体检照片。mirobody 把标准化做成了三层流水线中的② Translate层并且这一层是纯离线词法索引不是大模型。你只想要这一步就只装这一个包。一键安装pip install mirobodypip install mirobody安装时要注意两点需要 Python 3.12pyproject.toml中声明requires-python 3.12基础依赖只有 numpy。项目刻意把默认安装做成词汇层——pyproject.toml 中dependencies [numpy]早些年这个包曾拖进 93 个依赖包和 245 MB现在一个只想要术语解析的用户什么都不必多想。如果你不想安装也可以用uvx直接跑零安装uvx --python 3.12 mirobody resolve LDL cholesterol 血红蛋白 ヘモグロビン 血脂不写代码先用 mirobody resolve 命令试试手pip install mirobody会注册一个mirobody命令行入口。resolve子命令对着包内自带的词汇库做离线解析mirobody resolve LDL cholesterol 血红蛋白 ヘモグロビン 空腹血糖(GLU) 血脂输出里值得注意的正是最后一行血脂是一个类别名而不是某个具体检验项所以它解析为无。这不是失败而是设计——错误的编码会让两个不同的检验项被画进同一条趋势线。官方文档 docs/quickstart.md 的原话是a wrong code puts two different tests on one trend line。在你的代码里用三个函数掌握核心核心 API 都在 mirobody/engine/ 包中入口文档就是 mirobody/engine/__init__.py 的模块说明from mirobody.engine import resolve, resolve_reading, standardize_reading resolve(血红蛋白).loinc # 718-7 任意语言一个编码 resolve(total cholesterol).loinc # 2093-3 [质量/体积] resolve_reading(total cholesterol, 5.0, mmol/L).loinc # 14647-2 [摩尔/体积] resolve_reading(total cholesterol, 193, mg/dL).loinc # 2093-3三个函数各管一件事函数作用典型场景resolve(term)名称 → LOINC 编码把报告里的指标名统一成标准编码resolve_reading(name, value, unit)名称 数值 单位 → LOINC 编码单位参与身份判定mmol/L和mg/dL是两个不同编码standardize_reading(name, value, unit)输出 FHIR Observation 结构直接得到标准数据格式无需自己组装 注意第二组示例同一个total cholesterol因为单位不同解析出不同的 LOINC 编码。这是 LOINC 的标准做法——单位是检验项身份的一部分。如果你的管线里混着两种单位的胆固醇这个行为恰好帮你把系列拆开而不是悄悄画错趋势。主诉与诊断也有自己的编码轴症状和诊断走 ICPC-3 编码规则同样是要么给出编码要么明确说明为什么不给from mirobody.translate import resolve_symptom, resolve_condition resolve_symptom(头疼).code # NS01 headache resolve_symptom(疼).outcome # refused 太宽泛保留原文 resolve_condition(2型糖尿病).code # TD72 resolve_condition(糖尿病).outcome # needs-input 哪一型问而不是猜糖尿病被标记为needs-input需要追问分型而不是默认挑一个编码——对健康数据来说这种停下来问比自信地错重要得多。设备数据单位一步换算到标准单位可穿戴设备发来的数据比如154.5 lb可以先换算再入库让每个指标只存一种单位from mirobody.translate import StandardIndicator, convert_to_standard convert_to_standard(StandardIndicator.WEIGHT, 154.5, lb) # - (70.08, kg)可运行的完整示例见 examples/02_standardize_a_reading.py名称解析的完整示例四语言对照、单位决定编码、拒答与歧义演示见 examples/01_resolve_offline.py两者都只需要pip install mirobody无需 key、无需数据库、无需网络。它拒绝回答的时候也告诉你为什么resolve()返回的Resolution对象定义在 mirobody/engine/resolver.py把没答上来分成三种可区分的状态未收录method 词汇库没见过这个词是一个可修补的缺口主动拒答method refused这是一个决定——比如血糖(HbA1c)在一个字符串里指了两个不同的检验项任何单一编码都是错的歧义上报candidates字段匹配到多条时给出数量比如glucose会命中多条 LOINC 行你可以据此判断是否需要人工确认。换句话说用method lexical的结果当身份标识是安全的而拒答结果不会被第二意见悄悄推翻。这是整套 API 里最值得借鉴的设计把不知道和不该答分开表达。包里到底带了多大的词汇库离线不等于简陋。包内自带的词汇包规模如下详见 docs/standardization.md内容规模LOINC 编码切自 LOINC 2.8363,416 个指向这些编码的名称/别名692,577 条中文别名含项目自研整理行22,578 条UCUM 标准单位带量纲分析330 个标准设备指标316 个ICPC-3 症状/诊断编码1,218 个而且这个项目用测试来证明自己的说法mirobody/tests/test_engine_coverage.py 把离线解析器对着一套普通体检会印出来的检验项打分覆盖英文、简体中文、繁體中文、日文、俄文、爱沙尼亚语和土耳其语当前成绩321/321并且明确要求血脂解析为无才算通过。你也可以一行命令核对包里的词汇版本python -c import mirobody; print(mirobody.BUNDLE_VERSION) # loinc-2.832026.09.17-aacb2c715b56如果还想做更多按需选择 extras默认的pip install mirobody只给词汇层完整产品能力以可选依赖extras分层提供互不牵连你想做安装额外需要解析体检报告 PDF/照片/表格为标准化读数pip install mirobody[parse]一个模型 Key仅读文件那半步需要模型把 agent 层当库使用含 MCP 工具面pip install mirobody[agent]—完整产品HTTP 服务 Web 前端 agentpip install mirobody[app]Postgres另外两条零安装路径值得一提uvx --python 3.12 mirobody mcp可以在stdio 上离线启动一个 MCP 服务把词汇能力暴露给 Claude Code、Cursor 等 MCP 客户端同样无需 key 和数据库mirobody import apple ~/Downloads/export.zip离线解码 Apple Health 导出文件只用到 Python 标准库。当你装好完整栈后标准化层会在产品里长成这样同一个指标在不同报告里名字不同回答却能把它们画成一条趋势线且每个数字都能点开追溯到来源文件。小结适合谁用这个库✅ 你正在写健康数据管线需要把多语言指标名统一成 LOINC 编码——这就是你需要的全部✅ 你的场景涉及隐私敏感数据标准化步骤不能出网——解析全程在本机词汇包上进行✅ 你希望解析不了时拿到明确信号未收录/拒答/歧义而不是一个貌似合理的猜测⚠️ 你需要解析 PDF 报告文本或跑完整的问答产品——请按需加装[parse]/[app]extras。延伸阅读docs/quickstart.md — 库 / 完整栈 / 源码树三种进入方式的完整指南docs/standardization.md — ② Translate 层深度剖析词汇包切分规则、覆盖范围与边界examples/ — 7 个按依赖多少排序的可运行示例mirobody/res/loinc/resolver_overrides.tsv — 人工校正表贡献新词条的入口赞分享【免费下载链接】mirobodyTurn scattered health data into answers you can trace. Self-hosted AI health data engine for lab reports, wearables and genetics, with a built-in MCP server. Run it with Docker and one LLM key, or keep every model local on llama.cpp.项目地址https://gitcode.com/gh_mirrors/mi/mirobody点击查看免费下载相关推荐如何在Mac上让普通鼠标超越苹果触控板Mac Mouse Fix完全指南如何在Mac上让普通鼠标超越苹果触控板Mac Mouse Fix完全指南 还在为Mac上第三方鼠标的糟糕体验而烦恼吗滚轮卡顿、侧键无效、操作效率低下……这些桌面应用系统编程无需联网也能升级TabNine离线模型更新全攻略无需联网也能升级TabNine离线模型更新全攻略 你是否遇到过这样的困扰在没有网络的环境下TabNine代码自动补全工具的智能提示功能变得不再精准或开发工具AI 应用无需联网也能OCRSurya项目90语言全功能离线部署指南无需联网也能OCRSurya项目90语言全功能离线部署指南 企业文档处理还在依赖云端OCR服务面临数据隐私泄露风险、API调用成本高企、网络波动导致服务中计算机视觉深度学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑