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許可證的許可 - 有關詳細信息,請參見許可證文件。