Gemini-openai-Proxy est un proxy conçu pour convertir le protocole API OpenAI en protocole Google Gemini. Cela permet aux applications conçues pour que l'API OpenAI puisse communiquer de manière transparente avec le protocole Gemini, y compris la prise en charge de l'achèvement de chat, des intégres et des points de terminaison du modèle.
Pour construire le gemini-openai-proxy, suivez ces étapes:
go build -o gemini main.goNous vous recommandons de déployer des gemini-openai-proxy à l'aide de Docker pour une configuration simple. Suivez ces étapes à déployer avec Docker:
Vous pouvez soit le faire sur la ligne de commande:
docker run --restart=unless-stopped -it -d -p 8080:8080 --name gemini zhu327/gemini-openai-proxy:latestOu avec la configuration docker-compose suivante:
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 Ajustez le mappage du port (par exemple, -p 8080:8080 ) au besoin, et assurez-vous que la version Docker Image ( zhu327/gemini-openai-proxy:latest ) s'aligne sur vos exigences.
Gemini-openai-Proxy offre un moyen simple d'intégrer les fonctionnalités OpenAI dans toute application qui prend en charge les points de terminaison API OpenAI personnalisés. Suivez ces étapes pour tirer parti des capacités de ce proxy:
Configurez OpenAI Endpoint: assurez-vous que votre application est configurée pour utiliser un point de terminaison API OpenAI personnalisé. Gemini-Openai-Proxy fonctionne de manière transparente avec n'importe quel point de terminaison compatible OpenAI.
Obtenez la touche API Google AI Studio: Avant d'utiliser le proxy, vous devrez obtenir une clé API sur ai.google.dev. Traitez cette clé API comme votre clé API OpenAI lors de l'interaction avec Gemini-Openai-Proxy.
Intégrez le proxy dans votre application: Modifiez les demandes d'API de votre application pour cibler le gemini-openai-proxy, en fournissant la clé API Google Studio acquise comme s'il s'agissait de votre clé API OpenAI.
Exemple de demande de l'API d'achèvement du chat (en supposant que le proxy est hébergé sur 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
} 'Alternativement, utilisez des Gemini 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
} ' Si vous souhaitez cartographier gpt-4-vision-preview à gemini-1.5-pro-latest , vous pouvez configurer la variable d'environnement GPT_4_VISION_PREVIEW = gemini-1.5-pro-latest . En effet, gemini-1.5-pro-latest prend désormais également en charge les données multimodales. Sinon, la valeur par défaut utilise le modèle gemini-1.5-flash-latest
Si vous avez déjà accès à l'API Gemini 1.5 Pro, vous pouvez utiliser:
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
} 'Exemple de demande d'API Embeddings:
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."
} 'Vous pouvez également transmettre plusieurs chaînes d'entrée en tant que liste:
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"]
} 'Mappage du modèle:
| Modèle GPT | Modèle gemini |
|---|---|
| GPT-3,5-turbo | gemini-1.0-pro-latest |
| gpt-4 | Gémeaux |
| GPT-4-Turbo-Preview | gemini-1.5-pro-latest |
| gpt-4-vision-preview | Gemini-1.0-Pro-Vision-Latest |
| Texte-embelli-ADA-002 | Texte-Embedding-004 |
Si vous souhaitez désactiver le mappage du modèle, configurez la variable d'environnement DISABLE_MODEL_MAPPING=1 . Cela vous permettra de vous référer directement aux modèles Gemini.
Voici un exemple de demande d'API avec mappage de modèle désactivé:
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
} 'Gérer les réponses: traitez les réponses du gemini-openai-proxy de la même manière que vous géreriez les réponses d'OpenAI.
Désormais, votre application est équipée pour tirer parti des fonctionnalités OpenAI via le gemini-openai-proxy, combler l'écart entre OpenAI et les applications à l'aide du protocole Google Gemini Pro.
Gemini-openai-Proxy est autorisé sous la licence MIT - voir le fichier de licence pour plus de détails.