O Gemini-Openai-Proxy é um proxy projetado para converter o protocolo da API OpenAI no protocolo do Google Gemini. Isso permite que os aplicativos criados para a API do OpenAI se comuniquem perfeitamente com o protocolo Gemini, incluindo suporte para conclusão de bate -papo, incorporação e terminais de modelos.
Para construir o Gemini-Openai-Proxy, siga estas etapas:
go build -o gemini main.goRecomendamos a implantação de Gemini-Openai-Proxy usando o Docker para uma configuração direta. Siga estas etapas para implantar com o Docker:
Você pode fazer isso na linha de comando:
docker run --restart=unless-stopped -it -d -p 8080:8080 --name gemini zhu327/gemini-openai-proxy:latestOu com a seguinte Config 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 o mapeamento da porta (por exemplo, -p 8080:8080 ), conforme necessário, e verifique se a versão da imagem do Docker ( zhu327/gemini-openai-proxy:latest ) se alinha aos seus requisitos.
O Gemini-Openai-Proxy oferece uma maneira direta de integrar funcionalidades do OpenAI em qualquer aplicativo que suporta pontos de extremidade API do OpenAI personalizado. Siga estas etapas para alavancar os recursos deste proxy:
Configurar terminal OpenAI: Verifique se o seu aplicativo está configurado para usar um endpoint API do OpenAI personalizado. Gemini-Openai-Proxy funciona perfeitamente com qualquer ponto de extremidade compatível com o OpenAI.
Obtenha a chave da API do Google AI Studio: Antes de usar o proxy, você precisará obter uma chave da API em AI.GOOGLE.DEV. Trate essa chave da API como sua chave de API do OpenAI ao interagir com o Gemini-Openai-Proxy.
Integre o proxy no seu aplicativo: modifique as solicitações de API do seu aplicativo para direcionar a proximidade Gemini-Openai, fornecendo a chave API adquirida do Google AI Studio como se fosse sua chave de API do OpenAI.
Exemplo de solicitação da API de conclusão de bate -papo (assumindo que o proxy esteja hospedado em 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
} 'Como alternativa, 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
} ' Se você deseja mapear gpt-4-vision-preview para gemini-1.5-pro-latest , pode configurar a variável de ambiente GPT_4_VISION_PREVIEW = gemini-1.5-pro-latest . Isso ocorre porque gemini-1.5-pro-latest agora também suporta dados multimodais. Caso contrário, o padrão usa o modelo gemini-1.5-flash-latest
Se você já tem acesso à API Gemini 1.5 Pro, pode 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
} 'Exemplo de incorporação API Solicy:
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."
} 'Você também pode passar em várias seqüências de entrada como uma 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"]
} 'Mapeamento de modelo:
| Modelo GPT | Modelo Gemini |
|---|---|
| GPT-3.5-Turbo | Gemini-1.0-Pro-Latest |
| GPT-4 | Gemini-1.5-Flash-Latest |
| GPT-4-Turbo-Preview | Gemini-1.5-Pro-Latest |
| GPT-4-Vision-Preview | Gemini-1.0-Pro-Vision-Latest |
| Encadeamento de texto-Ada-002 | Text-Embetingding-004 |
Se você deseja desativar o mapeamento do modelo, configure a variável de ambiente DISABLE_MODEL_MAPPING=1 . Isso permitirá que você se consulte diretamente para os modelos Gemini.
Aqui está um exemplo de solicitação de API com mapeamento de modelo desativado:
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
} 'Lidar com as respostas: processe as respostas do Gemini-Openai-Proxy da mesma maneira que você lidaria com as respostas do OpenAI.
Agora, seu aplicativo está equipado para aproveitar a funcionalidade do OpenAI por meio do GEMINI-Openai-Proxy, em ponte a lacuna entre o OpenAI e os aplicativos usando o Protocolo do Google Gemini Pro.
Gemini-Openai-Proxy é licenciado sob a licença do MIT-consulte o arquivo de licença para obter detalhes.