我是热爱探索AI前沿技术的LucianaiB。
今天,DocPilot Qwen 正式开源。
这是一个面向 Android 手机的开源文档 AI 助手,目标是把文档导入、文档解析、AI 问答、摘要生成、模板抽取、本地记录管理等能力整合到一个原生 App 中,让手机也能完成学习资料整理、论文阅读、报告分析、办公文档处理等任务。

为什么做 DocPilot Qwen?
移动端已经有足够强的算力,但很多文档 AI 工具仍然依赖云端、桌面端或封闭产品。DocPilot Qwen 想做的是一个更适合学生和个人使用者拆解、学习、复用的 Android应用。
项目选用 Qwen 系列模型作为核心推理能力,支持云端 API 协同;同时接入 MNN 框架,并预留针对 Arm SME2 指令集进行端侧推理加速与性能调优的路径,让手机算力真正释放。
文档解析侧加入 TextIn Skill 能力 ,适合处理 PDF、Office、图片等复杂文档;TextIn 当前开发者额度较友好,最高可覆盖每天约 4000 页解析需求,具体以官方政策为准。
本项目使用 KAT-Coder-Pro V2 搭建

本项目完全开源,代码结构尽量保持清晰。它既可以作为个人文档助手继续打磨,也很适合在校大学生拿来做 Android 课程作业、毕业设计原型、AI 应用实践项目,或者作为 Kotlin + Compose + Room + Retrofit 的综合练手项目。
项目地址:github.com/LucianaiB20... 欢迎大家体验、提 issue,也欢迎提交 PR。
使用方法
下载 APK
在 GitHub 中获取 APK 包,然后在手机上直接进行安装应用。
由于本软件完全开源,所以使用自己的 API,以及本地模型。
获取 API Key
- Qwen / 阿里云百炼 API Key:help.aliyun.com/zh/model-st...
- TextIn API Key:www.textin.com/market/deta...
效果演示

第一个功能肯定就是把文件导入,对文件进行预览。

在首页中可以快速进行文件的导入,支持 PPT、Word、Excel、图片等多种格式。
在导入进来以后,点击"分析",系统就会通过 TextIn 进行文件的抽取,然后再调用对应的模型进行相应的分析。

在 AI 助手中,我们可以根据这个文档,采用本地模型或者是云端模型对其进行分析。例如在下方,我询问他这个图片里面的内容主要是关于什么呢?它成功地进行了回答。由于采用的是本地模型和 MNN 的搭配,我们也不需要担心数据会泄露。

在 TextIn 中,我们也可以根据自定义的要求对文件进行提取。例如发票,我们在进行发票提取的时候,有时会对它进行批量提取的操作。
使用 TextIn,我们可以进行快速的自定义提取。每天最高可以薅到 4000 页的额度。

在设置中,我们可以进行 API 的切换,以及本地模型和云端模型的切换。
此外,还支持本地模型的下载以及管理。

