[开源] TalkWithGemini 支持 vercel 一键部署,新版本无需代理即可免费使用 Gemini 多模态功能,支持最高 100 万 Token 的图片、音频、视频和文本文档解读。

查看 13|回复 0
作者:amery2010   
一些朋友应该对 TalkWithGemini 已经不在陌生,这是我作为独立开发者第三次在 V2EX 上发布新版本。
回顾之前的两篇文章:
可能是目前唯一完整支持 Gemini 1.5 Pro 和 Gemini 1.5 Flash 多模态模型的开源聊天框架
[开源] Gemini Pro 极简聊天框架,支持图文聊天和语音对话模式 https://gemini.u14.app/
起初,我只是作为爱好而开发了 TalkWithGemini,作为 Gemini 的基础聊天框架,除了极简之外其实没有太多的亮点。但 V2EX 上的朋友还是给了我不错的反馈,不到一天时间 star 数破百。作为独立开发者而言这是一次不小的激励。
在 Google I/O 2024 发布会之后,Google 开放了更强大的 Gemini 1.5 Pro 和 Gemini 1.5 Flash 。这两个强大的多模态模型,和之前的 Gemini Pro 相比,完全是质的飞跃。为了兼容 Gemini 1.5 系列的接口,我不得不重写底层的对话结构。如果要让模型理解除文字以外的内容,我需要先上传文件,但官方的 npm 包只支持 node 环境,我不得不用几天的时间研究开发了一套通用环境的文件上传功能。这个过程虽然辛苦,但当我看到最后的成果时忽然觉得一切都是值得的。上周发布的版本,一开始反响平平,但想不到经过一些热心的 v 友主动转发,项目开始不断扩散,star 数也在稳步上升。

随着使用人数的增加,大家也开始给出不少需求和反馈。有热心网友一次性给我提了 9 个想法🤣,这得累死我呀。也有一些朋友在使用过程中遇到了一些体验上的问题,也都在项目 issue 中友好的提问。对于这些朋友的需求和想法,我在新版本里几乎都一一实现。我会尽可能让希望这个项目的朋友能得到正向的反馈。
接下来说一说这周痛苦的开发经历...
之前的版本虽然可以上传文件,但由于 vercel 平台的限制,无法上传大于 4MB 的文件,这是一件非常尴尬的事情。为了解决这个问题,我先想到了用 Cloudflare Worker 代理转发的方式,但这种方式的局限性在于,虽然可以上传 500MB 的文件,但在国内无法与 Gemini 正常对话。为了解决这个问题,我想了好几天方案,也翻烂了 Google AI 的官方文档。偶然间发现 Gemini 的文件上传底层使用的是 Google Drive 。在反复研究和尝试之下,发现 Gemini 文件上传其实也支持分片上传,只不过尴尬是分片大小被限制在了 8MB 😅,这让我有**一种“柳暗花明,走错村”的感觉...**即然都到了这一步了,也没理由从头再来,即然 Gemini 接口无法解决问题,那就回过头去想想怎么让 vercel 平台支持大文件上传。功夫不负有心人,在多次尝试下,发现 vercel 的路由重写功能,可以支持 8MB 以上的文件上传。这样一样,整条路就忽然通畅了!在反复测试和完善之后,新版本的文件分片上传功能终于完整实现~虽然后来又遇到了在编译 docker 镜像过程中,动态变量丢失的问题,搞得我一夜没睡,这又是另一个 long long story 了。

新版本除了实现大文件上传功能以外,主要是完善了整个对话框架的细节功能,其中包括十几个热心网友提出的需求。主要更新如下:
  • feat: 添加文本操作工具,包括重新生成、编辑、删除、复制和朗读
  • feat: 支持从剪贴板粘贴和上传图像/文件
  • feat: 支持拖放上传图像/文件
  • feat: 新增大文件分段上传功能
  • feat: 支持 PWA (实验性)
  • feat: 添加自定义模型列表和自定义默认模型
  • feat: 新增模型参数设置页面
  • feat: 助手市场增加分类筛选功能
  • feat: 使用通用代理接口转发数据
  • feat: 添加了文件上传的错误消息显示和文件清理
  • feat: 添加文件上传代理 url 配置参数
  • refactor: 重构文件上传逻辑,兼容 docker 部署方案
  • fix: 修复代码字段过长时页面布局混乱的问题
  • chore: 添加文件上传代理配置
  • build: 使用多个重写规则 hack 解决独立模式下重写规则变量无效的问题

    您可以通过 https://gemini.u14.app 进行体验,也可以通过使用 vercel 的一键部署功能,拥有专属于你的 Gemini 私人助理。
    项目地址:https://github.com/Amery2010/TalkWithGemini
    你们的支持( star )是我项目开发的最大动力!我会尽可能会回应所有合理的需求与反馈
    这周熬了几天夜,除了开发几乎没怎么出门😅,好在女朋友还能理解我。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部