> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 构建集成自定义 AI 模型的应用

> 选择 QIM SDK 开发路径,验证管线,并从启动调试推进到生产应用,同时提供指向完整 QIM SDK 文档的链接。

本页是工作流中的应用开发步骤。当您的模型能够在管线中运行,并且其输出已转换为可用的元数据后,您需要选择一条开发路径(GStreamer、Python、C++ 或 Coding Agent),验证管线,并将其从启动调试推进到生产。

本工作流页面将决策和顺序集中在一处,并链接到完整的 [QIM SDK 文档](https://imsdkdocs.qualcomm.com/index),以便您在过程中查阅所需的详细 API 参考、快速入门和示例管线。

<Info>
  **[应用开发工作流](../topic/imsdk-app-development#application-development-workflow)的第 4 步** — 最后一步,所有模型路径都在此汇合。
</Info>

## 开始之前

开始构建之前,请确认以下事项。本页假定前面步骤中的模型集成已经正常工作。

| 先决条件 | 如何确认 |
| - | - |
| 模型可通过推理插件运行 | 模型能够使用 `qtimltflite` 或 `qtimlqnn` 加载并生成输出张量。 |
| 后处理能生成可用的元数据 | 现有 `qtimlpostprocess` 模块可以处理该输出,或者您已接入[自定义模块](../topic/add-postprocessing-support-custom-model)。 |
| 标签和设置已确定 | 您已拥有模型用于生产环境的 `labels`、`settings` 和 `results` 值,而不仅仅是启动调试时的默认值。 |
| 目标设备可用 | 您可以在目标 Qualcomm 平台上部署和运行,而不仅仅是在主机上。 |
| 已安装 QIM SDK | SDK 和 App Builder 工具已设置完毕 — 请参阅[设置和构建 QIM SDK](https://imsdkdocs.qualcomm.com/advanced/yocto-build)以及 [QIM SDK 文档](https://imsdkdocs.qualcomm.com/index)。 |

## 选择开发路径

QIM SDK 提供四种构建应用的方式,它们都驱动相同的 QIM SDK 插件。因此,您早期验证过的管线在迁移到更高层级的应用层时仍然有效。请选择与应用当前成熟度相匹配的路径。

| 开发路径 | 最适合 | 如何使用模型集成 | 在 QIM SDK 文档中了解更多 |
| - | - | - | - |
| **GStreamer App Builder** | 管线验证、调试和底层控制 | 在原生 GStreamer 管线中直接使用模型、推理插件和 `qtimlpostprocess` 模块。 | [GStreamer 快速入门](https://imsdkdocs.qualcomm.com/quickstart) · [示例管线](https://imsdkdocs.qualcomm.com/quickstart) |
| **Python App Builder** | 快速原型设计、演示和编排 | 通过高层级 Python 应用流程驱动已验证的管线。 | [Python App Builder](https://imsdkdocs.qualcomm.com/app-builder/python-quickstart) · [API 参考](https://imsdkdocs.qualcomm.com/app-builder/python-architecture-api-reference) |
| **C++ App Builder** | 生产应用 | 使用 QIM SDK API 将已验证的管线封装到 C++ 应用中。 | [C++ App Builder](https://imsdkdocs.qualcomm.com/app-builder/cpp-quickstart) · [API 参考](https://imsdkdocs.qualcomm.com/app-builder/cpp-architecture-api-reference) |
| **Coding Agent** | 引导式、辅助式生成应用代码 | 在 Python、C++ 和 GStreamer App Builder 工作流中生成和部署应用。 | [Python Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/python-coding-agent) · [C++ Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/cpp-coding-agent) · [GStreamer Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/gstreamer-coding-agent) |

<Note>
  初次接触 App Builder?请先阅读 QIM SDK 文档中的 [App Builder 简介](https://imsdkdocs.qualcomm.com/app-builder/introduction),在选择之前了解各种编程模型的概况。
</Note>

## 推荐的构建顺序

在开发应用层之前先验证 AI 管线。这种方法有助于及早隔离模型、推理和后处理问题,使集成和调试工作显著简化。

```mermaid theme={null}
%%{init: {"themeVariables": {"fontSize": "13px"}, "flowchart": {"htmlLabels": true, "nodeSpacing": 18, "rankSpacing": 26, "curve": "basis", "padding": 6}}}%%
flowchart LR
    V1["1 · 验证<br/>模型"]
    V2["2 · 选择<br/>后处理模块"]
    V3["3 · 在 GStreamer<br/>管线中运行"]
    B1["4 · 迁移到 C++ 或<br/>Python App Builder"]
    B2["5 · 在目标<br/>平台上测试"]

    V1 --> V2 --> V3 --> B1 --> B2

    classDef validate fill:#3253DC,stroke:#3253DC,color:#fff;
    classDef build fill:#31017D,stroke:#31017D,color:#fff;
    class V1,V2,V3 validate;
    class B1,B2 build;
```

<Steps>
  <Step title="验证模型">
    独立于最终应用来验证模型,并确认其预期的输入和输出张量格式。如果模型仍需要转换、优化或量化,请先在[模型准备工作流](../map/compile-and-optimize-model)中完成这些步骤。
  </Step>

  <Step title="选择或创建后处理模块">
    选择支持您模型输出格式的现有 [`qtimlpostprocess`](https://imsdkdocs.qualcomm.com/plugin-reference/qtimlpostprocess) 模块。如果没有合适的模块,请实现一个[自定义后处理模块](../topic/add-postprocessing-support-custom-model),将原始推理输出转换为与 QIM SDK 兼容的元数据。
  </Step>

  <Step title="使用 GStreamer 验证管线">
    在编写应用代码之前,先在 GStreamer 中运行完整的 AI 管线。使用[参考管线](https://imsdkdocs.qualcomm.com/sample-pipelines/aipipelines)验证预处理、推理、后处理、标签、阈值和输出渲染。这为故障排除和调优提供了快速的反馈循环。
  </Step>

  <Step title="集成到应用中">
    管线验证完成后,如果您的部署需要结构化的应用框架,请将其迁移到 [C++ App Builder](https://imsdkdocs.qualcomm.com/app-builder/cpp-app-builder) 或 [Python App Builder](https://imsdkdocs.qualcomm.com/app-builder/python-app-builder) 应用中。[Coding Agent](https://imsdkdocs.qualcomm.com/app-builder/introduction) 可以帮助生成应用框架并集成已验证的管线。
  </Step>

  <Step title="在目标平台上验证">
    使用具有代表性的工作负载、分辨率、帧率和部署设置,在目标 Qualcomm 平台上测试应用。在发布之前,请验证性能和功能是否满足生产要求。请参阅[生产就绪检查清单](#production-readiness-checklist)。
  </Step>
</Steps>

<Tip>
  独立验证每一层。一条可正常工作的 GStreamer 管线能显著减少应用集成后诊断问题所需的工作量。
</Tip>

<Note>
  本 AI 开发者工作流为使用 QIM SDK 构建和部署 AI 应用提供了引导式路径。有关详细的实现指导(包括安装、插件文档、App Builder API、示例管线和参考应用),请参阅 [QIM SDK 文档](https://imsdkdocs.qualcomm.com/index)。使用本工作流确定下一步要做*什么*,并通过 QIM SDK 文档了解*如何*去做。
</Note>

## 快速入门参考

请使用与所选开发路径相匹配的 QIM SDK 快速入门。首次验证 AI 模型管线时,建议使用 GStreamer 快速入门。

<CardGroup cols={3}>
  <Card title="GStreamer App Builder" icon="diagram-project" href="https://imsdkdocs.qualcomm.com/quickstart">
    在命令行中验证管线,然后逐步扩展。
  </Card>

  <Card title="Python App Builder" icon="python" href="https://imsdkdocs.qualcomm.com/app-builder/python-quickstart">
    使用 Python 进行应用原型设计和编排。
  </Card>

  <Card title="C++ App Builder" icon="code" href="https://imsdkdocs.qualcomm.com/app-builder/cpp-quickstart">
    使用 QIM SDK C++ API 构建生产应用。
  </Card>
</CardGroup>

<Card title="不确定该选哪个?从 App Builder 简介开始" icon="compass" href="https://imsdkdocs.qualcomm.com/app-builder/introduction">
  在确定使用某一种之前,请先在 QIM SDK 文档中比较 GStreamer、Python、C++ 和 Coding Agent 编程模型。
</Card>

## 相关信息

* [分析您的模型](../topic/profile-your-model) — 测量并调优设备端性能。
* [故障排除](../topic/troubleshooting) — 解决管线和运行时问题。
* [QIM SDK 文档](https://imsdkdocs.qualcomm.com/index) — 涵盖 App Builder、插件和示例管线的完整 SDK 参考。
