耗时30天,DocPilot Qwen正式开源:一个免费无广的开源文档 AI 助手

我是热爱探索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

效果演示

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

在首页中可以快速进行文件的导入,支持 PPT、Word、Excel、图片等多种格式。

在导入进来以后,点击"分析",系统就会通过 TextIn 进行文件的抽取,然后再调用对应的模型进行相应的分析。

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

在 TextIn 中,我们也可以根据自定义的要求对文件进行提取。例如发票,我们在进行发票提取的时候,有时会对它进行批量提取的操作。

使用 TextIn,我们可以进行快速的自定义提取。每天最高可以薅到 4000 页的额度。

在设置中,我们可以进行 API 的切换,以及本地模型和云端模型的切换。

此外,还支持本地模型的下载以及管理。

技术架构

DocPilot Qwen 的核心技术架构由四部分组成:MNN 端侧推理引擎、TextIn Skill 文档解析、Qwen 本地模型/云端模型,以及 KwaiKAT 开发协作体系

  1. MNN 端侧推理引擎

DocPilot Qwen 接入了 MNN 端侧推理引擎,用于在 Android 手机上运行本地模型。

项目中已经集成 MNN 相关 native library,并通过 MnnQwenEngine 封装本地推理能力。运行时会加载 MNNdocpilot_mnn_llmmnnllmapp 等动态库,并通过 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 的文档助手。

  1. 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
)

这种设计让项目可以同时支持两类使用方式:

  • 本地模型:适合隐私敏感、离线处理、端侧推理体验。
  • 云端模型:适合复杂推理、长文档总结、多轮问答和高质量内容生成。

在实际使用中,用户可以在设置中切换本地模型和云端模型,根据文档类型、隐私要求和推理质量需求选择不同模式。

  1. 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。

相关推荐
xiaoshuaishuai81 小时前
C# AvaloniaUI 资源找不到报错
java·服务器·前端·windows·c#
神奇小汤圆1 小时前
聊聊Java中的of
后端
用户4618249598191 小时前
网关开发从入门到落地(05)Modbus 最简 C 代码实现:组包 + CRC + 解析(直接移植可用)
后端
How_doyou_do1 小时前
26字节工程营-前端-自我总结
前端
十有八七1 小时前
🧩 组件库死亡倒计时?—— AI 编码冲击下的前端基础设施重构
前端·人工智能
foggyprojects1 小时前
SQL 模板写到这里,为什么 Mongo 也可以用同一种方式接进来
后端
卷无止境1 小时前
零信任架构与传统边界安全:一场关于"信任"的根本分歧
后端
风止何安啊1 小时前
我一个前端仔,居然用 Python 搞起了 AI?从零到一,撸了个 AI 聊天框小 demo
前端·人工智能·后端
GISer_Jing1 小时前
Claude Code插件系统全解析
前端·人工智能·ai·架构