V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
flyun
V2EX  ›  分享创造

[开源] ChatAir:使用 Telegram 修改的 OpenAI 和 Gemini 的 Android 原生客户端

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

    ChatAir 是 OpenAI 和 Gemini 的原生客户端,提供比 ChatGPT 更流畅、更快速的聊天体验。

    在学习 Android Telegram 源码的时间里,正好赶上了 ChatGPT 的出现。由此想到,可以把 Telegram 修改为一款支持 OpenAI 的应用.

    借由 Telegram 的简单、直观、稳定的特点,实现一款流畅好用的 Android 原生客户端,支持 OpenAI 和 Gemini 的 API 。

    在 Telegram 的基础上,添加 MarkDown 支持、流式输出、OpenAI 和 Gemini 的 API 服务器地址配置等功能。

    01

    02

    03

    04

    05

    06

    • 🚀 流畅: 使用 Android 原生开发,高效的性能表现,打造无缝切换的使用体验
    • 🔬 高级: 支持 OpenAI/Gemini 的 API 调用,以及 OpenRouter 等自定义服务器地址替换,灵活定制你的服务器地址
    • 📝 专业: 支持 Markdown ,代码高亮功能让你的代码清晰易读
    • 🛠️ 定制: 自定义 Prompt ,模型、温度、历史记录以及回复长度限制参数设置,提供个性化的使用体验
    • 🌙 酷炫: 提供暗黑模式和自定义主题,护眼同时增加使用的体验性
    • 🖼️ 识图: 支持图片识别功能,快速准确获取图像信息

    上个月,OpenAi 以及 Google 发布了图片识别模型,ChatAir 进行了集成。在直译与意译 prompt 基础上,修改了 prompt ,实现更为好用的识图翻译,提供了原文、直译、意译作为对照,而且使用 Google Gemini 完全免费。

    使用 Gemini Pro Vision 模型:

    07

    08

    使用使用 GPT-4-vision-preview 模型:

    09

    App 下载地址: https://github.com/flyun/chatAir/releases

    Github 地址: https://github.com/flyun/chatAir 欢迎 Star

    ChatAir 还在持续开发,比如识图翻译,可以设置为一个特殊模式,不显示 prompt 。集成生成图片,对接更多模型,欢迎下载使用提供反馈建议。

    最后本人最近在找工作,职位 Android 开发,base 北京,全职、远程、兼职皆可。

    联系方式:ZnlseXN1bkBnbWFpbC5jb20=

    简历地址: https://github.com/flyun/resume/blob/main/Android%E5%BC%80%E5%8F%91%E5%B7%A5%E7%A8%8B%E5%B8%88%E2%80%94%E2%80%94%E6%A0%BE%E7%A6%8F%E8%BF%90.pdf

    15 条回复    2024-02-03 12:48:06 +08:00
    Ccf
        1
    Ccf  
       306 天前
    会有 ios 版么
    flyun
        2
    flyun  
    OP
       306 天前
    @Ccf 暂时还没开发计划,iOS 上优秀的套壳 openAi 软件很多,比如 OpenCat 、BotGem 、ChatX 等等。因为 Android 上截止现在为止,我也没发现有使用原生编写支持 openAi 的知名应用,所以才诞生了 ChatAIr 。
    kuituosi
        3
    kuituosi  
       306 天前
    请问下你是把 mtproto 去掉了吗?
    0o0O0o0O0o
        4
    0o0O0o0O0o  
       306 天前 via iPhone
    和 OP 相似的 idea ,但 OP 做得太好了!
    flyun
        5
    flyun  
    OP
       306 天前
    @kuituosi 没有去掉,只是隐藏了。但是我写一套新的网络请求框架,替代了 Telegram 使用 C++封装的网络框架,所以之前 Telegram 的代理方式实际上也无法使用
    flyun
        6
    flyun  
    OP
       306 天前   ❤️ 2
    @0o0O0o0O0o 如果对于 Android 版本的 Telegram 源码感兴趣,可以拉取代码,看下我对 Telegram 源码写的注释,可以加快对于项目的理解。当然这里还是要称赞 DrKLO ,真的非常厉害,写出这么优秀的项目。
    kuituosi
        7
    kuituosi  
       306 天前
    @flyun 正在学习 telegram 客户端中,前几天 ios 版本的 swift rx 把我看哭了
    安卓的打算好好学习下
    dm87497
        8
    dm87497  
       306 天前 via Android   ❤️ 1
    所以有可以填自己 api 的 tg 机器人吗
    gxylsea
        9
    gxylsea  
       306 天前
    for macos?????
    hellojay
        10
    hellojay  
       306 天前 via iPhone   ❤️ 1
    @dm87497 有一键部署 vercel 的 telegram bot https://github.com/winniesi/tg-gemini-bot
    flyun
        11
    flyun  
    OP
       306 天前   ❤️ 1
    @kuituosi Telegram 本身就很复杂,只能硬着头皮慢慢看。多打断点,让项目运行起来,根据断点堆栈,看看流程是怎样运行的。还有需要自己设定一个需要解决的问题,要不然盲目的看,只会觉得越来越乱。通个一个需要解决的点,然后慢慢延伸,就可以对一个模块有所了解,依次熟悉其他模块。
    chenoa
        12
    chenoa  
       306 天前 via iPhone
    希望可以考虑一下 ios 版本
    flyun
        13
    flyun  
    OP
       306 天前   ❤️ 2
    @chenoa iOS 开发最近也在学习,如果接下来时间允许,也可能考虑基于 iOS 版本 Telegram 进行修改,正好深入了解 iOS 开发。
    flyun
        14
    flyun  
    OP
       305 天前
    更新了 1.0.3 版本,适配 one-api 。


    可以自己在服务器部署 one-api ,使用国内大模型。在 chatAir 配置好对应的服务器地址和 APIKEY 以及自定义模型,就可以对话国内大模型。

    配置自定义模型方法:点击聊天页面头像-选择模型-自定义模型。
    每个聊天窗口都可以配置自己的自定义模型,配合 one-api 使用更加方便。

    Gemini 可以免费使用,点击 Gemini API 密钥申请链接 https://makersuite.google.com/app/apikey

    获取 API 密钥后,在 API 服务器设置中,点击 Gemini API Key 后,填入申请的 API 密钥后保存即可。确保模型选择 Gemini Pro 或者 Gemini Pro Vision (图片模型)即可使用。
    0o0O0o0O0o
        15
    0o0O0o0O0o  
       295 天前
    @flyun #13 很期待对 iOS 版本的修改和注释
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2796 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:16 · PVG 15:16 · LAX 23:16 · JFK 02:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.