Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
3 of 4 tasks
androidcn opened this issue Dec 20, 2023 · 14 comments · Fixed by #297
Closed
3 of 4 tasks

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

androidcn opened this issue Dec 20, 2023 · 14 comments · Fixed by #297
Assignees
Labels
enhancement New feature or request fixed in next release The issue will be closed once next release is available

Comments

@androidcn
Copy link

请先确认以下事项

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

功能描述

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

使用场景(可选)

No response

实现方案(可选)

No response

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

  • 我愿意提交 PR
@androidcn androidcn added the enhancement New feature or request label Dec 20, 2023
Copy link

Hello androidcn, Thank you for your first issue contribution 🎉

@tisfeng
Copy link
Owner

tisfeng commented Dec 20, 2023

可以加,但是考虑到各种大模型实在太多,一个个去添加支持会很耗费精力,所以,当前我的建议是通过 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

@tisfeng
Copy link
Owner

tisfeng commented Dec 20, 2023

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

@Jerry23011
Copy link
Collaborator

Jerry23011 commented Dec 21, 2023

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

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

文档
价格
代码示例
API 获取

@tisfeng
Copy link
Owner

tisfeng commented Dec 22, 2023

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

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

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

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

@tisfeng
Copy link
Owner

tisfeng commented Dec 22, 2023

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

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

@Jerry23011
Copy link
Collaborator

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

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

@tisfeng
Copy link
Owner

tisfeng commented Dec 23, 2023

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

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

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

@Jerry23011
Copy link
Collaborator

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

@tisfeng
Copy link
Owner

tisfeng commented Dec 23, 2023

👌

@ysmintor
Copy link

ysmintor commented Jan 5, 2024

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

@tisfeng
Copy link
Owner

tisfeng commented Jan 5, 2024

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

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

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

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

@tisfeng tisfeng added the fixed in next release The issue will be closed once next release is available label Jan 29, 2024
@tisfeng
Copy link
Owner

tisfeng commented Feb 9, 2024

2.6.0 新版本已支持 Gemini 服务。

@tisfeng tisfeng closed this as completed Feb 9, 2024
@tisfeng
Copy link
Owner

tisfeng commented Feb 9, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fixed in next release The issue will be closed once next release is available
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants