分享一个自己开发的开源安卓 GPT 助手软件: GPT Assistant - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skythinker
V2EX    Android

分享一个自己开发的开源安卓 GPT 助手软件: GPT Assistant

  •  
  •   skythinker 169 天前 2755 次点击
    这是一个创建于 169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个项目其实已经在我的课余时间一点点开发了很久了,陆续收到过一些关注,不过最近做了一些比较重要的更新,所以想来这里再跟大家分享一下。

    目前安卓端的 GPT 客户端很多是主打桌面端的项目用跨平台框架开发的,然该有的聊天功能都有,但并没有和系统功能深度融合起来,很难达到“智能助手”的程度。

    我这个项目最核心的想法就是希望通过原生开发将 GPT 与安卓的硬软件更紧密地融合起来,实现一个“移动智能助手”的职责,而不仅限于聊天功能。这个项目的主要特性包括:

    • 多场景文件处理:通过拍照 / 相册 / 分享 / 打开 / 拖拽上传,支持图片 / TXT / PDF / DOCX / PPTX / XLSX 文件
    • 支持联网:按需抓取网页内容发送给 GPT
    • 全局快捷入口:音量键唤起 / 状态栏快捷键 / 跨应用划词调起
    • 智能模板:通过模板实现各种用途的专用助手,并为每个模板自由定制界面(自定义下拉选框和输入框)
    • 多接口语音输入输出:华为 / 百度 / Whisper / Google / 系统 TTS
    • 完全开源:通过 OpenAI API (或其兼容接口)提供服务,不收取任何费用

    典型使用场景包括:

    • 临时产生了一些问题想问 GPT ,通过音量键直接唤起本软件直接进行语音输入,再按一下音量键就可以发送,然后获得语音回复。全程不需要点屏幕,甚至不需要看屏幕。
    • 想知道面前的东西是什么,直接通过本软件拍照上传问 GPT 。同理还可以实现 OCR 、拍照翻译、拍照解题等。
    • 微信/QQ 收到文档快捷发送给 GPT 进行总结和提问
    • 通过跨应用拖拽,可以接收来自分屏或小窗的其他应用的文档,还可以从华为超级中转站、多屏协同等类似应用中拖入一堆来自不同地方的不同类型文件
    • 支持全局上下文菜单调起,实现全局划词翻译等功能

    文档解析目前其实还是有一定的限制,包括:

    • 没有实现 RAG ,文档内容会完整发给 GPT ,Token 消耗较多且受上下文窗口限制
    • 只能抓取文档中的文本,图片会被忽略
    • 只能支持有 x 结尾的新版 Office 格式,旧版的二进制格式(如.doc )还无法解析

    以上就是对我的项目的简要介绍,更详细的说明可以在项目主页找到,GitHub 和 Gitee 同步更新。

    这个项目会持续更新,欢迎大家提 Issue ,如果觉得有帮助的话还请给一个 Star 呀~

    12 条回复    2025-04-26 16:57:59 +08:00
    ZiLong
        1
    ZiLong  
       169 天前
    加油
    guanzhangzhang
        2
    guanzhangzhang  
       168 天前
    这种打开窗口动态调整的技术叫啥,compose 里有现场组件吗
    HojiOShi
        3
    HojiOShi  
       168 天前
    看了下代码,这股青春的味道甚是怀念。想当初我也是这样过来的。
    stardust21
        4
    stardust21  
       168 天前
    新的 Android 项目为什么不用 Kotlin 写呢
    evilStart
        5
    evilStart  
       168 天前 via Android
    @HojiOShi 你的意思不就是菜
    skythinker
        6
    skythinker  
    OP
       167 天前
    @HojiOShi 哈哈哈哈哈多谢留个面子,我不是做开发的,就是爱好写着玩一玩的,主打一个实现功能就行
    skythinker
        7
    skythinker  
    OP
       167 天前
    @ZiLong 感谢鼓励!
    skythinker
        8
    skythinker  
    OP
       167 天前
    @guanzhangzhang 就是 java 原生开发,compose 我不是很了解
    skythinker
        9
    skythinker  
    OP
       167 天前
    @stardust21 我是好多年以前学的安卓了,没怎么更新这方面的技术栈,这算是心血来潮写的一个小软件
    HojiOShi
        10
    HojiOShi  
       167 天前
    @skythinker #6 我只是出自真心,并没有贬低你的意思,你写的这些确实跟我还在读大学时写的质量差不多,可能你的还略胜一筹。
    skythinker
        11
    skythinker  
    OP
       167 天前
    @HojiOShi 嘿嘿多谢肯定,我确实还在上学,也不是相关专业,只能靠自己的理解写写。这个项目没有仔细架构过,从开始随意写的代码边加功能边重构,现在确实不是太好看,之后有精力的话可能会修改修改。
    lumyx
        12
    lumyx  
       166 天前
    能有想法并落地实现非常棒!至于技术和代码质量真的是最不重要的,提高起来很容易,看一些规范和最佳实践就知道怎么做了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     862 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 21:09 PVG 05:09 LAX 14:09 JFK 17:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86