
最近折腾 gemini pro 的 API,有些应用只支持 chatgpt 的 API,github 上找了下,发现了这个有点意思的代码(https://github.com/zhu327/gemini-openai-proxy),可将 gpt 的 api 请求转换为 gemini 的请求,这样应用侧可以不改,而直接可使用 gemini。
本想直接使用 docker 容器,结果由于是 ARM 架构,不支持已打包好的容器(应该是 X86 架构),只能自己从头编译。仔细看了下,代码是用 go 写的,之前没怎么接触过 go,在云 PC 的 win 环境下试着编译和运行,不知道是不是编译有问题、加上科学上网等原因,总是有些问题。想起手头有配置不错的 ARM 架构的云服务器,之前编译 C ++ 的代码很顺畅,刚好可以试下 go,一番折腾下来,环境配置、代码编译、NG 配置,服务跑起来,测试了几个只支持 chatgpt api 的应用,基本都可顺畅地使用 gemini pro,总体不错。
现将编译的相关配置做个简单记录:
1、服务器操作系统为 debian,更新本地包索引:apt update
2、下载 go 的二进制包:wget https://golang.google.cn/dl/go1.21.3.linux-arm64.tar.gz
3、解压文件并将其移至 /usr/local 目录:tar -C /usr/local -xzf go1.21.3.linux-arm64.tar.gz
确认安装的版本:go version
注意:代码开发时用的 go 是哪个版本,需要下载一样的版本,否则编译会有问题,在这里折腾了一会儿。4、将 Go 二进制文件添加到 $PATH 环境变量中:vim .bashrc
增加一行:export PATH=$PATH:/usr/local/go/bin
5、编译:git clone https://github.com/zhu327/gemini-openai-proxy.git
cd gemini-openai-proxy/
go build -o gemini main.go
nohup ./gemini >>access.log 2>&1 &
6、NG 配置:增加一个 location,proxy_pass http://127.0.0.1:8080/;
注意:加 / 有特定意义。
体会:从几次在 ARM 架构下编译 C ++、go、java 代码的经历来看,目前开源社区对 ARM 的支持应该已经比较完备了,现在 GJ 推进国产化替代应该已经有比较好的基础了。
正文完