Gemini-Openai-Proxy是一个代理,旨在将OpenAI API协议转换为Google Gemini协议。这使得为OpenAI API构建的应用程序可以与Gemini协议无缝通信,包括支持聊天完成,嵌入和模型端点。
要构建Gemini-Openai-Proxy,请按照以下步骤:
go build -o gemini main.go我们建议使用Docker进行直接设置来部署双子座Openai-Proxy。请按照以下步骤与Docker部署:
您可以在命令行上执行此操作:
docker run --restart=unless-stopped -it -d -p 8080:8080 --name gemini zhu327/gemini-openai-proxy:latest或使用以下Docker-Compose配置:
version : ' 3 '
services :
gemini :
container_name : gemini
environment : # Set Environment Variables here. Defaults listed below
- GPT_4_VISION_PREVIEW=gemini-1.5-flash-latest
- DISABLE_MODEL_MAPPING=0
ports :
- " 8080:8080 "
image : zhu327/gemini-openai-proxy:latest
restart : unless-stopped根据需要调整端口映射(例如-p 8080:8080 ),并确保Docker Image版本( zhu327/gemini-openai-proxy:latest )与您的要求保持一致。
Gemini-Openai-Proxy提供了一种直接的方法,可以将OpenAI功能集成到支持自定义OpenAI API端点的任何应用程序中。按照以下步骤利用此代理的能力:
设置OpenAI端点:确保您的应用程序配置为使用自定义OpenAI API端点。 Gemini-Openai-Proxy无缝地与任何与OpenAi兼容的端点一起使用。
获取Google AI Studio API密钥:在使用代理之前,您需要从ai.google.dev获取API密钥。与Gemini-Openai-Proxy互动时,将此API键视为OpenAI API键。
将代理集成到您的应用程序中:修改应用程序的API请求以针对Gemini-Openai-Proxy,从而提供了已获得的Google AI Studio API密钥,就好像是您的OpenAI API密钥一样。
示例聊天完成API请求(假设代理在http://localhost:8080托管):
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
} '或者,使用双子座Pro Vision:
curl http://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "gpt-4-vision-preview",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "What’s in this image?"},
{
"type": "image_url",
"image_url": {
"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
}
}
]}],
"temperature": 0.7
} '如果您希望将gpt-4-vision-preview映射到gemini-1.5-pro-latest ,则可以配置环境变量GPT_4_VISION_PREVIEW = gemini-1.5-pro-latest 。这是因为gemini-1.5-pro-latest现在也支持多模式数据。否则,默认值使用gemini-1.5-flash-latest模型
如果您已经可以访问Gemini 1.5 Pro API,则可以使用:
curl http://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "gpt-4-turbo-preview",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
} '示例嵌入式API请求:
curl http://localhost:8080/v1/embeddings
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "text-embedding-ada-002",
"input": "This is a test sentence."
} '您也可以将多个输入字符串作为列表:
curl http://localhost:8080/v1/embeddings
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "text-embedding-ada-002",
"input": ["This is a test sentence.", "This is another test sentence"]
} '模型映射:
| GPT模型 | 双子座模型 |
|---|---|
| GPT-3.5-Turbo | Gemini-1.0-Pro-Latest |
| GPT-4 | Gemini-1.5-flash-Latest |
| GPT-4-turbo-preiview | Gemini-1.5-Pro-latest |
| GPT-4-Vision-Preview | Gemini-1.0-Pro-Vision-Latest |
| 文本插入-ADA-002 | 文字插入-004 |
如果要禁用模型映射,请配置环境变量DISABLE_MODEL_MAPPING=1 。这将使您可以直接参考双子座模型。
这是禁用模型映射的示例API请求:
curl http://localhost:8080/v1/chat/completions
-H " Content-Type: application/json "
-H " Authorization: Bearer $YOUR_GOOGLE_AI_STUDIO_API_KEY "
-d ' {
"model": "gemini-1.0-pro-latest",
"messages": [{"role": "user", "content": "Say this is a test!"}],
"temperature": 0.7
} '处理响应:以相同的方式处理Openai的响应,从而处理双子座奥佩纳 - 普罗克斯的响应。
现在,您的应用程序配备了通过Gemini-Openai-Proxy来利用OpenAI功能,使用Google Gemini Pro协议弥合OpenAI和应用程序之间的差距。
Gemini-Openai-Proxy已获得MIT许可证的许可 - 有关详细信息,请参见许可证文件。