tisfeng/Easydict

🚀 功能建议:建议加入GeminiPro API

androidcn opened this issue · 14 comments

请先确认以下事项

  • 已仔细阅读了 README
  • issues 页面搜索过(包括已关闭的 issue),未发现类似功能建议
  • Easydict 已升级到 最新版本

功能描述

🚀 功能建议:建议加入GeminiPro API

使用场景(可选)

No response

实现方案(可选)

No response

是否愿意提交 PR 实现该功能

  • 我愿意提交 PR

Hello androidcn, Thank you for your first issue contribution 🎉

可以加,但是考虑到各种大模型实在太多,一个个去添加支持会很耗费精力,所以,当前我的建议是通过 one-api 将第三方的 LLM 接口转为标准的 OpenAI 接口,这样就能直接在 Easydict 中使用了。

比如 Google 的 Gemini,我现在已经在 Easydict 用上了。

one-api 是一个很好用的开源项目,如果没有服务器,在本地运行也是可以的,欢迎尝试。

OpenAI 接口管理 & 分发系统,支持 Azure、Anthropic Claude、Google PaLM 2 & Gemini、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问、360 智脑以及腾讯混元,可用于二次分发管理 key,仅单可执行文件,已打包好 Docker 镜像,一键部署,开箱即用. OpenAI key management & redistribution system, using a single API for all LLMs, and features an English UI.

image

如果有小伙伴来 PR 支持第三方大模型,我们很乐意接受。

简单看了一眼,貌似如果要使用 Google 提供的 swift package 的话需要 macOS 12+

您的 Swift 应用必须以 iOS 15 或更高版本或者 macOS 12 或更高版本为目标平台。

文档
价格
代码示例
API 获取

版本问题不大,最极端情况,我们甚至可以不用官方的 Swift SDK,像目前项目中 objc 写的 OpenAI 一样,手动封装网络请求。

但应该没必要,升到 macOS 12 其实也可以。 我简单弄了个分支 https://github.com/tisfeng/Easydict/tree/gemini ,测了一下,虽然它使用了 async 特性,但和 objc 配合也没问题。

我主要是担心模型太多,耗费精力

考虑到各种大模型实在太多,一个个去添加支持会很耗费精力

我这几天使用了 Gemini,效果确实还可以,最主要 API 还免费,因此感觉可以加,这样能让更多人更方便地使用。

@Jerry23011 你方便做一下这个功能吗?

@Jerry23011 你方便做一下这个功能吗?

这个没有像上次腾讯那样可以CV彩云,不确定能否成功,不过我可以试试,不懂的再请教你😄

可以,你就在我弄的 gemini 分支上开发,基本步骤和其他服务差不多:

  1. 参照已有的 Swift 服务,例如彩云,搭建服务架子;
  2. 参考目前的 OpenAI 服务,类似实现单词,英语句子和翻译类型分流处理;
  3. 参考 Google 官方的 demo 实现接口请求部分处理。

第三点可能麻烦一点,你先试试看,如果遇到解决不了的问题,可以找我。

我过两天试试,这两天刚放假🥹

👌

@tisfeng
要是想同时使用chatGPT和Gemini有可能吗?
感觉用户在增加各种查询服务。有没有可能后期 swift 重写时重构为模块,可以依据一些规范来自定义查询词典?

可以,这个 issue 就是新添加一个 gemini 翻译,并不影响之前的 chatGPT 翻译。

要是想同时使用chatGPT和Gemini有可能吗?

等重完好设置页后 #285 ,会添加 GUI 方式配置各个服务所需的参数,包括自定义 OpenAI prompt。

依据一些规范来自定义查询词典

2.6.0 新版本已支持 Gemini 服务。

注意,由于 Gemini 官方 API 限制 google-gemini/generative-ai-swift#83 ,仅 macOS 12.0+ 支持流式响应,macOS 11 会一次性返回。