查看原文
其他

代理谷歌 Gemini Pro! 玩转 ChatGPT 开源项目

howie6879 老胡的储物柜 2023-12-30

上一篇文章给大家介绍了谷歌的 Gemini Pro,不少朋友觉得不错,具体见文章:媲美GPT4,一键搭建谷歌 Gemini

经过上面文章的介绍,大家都自建或者用老胡搭建的UI体验了谷歌的 Gemini Pro。昨天在使用的时候老胡就在想怎么让去年一整年开源社区在 ChatGPT 上的项目被 Gemini Pro 用起来。

比如一些成熟的 GPT 开源应用,底层都是基于 OpenAI,这么多优秀的项目不用起来就可惜了。

最简单的方案就是做个代理,让 Gemini Pro 请求访问形式向 OpenAI ChatGPT 靠齐即可。

大概介绍下这样做的目的:

  • 开放出代理,其他应用可以在任何地方部署,基于代理服务器可以尝试各种玩法
  • 无缝使用过去一年开源社区上大量基于 ChatGPT 的应用
  • 老胡线上部署好了一套,直接使用吧!https://gp.fre123.com

代理

本来准备自己写,毕竟就一个接口的事情,今天一上开源社区一找,很开心,已经被有分享精神的朋友实现了:

  • gemini-openai-proxy
  • google-cloud-gcp-openai-api

上面两个随便找一个就行,第一个基于 Go 语言,就用它了,找一台美国服务器,跑起来:

docker run --restart=always -it -d -p 8080:8080 --name gemini zhu327/gemini-openai-proxy:latest

测试下:

curl http://localhost:8080/v1/chat/completions \
 -H "Content-Type: application/json" \
 -H "Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY" \
 -d '{
     "model": "gpt-3.5-turbo",
     "messages": [{"role": "user", "content": "Say this is a test!"}],
     "temperature": 0.7
 }'

YOUR_GOOGLE_AI_STUDIO_API_KEY 是谷歌 Gemini Pro 的秘钥,不清楚见我上篇文章的介绍:文章地址

好,到这里我们的代理工作就结束了,简单理解就是:

我们有了一个免费的 GPT 秘钥,它基于谷歌 Gemini Pro,请求访问形式看起来和 OpenAI 家的 gpt-3.5-turbo 一模一样。

接下来,让我们搭建几个好玩的应用测试看看。

AI 应用

体现生产力的部分来了兄弟们,我接下来介绍几个常用的,大家酌情部署尝试下即可,在使用前,请确认已经安装好 Docker

lobe-chat

LobeChat 是开源的高性能聊天机器人框架,支持语音合成、多模态、可扩展的(Function Call)插件系统。支持一键免费部署私人 ChatGPT/LLM 网页应用程序。

安装使用都很简单,命令如下:

docker run -d -p 3210:3210 \
  --name lobe-chat \
  --restart always \
  -e OPENAI_API_KEY=sk-xxxx \
  -e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
  -e ACCESS_CODE=lobe66 \
  lobehub/lobe-chat

参数介绍:

  • OPENAI_API_KEY:前面申请的谷歌的密钥
  • OPENAI_PROXY_URL:刚才搭建的代理URL
  • ACCESS_CODE:访问密码

打开页面,访问体验下:

Chatbot UI

这是一个经典的 ChatGPT UI,非常精简,功能基本都有,也可以联网搜索,部署命令如下:

docker run -e --name chat-ui --restart always OPENAI_API_KEY=xxxxxxxx -e OPENAI_API_HOST=ip:port -p 3000:3000 ghcr.io/mckaywrigley/chatbot-ui:main
chatbot-ui

说明

基于自己构建的 API 代理,就可以把谷歌 Gemini Pro 应用于任何支持 OpenAI GPT 的开源项目,可玩性很高,大家慢慢尝试吧。

觉得不错?点赞收藏分享来一波吧🥰

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存