| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
【bugfix】NM注册失败一直重试,去掉自杀逻辑 Co-authored-by: ganglv<lvgang1@huawei.com> # message auto-generated for no-merge-commit merge: !718 merge add_max_retry_config into master 【bugfix】NM注册失败一直重试,去掉自杀逻辑 Created-by: ganglv Commit-by: ganglv Merged-by: towncharlie Description: ## **1. 合入背景** > 请描述为什么要做这个PR内的改动。\ > 如涉及,请关联前序PR或同特性/需求下的其他PR。\ > 如果是修复之前PR引入的问题,请关联引入问题的PR。\ > 请通过#ISSUE ID关联issue。\ > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. [#476](https://gitcode.com/Ascend/MindIE-Motor/issues/476) ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 1. NM注册失败一直重试 2. 去掉自杀逻辑 ## **3. 资料变更** > 请确认<ins>**是否涉及资料变更**</ins>。\ > 如涉及,需要在PR中体现,并简要说明修改内容。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **4. 接口变更** > 请确认<ins>**是否涉及跨代码仓或者客户面可见的接口变更**</ins>。\ > 如涉及,需详细说明接口以及对应的变更内容,同时需要在资料中体现。\ > 如不涉及,需填写“不涉及”。 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!718 | 1 个月前 | |
docs: 重构 docs/zh 文档目录结构,统一分类体系 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !263 merge pcp_cross_node into master docs: 重构 docs/zh 文档目录结构,统一分类体系 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: towncharlie Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/173 ## 背景 docs/zh/ 下文档日渐增多但缺乏统一分类体系,主要问题: 1. **developer_guide/ 三类内容混在一起**:设计文档、用户部署指南(docker-only)、贡献工具(build_docs)混放 2. **features/ (顶层) 和 user_guide/features/ 同名异义**:前者是设计概念说明,后者是特性部署操作指南,读者容易混淆 3. **features/ (顶层) 与 developer_guide/ 中的设计文档内容性质相同**,却分散在两处 4. **user_guide/ 顶层 13 个 md 文件平铺**,缺少二级分类 ## 方案 将 docs/zh/ 重构为 **5 个一级板块**,每个板块有唯一受众和内容定位: docs/zh/ ├── index.md # 首页 ├── architecture.md # 架构概览 ├── release_note.md # 版本说明 │ ├── user_guide/ # 【用户手册】 │ ├── quick_start.md # 快速开始 │ ├── environment_preparation.md # 环境准备 │ ├── deployment/ # 部署 │ │ ├── k8s/ │ │ │ ├── deploy_mode_guide.md # K8s · 部署模式说明 │ │ │ ├── pd_disaggregation_deployment.md # K8s · PD 分离部署 │ │ │ ├── pd_hybrid_deployment.md # K8s · PD 混部部署 │ │ │ ├── config_reference.md # K8s · 配置参考 │ │ │ └── update_config_whitelist.md # K8s · 更新配置白名单 │ │ └── docker/ │ │ ├── single_container.md # Docker · 单容器部署 │ │ └── multi_container.md # Docker · 多容器部署 │ ├── features/ # 特性指南 │ │ ├── EPD_disaggregation.md # EPD 分离 │ │ ├── KV_cache_affinity.md # KV Cache 亲和 │ │ ├── KV_pool.md # KV Pool │ │ ├── manual_instance_scaling.md # 手动扩缩容 │ │ ├── standby.md # 主备倒换 │ │ └── tracing.md # 链路追踪 │ ├── operations/ │ │ ├── log_config_guide.md # 日志配置 │ │ └── cli_to_engine_config_guide.md # 命令行转换工具 │ └── troubleshooting/ # 故障排查 │ └── solutions_to_common_problems.md │ ├── design/ # 【特性设计文档】 │ ├── pd_disaggregation.md # PD 分离 │ ├── fault_tolerance/ # 可靠性 │ │ ├── overview.md # 能力总览 │ │ ├── scale_p2d.md # ScaleP2D 故障恢复 │ │ └── fault_manager.md # FaultManager 设计 │ ├── manual_scaling.md # 手动扩缩容 │ ├── crd_deployment.md # CRD 部署设计 │ └── metrics.md # Metrics 可观测性 │ ├── developer_guide/ # 【开发者指南】 │ ├── build_docs.md # 本地构建文档 │ ├── make_image.md # 镜像制作 │ └── components/ # 组件实现设计 │ ├── controller.md │ ├── coordinator.md │ ├── engine_server.md │ └── node_manager.md │ └── api_reference/ # 【API 参考】 ├── interface_description.md # 接口说明 ├── service_interface.md # 服务接口 ├── management_and_monitoring_interfaces.md # 管理与监控接口 └── observability_interface.md # Observability 接口 ### 核心设计原则 | 板块 | 受众 | 判断标准 | |------|------|---------| | user_guide/ | 使用者 | "我要部署/配置/排查某个东西" | | design/ | 深度用户/二次开发者 | "我要理解某个特性/模块怎么设计的" | | developer_guide/ | 本项目贡献者 | "我要构建/修改这个项目本身" | | api_reference/ | 调用方 | "我要查这个接口的参数和返回值" | ### 具体变更 | # | 操作 | 说明 | |---|------|------| | 1 | features/(顶层) → design/ | 合并 PD分离、可靠性、ScaleP2D | | 2 | developer_guide/ 中设计文档 → design/ | FaultManager、手动扩缩容、CRD、Metrics | | 3 | developer_guide/docker_only/ → user_guide/docker/ | 本质是用户部署指南,非开发者文档 | | 4 | user_guide/ 平铺文件 → 二级目录 | deployment/ features/ operations/ troubleshooting/ | | 5 | user_guide/solutions_to_common_problems.md → troubleshooting/ | 为未来拆分为多文件留空间 | | 6 | 更新 .nav.yaml | 补全 release_note、observability_interface;移除不存在的文件 | | 7 | 修复 ~30 处失效相对链接 | service_deployment→deployment, features/→design/ 等 | ## **2. 修改内容** > 请<ins>**描述修改内容的具体实现**</ins>,涉及哪些组件之间进行交互,可以用1、2、3、...进行罗列。 > 如果是需求或者重构类的PR,需要<ins>**补充详细设计文档**</ins>(说明上下游组件关系、时序图、类图、DFX能力等内容)。 ## **3. 资料变更** 涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果**   ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!263 | 3 个月前 | |
[docs] 对齐 MindIE-Motor 文档站品牌、锚点与仓链 Co-authored-by: Jechin<yuzechen1@huawei.com> # message auto-generated for no-merge-commit merge: !621 merge fix/docs-mkdocs-site-motor into master [docs] 对齐 MindIE-Motor 文档站品牌、锚点与仓链 Created-by: Jechin Commit-by: Jechin Merged-by: towncharlie Description: ## **1. 合入背景** > Read the Docs 页眉仍显示旧品牌 MindIE-PyMotor;中文标题锚点失效;文档内存在旧仓名断链;README 缺少在线文档入口且 Ask AI 仍指向旧仓。 Fixes [#366](https://gitcode.com/Ascend/MindIE-Motor/issues/366) 双合:本 PR 合入 master;同改动另提至 v3.1.0:!622。 ## **2. 修改内容** 1. 更新 mkdocs.yml:站点元数据改为 MindIE-Motor,site_url 对齐 https://mindie-motor.readthedocs.io/;toc 启用 Unicode 友好 slugify(不使用标题显式 {#id})。 2. 修正文档内旧仓名 MindIE-PyMotor 链接与 docs 外断链(改为指向 Ascend/MindIE-Motor 的可点击绝对链接;仓内路径纠错)。 3. 更新 README.md:补充 Read the Docs 入口;Zread / DeepWiki 改为 Ascend/MindIE-Motor。 ## **3. 资料变更** 涉及:mkdocs.yml、README.md,以及相关 docs/zh 中文文档链接与品牌文案。 ## **4. 接口变更** 不涉及 ## **5. 测试结果** > 本地:conda activate motor 后 mkdocs build 可验证。\ > 已 rebase 至最新 master。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [x] 代码注释完备 [x] 正确记录维测日志 [x] 是否有UT用例 [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!621 | 1 个月前 | |
【docs】修改pymotor名称&新增目录结构&新增通信矩阵 Co-authored-by: xiao-qing123<xiaoqing14@h-partners.com> # message auto-generated for no-merge-commit merge: !504 merge master into master 【docs】修改pymotor名称&新增目录结构&新增通信矩阵 Created-by: xiao-qing123 Commit-by: xiao-qing123 Merged-by: towncharlie Description: Fixes [#301](https://gitcode.com/Ascend/MindIE-PyMotor/issues/301) 1、修改MindIE Pymotor名称为:MindIE Motor 2、新增menu文件 3、新增MindIE Motor通信矩阵 See merge request: Ascend/MindIE-PyMotor!504 | 2 个月前 | |
[feature] kv-conductor /query 支持 msgpack 编码,10倍性能收益 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !687 merge opt/kv_conductor_query_msgpack into master [feature] kv-conductor /query 支持 msgpack 编码,10倍性能收益 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: tobking Description: ## 1. 合入背景 为 kv-conductor 的 /query 与 /query_by_hash 增加 MessagePack 编解码支持,并在 Coordinator 端到端打通(ConductorApiClient.query_conductor 默认走 msgpack)。长上下文(1M/5M token)场景下,KV 亲和性查询的请求体积与编解码耗时显著下降。 借鉴 Mooncake conductor #3258 的 Content-Type 分派方案;与 KV Conductor 的前缀索引能力(#338 对应的自研 kv-conductor)配套演进。 关联 ISSUE:[#455](https://gitcode.com/Ascend/MindIE-Motor/issues/455) ## 2. 修改内容 1. **kv-conductor(Rust,motor/kv_conductor/)** - /query、/query_by_hash 按请求 Content-Type 分派:application/msgpack → rmp_serde 解码请求,响应/错误/空结果用 rmp::encode 手工编码;其他 Content-Type 走原 JSON 路径(行为不变)。 - 响应侧手工编码的原因:QueryResponse 使用 #[serde(flatten)](tenants 展开到顶层 map),msgpack 序列化器不支持 flatten——手工编码保证 msgpack wire 形状与 JSON 逐字节等价,并有单元测试(rmpv→serde_json 结构化对比)守护。 - QueryRequest / QueryByHashRequest 增加 Serialize(原仅 Deserialize)。 2. **Coordinator(Python)** - ConductorApiClient:新增 encode_query_msgpack / decode_query_response_msgpack(msgspec),query_conductor() 按 kv_conductor_config.query_encoding(默认 "msgpack")分派;响应按服务器 Content-Type 解析(msgpack → msgspec,否则 JSON),**旧版 JSON-only conductor 自动兼容,无需配置切换**。 - SafeHTTPSClient 新增 post_bytes()(原始 body POST)。 - KvConductorConfig 新增 query_encoding 配置项。 3. **测试** - Rust:单元测试 120(新增 msgpack 往返、wire 形状等价、Content-Type 嗅探、错误/空结果编码)+ 集成测试 20(新增 msgpack/JSON 查询结果一致、msgpack /query_by_hash、404/400 错误路径按请求编码返回);cargo clippy -D warnings、cargo fmt 通过。 - Python:api_client 44(新增 msgpack wire 格式断言、json 配置路径、legacy JSON 响应 fallback)、coordinator 模块 1155 全过。 - 性能验证使用临时 benchmark 脚本(真实 conductor 进程 + client 真实编解码路径),bench 属验证工具未随 PR 上库。 ## 3. 资料变更 涉及: - docs/zh/user_guide/configuration/config_reference.md:新增 kv_conductor_config.query_encoding 配置说明。 - skill reference(.agent/skills/motor-dev/references/coordinator.md、kv-conductor.md):新增 msgpack 编解码章节与端到端数据,并修正两处过时内容(服务端加权评分模型已移除、src/indexer.rs → src/indexer/ 目录)。 ## 4. 接口变更 涉及(客户面可见): - POST /query、POST /query_by_hash 新增 Content-Type: application/msgpack 请求编码支持,响应随请求编码返回(JSON 默认行为不变,向后兼容)。 - Coordinator 配置新增 kv_conductor_config.query_encoding(默认 "msgpack";对接旧版 conductor 可配 "json")。 ## 5. 测试结果 **性能收益**(真实 kv-conductor release 进程 + Coordinator client 真实编解码路径,best-of-5,DeepSeek V4 风格长上下文): === 1M tokens(block_size=128)=== step JSON msgpack 提速 请求体积 encode 29.92 ms 2.89 ms 10.4x 6.65MB -> 2.99MB (-55%) HTTP RTT 45.63 ms 12.07 ms 3.78x (客户端序列化+服务端XXH3哈希/树匹配/序列化+网络) TOTAL 45.63 ms 12.07 ms 3.78x === 5M tokens(block_size=128)=== encode 149.8 ms 14.4 ms 10.4x 33.3MB -> 14.9MB (-55%) HTTP RTT 220.5 ms 41.9 ms 5.26x TOTAL 220.5 ms 41.9 ms 5.26x - 5M 上下文单次查询省 ~178ms,1M 省 ~34ms;请求体积减半(网络传输同步受益)。 - 收益来源:客户端 msgspec 编码(10x)、服务端 rmp 解析 vs serde_json(RTT 内体现)、传输字节减半。 **短上下文覆盖**(1 ~ 16K tokens,纯编解码,msgspec vs json.dumps/loads,best-of-20000): tokens | json enc msgpack enc | json dec msgpack dec 1 | 1.07us 0.12us | 1.19us 0.21us 64 | 2.83us 0.27us | 2.94us 0.51us 1024 | 26.44us 2.31us | 26.44us 7.96us 16384 | 437.67us 32.82us | 430.86us 148.58us - 全长度区间(1 ~ 16K token)msgpack 均更快:1 token 时亦快 ~9x(编码 0.12us vs 1.07us); - **无临界点、无负收益**——msgspec 为纯 C 实现,固定开销(~0.1-0.2us)低于 json.dumps/loads 的固定开销(~1-1.2us),短上下文(普通对话场景)同样占优; - 默认 query_encoding: "msgpack" 在短/长上下文下均无回归。 **功能测试**: - cargo test:120 单元 + 20 集成全过; - bash tests/run_tests.sh tests/coordinator/:1155 用例全过; - pre-commit 全量通过(ruff/pylint/bandit/cargo clippy/fmt 等)。 **测试场景**:单元(编解码往返/等价性)、集成(HTTP Content-Type 协商、错误路径、JSON 兼容)、端到端(1M/5M 长上下文性能)。精度/显存不涉及(无模型运行)。 ## 6. CheckList - [x] 代码注释完备 - [x] 正确记录维测日志 - [x] 是否有UT用例(120 Rust 单元 + 20 集成 + 44 Python 单测) - [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题(查询路径只读锁语义未变,msgpack 编解码为无状态纯函数) See merge request: Ascend/MindIE-Motor!687 | 1 个月前 | |
[docs] 补充自动弹性扩缩容文档 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !490 merge docs/auto_scaler into master [docs] 补充自动弹性扩缩容文档 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: tobking Description: ## **1. 合入背景** https://gitcode.com/Ascend/MindIE-PyMotor/issues/290 补充自动弹性扩缩容功能使用文档 ## **2. 修改内容** 补充自动弹性扩缩容功能使用文档 ## **3. 资料变更** 涉及 ## **4. 接口变更** 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-Motor!490 | 1 个月前 | |
[docs]文档结构调整,无效文档删除+重写 Co-authored-by: weixin_63825906<gaopeng140@huawei.com> # message auto-generated for no-merge-commit merge: !523 merge A5_rename3 into master [docs]文档结构调整,无效文档删除+重写 Created-by: weixin_63825906 Commit-by: 高鹏;weixin_63825906 Merged-by: towncharlie Description: ## **1. 合入背景** 仓库存在部分冗余文档,且目录结构规划需要优化 > 注意: Fixes #ISSUE ID会自动关闭issue,如问题部分解决请不要使用Fixes,可以用Fix part of #ISSUE ID替代. ## **2. 修改内容** **存在以下无效文档:当前进行删除或重写** 删除 operations/**log_config_guide.md**,文档冗余,仅说明如何配置日志等级,相关内容和config_reference.md重复。 删除 operations/**cli_to_engine_config_guide.md**,当前已有全量配置转换工具,该文档可以删除。 重写/user_guide/deployment/k8s/**deploy_mode_guide.md**,该文档改名并重写为deployment/k8s/README.md,原文档内容混淆,内容不明,现已重写。用于指导用户选择部署形态和部署方式。 重写/user_guide/deployment/k8s/**update_config_whitelist.md**,该文档标题未表达出“配置热更新”的主旨,因此对内容进行重写,并移动至configuration文件夹下。 **文档迁移** • deployment/k8s/config_reference.md → configuration/config_reference.md • deployment/k8s/update_config_whitelist.md → configuration/update_config_whitelist.md • troubleshooting/solutions_to_common_problems.md → maintenance/solutions_to_common_problems.md ## **3. 资料变更** 文档目录与导航信息架构调整; 配置类文档从部署目录独立; 运维/排障合并为服务维护,并新增镜像制作指导; 部署方式说明重写; 硬件表述修改; ## **4. 接口变更** 不涉及 ## **5. 测试结果** > 需体现<ins>**测试场景,测试方法以及测试结果**</ins>。\ > 测试用例设计时需考虑硬件、部署方式、功能、性能、精度、显存等维度。 ## **6. CheckList** > PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x] [ ] 代码注释完备 [ ] 正确记录维测日志 [ ] 是否有UT用例 [ ] 若涉及多线程场景,考虑了并发场景,不存在死锁问题 See merge request: Ascend/MindIE-PyMotor!523 | 2 个月前 | |
【docs】新增指标接口文档 metrics_interfaces.md,梳理监控/观测接口与弃用关系 Co-authored-by: 吕有辉<lvyouhui@huawei.com> # message auto-generated for no-merge-commit merge: !741 merge docs/metrics_interfaces into master 【docs】新增指标接口文档 metrics_interfaces.md,梳理监控/观测接口与弃用关系 Created-by: codeDogPro Commit-by: 吕有辉 Merged-by: tobking Description: ## **1. 合入背景** 指标接口(Coordinator Observability 端口 GET /metrics)是 Motor 监控指标的唯一推荐获取途径,但文档将说明分散在 monitoring_interfaces.md、observability_interface.md、api/README.md 多处:/observability/metrics 在代码中已标记弃用而文档未标注、/metrics 的聚合视图/返回格式/指标清单缺失、监控与观测接口默认端口同为 1027 易混淆。本 PR 重构指标相关文档,使其与代码现状一致。 关联 ISSUE:#482 ## **2. 修改内容** 1. 新增 docs/zh/user_guide/api/metrics_interfaces.md:完整说明 /metrics 接口的请求参数(type/role/format)、5 种聚合视图(full/instance/role/dp/node)、Prometheus / OpenTelemetry 两种返回格式及示例、返回指标清单(SLA/时延直方图、状态 Gauge、Counter、派生指标、进程指标、KV Store 指标)、数据加工说明(采集周期、聚合语义、Counter 累计语义、engine= 标签剥离、inactive 实例归零等)、Prometheus 对接配置与错误处理;并承接已弃用的 /instance/metrics 说明。 2. observability_interface.md:/observability/metrics 标注 [!WARNING] 已弃用 并指向新文档;CCAE Reporter 交互表格指标行更新为 Coordinator /metrics(与 ccae_reporter 代码实际行为一致)。 3. monitoring_interfaces.md 删除(内容并入以下文档):/health 并入 management_interfaces.md 探针接口组(注明其挂在 Coordinator Observability 端口而非管理端口)。 4. api/README.md:管理接口加入 /health;「监控接口」章节更名为「指标接口」并主推 /metrics;观测接口移除已弃用的 /observability/metrics;提示两个 1027 端口(Coordinator 指标端口 vs Controller 观测端口)的区别。 5. 同步更新 .nav.yaml、menu_user_manual.md、design/scaling.md 的文档入口与链接。 ## **3. 资料变更** 涉及。本次改动全部为 docs/zh/ 下文档(新增 1 个文件,修改 5 个,删除 1 个)。 ## **4. 接口变更** 不涉及代码接口变更。文档层面将 /observability/metrics、/instance/metrics 标注为已弃用并指引到 /metrics(接口行为与代码现状一致,代码已提前完成弃用标记)。 ## **5. 测试结果** - 纯文档改动,无代码/单测影响。 - 已校验:全部相对链接与标题锚点(脚本校验 0 问题);monitoring_interfaces 引用清零;pre-commit 钩子通过(gitleaks 因仓库缺少 ./gitleaks 二进制跳过,其余全过)。 - 内容与代码核对:motor/coordinator/api_server/observability_server.py(路由/参数/端口)、motor/coordinator/metrics/(聚合视图、指标注册表、加工逻辑)、motor/controller/api_server/controller_api.py(弃用标注)、examples/features/observability/ccae_reporter/backends/motor_backend.py(CCAE 指标采集入口)。 ## **6. CheckList** [x] 代码注释完备(不涉及,纯文档) [x] 正确记录维测日志(不涉及,纯文档) [x] 是否有UT用例(不涉及,纯文档;链接/锚点已脚本校验) [x] 若涉及多线程场景,考虑了并发场景,不存在死锁问题(不涉及,纯文档) See merge request: Ascend/MindIE-Motor!741 | 1 个月前 |
设计文档
面向 需要深入理解特性原理的读者,涵盖特性的设计思路、架构决策与概念说明。
内容侧重
- 特性要解决什么问题、怎么设计的
- 架构层面的取舍与决策依据
- 特性间的关联与整体视图
与开发者指南的区别
| 设计文档 | 开发者指南 |
|---|---|
| 特性原理与设计说明 | 软件实现细节 |
| 面向深度用户、架构师 | 面向代码贡献者 |
| 侧重 "为什么这么设计" | 侧重 "代码怎么写出来的" |
如果你需要查看组件类图、数据流、内部实现细节,请查看 开发者指南。