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

49次阅读

共计 1806 个字符,预计需要花费 5 分钟才能阅读完成。

一些朋友应该对 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 数也在稳步上升。

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

随着使用人数的增加,大家也开始给出不少需求和反馈。有热心网友一次性给我 提了 9 个想法🤣,这得累死我呀。也有一些朋友在使用过程中遇到了一些体验上的问题,也都在项目 issue 中友好的提问。对于这些朋友的需求和想法,我在新版本里几乎都一一实现。我会尽可能让希望这个项目的朋友能得到正向的反馈。


接下来说一说这周痛苦的开发经历 …

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

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

新版本除了实现大文件上传功能以外,主要是完善了整个对话框架的细节功能,其中包括十几个热心网友提出的需求。主要更新如下:

  • 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)是我项目开发的最大动力!我会尽可能会回应所有合理的需求与反馈

这周熬了几天夜,除了开发几乎没怎么出门😅,好在女朋友还能理解我。

正文完
 0