Gemini-Openai-Proxy es un proxy diseñado para convertir el protocolo API de OpenAI al Protocolo de Google Gemini. Esto permite que las aplicaciones creadas para la API de OpenAI se comuniquen sin problemas con el Protocolo de Géminis, incluido el soporte para la finalización del chat, los puntos finales y los puntos finales de modelos.
Para construir el Gemini-Openai-Proxy, siga estos pasos:
go build -o gemini main.goRecomendamos implementar Gemini-Openai-Proxy usando Docker para una configuración directa. Siga estos pasos para implementar con Docker:
Puedes hacer esto en la línea de comando:
docker run --restart=unless-stopped -it -d -p 8080:8080 --name gemini zhu327/gemini-openai-proxy:latestO con la siguiente configuración de 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 Ajuste el mapeo de puertos (por ejemplo, -p 8080:8080 ) según sea necesario, y asegúrese de que la versión de imagen de Docker ( zhu327/gemini-openai-proxy:latest ) se alinee con sus requisitos.
Gemini-Openai-Proxy ofrece una forma directa de integrar las funcionalidades de OpenAI en cualquier aplicación que admita los puntos finales de API Operai personalizados. Siga estos pasos para aprovechar las capacidades de este proxy:
Configurar el punto final de OpenAI: asegúrese de que su aplicación esté configurada para usar un punto final de API Operai personalizado. Gemini-Openai-Proxy funciona sin problemas con cualquier punto final compatible con OpenAI.
Obtenga la clave de la API de Google AI Studio: antes de usar el proxy, deberá obtener una clave API de ai.google.dev. Trate esta clave API como su clave API OpenAI al interactuar con Gemini-Openai-Proxy.
Integre el proxy en su aplicación: modifique las solicitudes de API de su aplicación para apuntar a Gemini-Openai-Proxy, proporcionando la clave API de Google AI Studio adquirida como si fuera su clave API OpenAI.
Ejemplo de solicitud de API de finalización de chat (suponiendo que el proxy esté alojado en 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
} 'Alternativamente, use 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 desea asignar gpt-4-vision-preview a gemini-1.5-pro-latest , puede configurar la variable de entorno GPT_4_VISION_PREVIEW = gemini-1.5-pro-latest . Esto se debe a que gemini-1.5-pro-latest ahora también admite datos multimodales. De lo contrario, el valor predeterminado usa el modelo gemini-1.5-flash-latest
Si ya tiene acceso a la API Gemini 1.5 Pro, puede usar:
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
} 'Ejemplo de solicitud de API de incrustaciones:
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."
} 'También puede pasar en múltiples cadenas de entrada como una lista:
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"]
} 'Mapeo de modelos:
| Modelo GPT | Modelo Géminis |
|---|---|
| GPT-3.5-TURBO | Géminis-1.0-Pro-Latest |
| GPT-4 | gemini-1.5-flash-lateral |
| GPT-4-TURBO-Preview | Géminis-1.5-Pro-Latest |
| GPT-4-visión previa | gemini-1.0-pro-visión |
| Texto incrustado-ADA-002 | texto incrustado-004 |
Si desea deshabilitar la asignación de modelos, configure la variable de entorno DISABLE_MODEL_MAPPING=1 . Esto le permitirá referirse directamente a los modelos Gemini.
Aquí hay una solicitud de API de ejemplo con mapeo de modelo deshabilitado:
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
} 'Manejo de respuestas: procese las respuestas del Gemini-Openai-Proxy de la misma manera que manejaría las respuestas de OpenAI.
Ahora, su aplicación está equipada para aprovechar la funcionalidad de OpenAI a través del Gemini-Openai-Proxy, cerrando la brecha entre OpenAI y las aplicaciones utilizando el Protocolo Google Gemini Pro.
Gemini-Openai-Proxy tiene licencia bajo la licencia MIT; consulte el archivo de licencia para obtener más detalles.