技术架构
DocPilot Qwen 的核心技术架构由四部分组成:MNN 端侧推理引擎、TextIn Skill 文档解析、Qwen 本地模型/云端模型,以及 KwaiKAT 开发协作体系。
- MNN 端侧推理引擎
DocPilot Qwen 接入了 MNN 端侧推理引擎,用于在 Android 手机上运行本地模型。
项目中已经集成 MNN 相关 native library,并通过 MnnQwenEngine 封装本地推理能力。运行时会加载 MNN、docpilot_mnn_llm 或 mnnllmapp 等动态库,并通过 LlmSession 完成本地模型初始化、Prompt 提交、流式输出和资源释放。项目 README 也将 MNN、arm64-v8a native libraries 作为端侧推理部分列入技术栈。
核心调用逻辑可以概括为:
javascript
val session = LlmSession(configPath)
if (!session.init(runtimeConfig)) return null
val finalText = session.submit(
prompt,
imagePaths,
object : GenerateProgressListener {
override fun onProgress(progress: String?): Boolean {
// 接收模型生成过程中的增量内容
return false
}
}
)
session.release()
这一层让 DocPilot Qwen 具备了端侧 AI 能力,不再只是一个依赖云端 API 的文档助手。
- TextIn Skill 文档解析
文档解析部分使用 TextIn Skill / xParse API。
它负责把 PDF、Word、PPT、Excel、图片等复杂文件解析成 Markdown、结构化 JSON 和页级内容信息。这样后续无论是 Qwen 云端模型,还是本地模型,都可以直接处理结构化后的文档内容,而不是面对原始文件。README 中也明确将 TextIn xParse API 作为文档解析模块。
项目中的 TextIn 接口封装如下:
javascript
interface TextInApi {
@Multipart
@POST("api/v1/xparse/parse/sync")
suspend fun parseSync(
@Header("x-ti-app-id") appId: String,
@Header("x-ti-secret-code") secretCode: String,
@Part file: MultipartBody.Part
): TextInParseResponse
}
使用 TextIn Skill 后,DocPilot Qwen 可以处理更多真实文档场景,例如:
- PDF 论文解析
- PPT 内容提取
- Excel 表格识别
- Word 文档整理
- 图片 / 扫描件内容提取
- 发票、合同、会议纪要等结构化抽取
- Qwen 本地模型 / 云端模型
模型层使用 Qwen 本地模型 + Qwen 云端模型 两种方式。
云端模型通过 Qwen / 阿里云百炼 API 接入,兼容 OpenAI Chat Completions 格式;本地模型则结合 MNN 在端侧运行。README 中也说明,项目使用 Qwen 系列云端 API,并兼容 OpenAI Chat Completions 格式。
云端模型调用接口如下:
javascript
interface QwenApi {
@POST("chat/completions")
suspend fun chat(
@Header("Authorization") authorization: String,
@Body request: QwenChatRequest
): QwenChatResponse
}
请求体采用标准的 model + messages + temperature 结构:
javascript
data class QwenChatRequest(
val model: String,
val messages: List<QwenMessage>,
val temperature: Double = 0.2
)
这种设计让项目可以同时支持两类使用方式:
- 本地模型:适合隐私敏感、离线处理、端侧推理体验。
- 云端模型:适合复杂推理、长文档总结、多轮问答和高质量内容生成。
在实际使用中,用户可以在设置中切换本地模型和云端模型,根据文档类型、隐私要求和推理质量需求选择不同模式。
- KwaiKAT
项目使用 KwaiKAT 辅助完成开发和工程搭建。
在 DocPilot Qwen 中,KwaiKAT 主要参与了 Android 工程结构整理、功能模块实现、代码生成和调试优化。它帮助项目快速完成从想法到可运行 App 的落地,包括文档导入、解析流程、AI 助手、模板抽取、设置页面、本地模型管理等模块。
在这套架构中,KwaiKAT 更像是一个 AI 编程协作层:
MNN 负责端侧推理,TextIn Skill 负责文档解析,Qwen 负责模型理解与生成,KwaiKAT 负责帮助项目快速完成工程化实现。
总结
整体来说,DocPilot Qwen 是我对移动端 AI 文档助手的一次完整探索。
它不是简单地把大模型 API 套进一个 App 里,而是尝试把 MNN 端侧推理引擎、TextIn Skill 文档解析、Qwen 本地模型/云端模型、KwaiKAT 开发协作体系 这几项能力真正组合起来,形成一个可以在 Android 手机上运行、可以学习、可以修改、也可以继续扩展的开源项目。
其中,MNN 让项目具备了端侧推理能力,让手机不只是一个"请求云端接口的终端",而是可以真正参与 AI 推理过程;TextIn Skill 解决了文档 AI 中非常关键的解析问题,让 PDF、Office、图片、发票、合同、会议纪要等复杂文件可以被转化成模型更容易理解的结构化内容;Qwen 则提供了强大的模型理解与生成能力,本地模型适合隐私敏感和端侧体验,云端模型适合长文档分析、复杂问答和高质量总结;而 KwaiKAT / KAT-Coder-Pro V2 则在整个开发过程中提升了工程落地效率,让一个完整的 Android AI 应用可以更快从想法变成可运行的项目。
当然,当前版本也还有一些可以继续打磨的地方。比如本地模型对手机性能和存储空间有一定要求;复杂文档的解析效果仍然依赖 TextIn 的服务能力;如果使用云端 Qwen API,也需要用户自己配置 API Key,并根据隐私需求判断是否适合上传文档内容;另外,UI 交互、批量处理、文档管理和更多模型适配也还有继续优化的空间。
但我认为,这正是开源项目最有价值的地方。
它不是一个封闭的成品,而是一个可以被拆开学习、可以继续改造、可以用于课程作业、毕业设计、AI 应用实践和端侧模型探索的真实项目。对于想学习 Kotlin**、Jetpack Compose、Room、Retrofit、MNN、Qwen、TextIn Skill**,或者想了解移动端 AI 应用如何落地的同学来说,DocPilot Qwen 都可以作为一个比较完整的参考案例。
如果你也对 Android AI、文档智能、端侧模型或者 Qwen 生态感兴趣,欢迎来体验这个项目。
项目地址: github.com/LucianaiB20...
欢迎 Star,欢迎 issue,也欢迎提交 PR。