O geminicli2api é um servidor proxy de código aberto baseado em FastAPI hospedado no GitHub. Ele converte a funcionalidade da CLI do Google Gemini em uma interface de API compatível com o OpenAI e oferece suporte a pontos de extremidade nativos da API do Gemini. Os desenvolvedores podem chamar os modelos do Google Gemini por meio do formato familiar da API OpenAI ou da API direta do Gemini, gratuitamente, usando a cota de API fornecida pelo Google. O projeto oferece suporte à geração de texto, entradas multimodais (por exemplo, texto e imagens), respostas de streaming em tempo real e muito mais. Ele oferece uma variedade de métodos de autenticação, adequados para a rápida implantação no local ou na nuvem, amplamente utilizados em ambientes de desenvolvimento, teste e produção. O geminicli2api foi projetado para ser leve, fácil de configurar e é particularmente adequado para desenvolvedores que precisam integrar os recursos do Gemini em seus fluxos de trabalho existentes.
Lista de funções
- Oferece compatibilidade com OpenAI
/v1/chat/completions
responder cantando/v1/models
adaptando as ferramentas OpenAI existentes. - Suporte para pontos de extremidade nativos da API Gemini, como
/v1beta/models/{model}:generateContent
O modelo Gemini pode ser chamado diretamente do modelo Gemini. - Suporta respostas de streaming em tempo real, adequadas para diálogo interativo ou geração de texto longo.
- Oferece suporte à entrada multimodal e lida com conteúdo misto, como texto e imagens.
- Fornece aprimoramentos de pesquisa do Google por meio de
-search
As variantes do modelo fornecem respostas mais precisas. - Suporte para controlar o processo de raciocínio do Gemini usando o
-nothinking
responder cantando-maxthinking
As variantes do modelo ajustam a profundidade do raciocínio. - Oferece suporte a vários métodos de autenticação, incluindo tokens de portador, autenticação básica, chaves de API e assim por diante.
- Oferece suporte a implementações em contêineres do Docker e é compatível com o Hugging Face Spaces.
Usando a Ajuda
Processo de instalação
O geminicli2api é simples de instalar e configurar e oferece suporte a implantações em execução local e em contêineres. Veja a seguir as etapas detalhadas:
- armazém de clones
Clone o repositório geminicli2api localmente usando o seguinte comando:git clone https://github.com/gzzhongqi/geminicli2api cd geminicli2api
- Instalação de dependências
O projeto é baseado em Python e FastAPI, com dependências listadas na seçãorequirements.txt
em. Execute o seguinte comando para instalar:pip install -r requirements.txt
- Configuração de variáveis de ambiente
O geminicli2api precisa ser configurado com variáveis de ambiente relacionadas à autenticação. Crie um arquivo.env
adicione o seguinte:GEMINI_AUTH_PASSWORD=你的认证密码 GEMINI_CREDENTIALS={"client_id":"你的客户端ID","client_secret":"你的客户端密钥","token":"你的访问令牌","refresh_token":"你的刷新令牌","scopes":["https://www.googleapis.com/auth/cloud-platform"],"token_uri":"https://oauth2.googleapis.com/token"} PORT=8888
GEMINI_AUTH_PASSWORD
Senha de autenticação para acesso à API, obrigatória.GEMINI_CREDENTIALS
Credenciais do Google OAuth: uma cadeia de caracteres JSON de credenciais do Google OAuth, contendo oclient_id
eclient_secret
etc.- Variáveis opcionais:
GOOGLE_APPLICATION_CREDENTIALS
Caminho para o arquivo de credenciais do Google OAuth: Caminho para o arquivo de credenciais do Google OAuth.GOOGLE_CLOUD_PROJECT
talvezGEMINI_PROJECT_ID
ID do projeto Google Cloud.
- Se estiver usando um arquivo de credenciais, crie
credentials
em sua conta do Google Cloud Services no diretório.json
e definir o arquivoGOOGLE_APPLICATION_CREDENTIALS
Aponta para o caminho do arquivo.
- operação local
Após a conclusão da configuração, execute o seguinte comando para iniciar o serviço:python -m uvicorn app.main:app --host 0.0.0.0 --port 8888
Serviço de escuta padrão
http://localhost:8888
. - Implementação do Docker
O geminicli2api oferece suporte à implantação em contêineres do Docker e simplifica a configuração do ambiente.- Construa a imagem espelhada:
docker build -t geminicli2api .
- Execute o contêiner (porta padrão 8888):
docker run -p 8888:8888 \ -e GEMINI_AUTH_PASSWORD=your_password \ -e GEMINI_CREDENTIALS='{"client_id":"...","token":"..."}' \ -e PORT=8888 \ geminicli2api
- Use o Docker Compose:
docker-compose up -d
Para implantações do Hugging Face Spaces, use a porta 7860:
docker-compose --profile hf up -d geminicli2api-hf
- Construa a imagem espelhada:
- Implantação de espaços para abraçar o rosto
- Faça login no Hugging Face e crie um novo Docker Space.
- Faça upload do conteúdo do repositório para o Space.
- Adicione uma variável de ambiente às configurações do Space:
GEMINI_AUTH_PASSWORD
responder cantandoGEMINI_CREDENTIALS
(ou outra fonte de credenciais). - O Space cria e implanta automaticamente o serviço, fica atento a
http://<space-url>:7860
.
Usando a API
O geminicli2api fornece endpoints compatíveis com OpenAI e nativos da API Gemini que os desenvolvedores podem escolher de acordo com suas necessidades.
API compatível com OpenAI
Chame o geminicli2api usando a biblioteca do cliente OpenAI, com pontos de extremidade consistentes com a API do OpenAI.
exemplo típico(Python):
import openai
client = openai.OpenAI(
base_url="http://localhost:8888/v1",
api_key="your_password" # GEMINI_AUTH_PASSWORD
)
response = client.chat.completions.create(
model="gemini-2.5-pro-maxthinking",
messages=[{"role": "user", "content": "用简单语言解释相对论"}],
stream=True
)
for chunk in response:
if chunk.choices[0].delta.reasoning_content:
print(f"推理过程: {chunk.choices[0].delta.reasoning_content}")
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
API nativa do Gemini
As chamadas diretas para os pontos de extremidade da API Gemini permitem configurações mais flexíveis.
exemplo típico(Python):
import requests
headers = {
"Authorization": "Bearer your_password",
"Content-Type": "application/json"
}
data = {
"contents": [
{"role": "user", "parts": [{"text": "用简单语言解释相对论"}]}
],
"thinkingConfig": {"thinkingBudget": 32768, "includeThoughts": True}
}
response = requests.post(
"http://localhost:8888/v1beta/models/gemini-2.5-pro:generateContent",
headers=headers,
json=data
)
print(response.json())
Entradas multimodais
Suporta o upload de textos e imagens a serem enviados para /v1/chat/completions
talvez /v1beta/models/{model}:generateContent
.
exemplo típico(Faça upload de imagens e texto):
curl -X POST http://localhost:8888/v1/chat/completions \
-H "Authorization: Bearer your_password" \
-H "Content-Type: application/json" \
-d '{"model": "gemini-2.5-pro", "messages": [{"role": "user", "content": "分析这张图片并描述内容"}], "files": ["./image.jpg"]}'
Método de autenticação
Há suporte para os seguintes métodos de autenticação:
- Token de portador::
Authorization: Bearer your_password
- Certificação básica::
Authorization: Basic base64(username:your_password)
- Parâmetros de consulta::
?key=your_password
- Cabeça do Google::
x-goog-api-key: your_password
Modelos suportados
- Modelo básico:
gemini-2.5-pro
egemini-2.5-flash
egemini-1.5-pro
egemini-1.5-flash
egemini-1.0-pro
- Variantes:
-search
Ativar os aprimoramentos de pesquisa do Google (por exemplo, o Google Search)gemini-2.5-pro-search
).-nothinking
Redução do número de etapas de raciocínio (por exemplo, o número de etapas de raciocínio)gemini-2.5-flash-nothinking
).-maxthinking
Aumento do orçamento para o raciocínio (por exemplo, para ogemini-2.5-pro-maxthinking
).
advertência
- seguro
GEMINI_AUTH_PASSWORD
for definido, caso contrário, a solicitação de API falhará. - As credenciais do Google OAuth precisam ser válidas e recomenda-se que sejam obtidas no console do Google Cloud.
- As respostas de streaming exigem suporte do cliente para processamento de dados em pedaços.
- Verifique as cotas de projeto do Google Cloud para evitar exceder os limites de chamadas de API.
cenário do aplicativo
- Integração com as ferramentas OpenAI existentes
Os desenvolvedores usam o geminicli2api para conectar os modelos Gemini a ferramentas baseadas na API OpenAI (como o LangChain) e mudar rapidamente para a cota gratuita do Gemini sem modificar o código. - Geração de conteúdo multimodal
Os criadores de conteúdo fazem upload de imagens e textos para gerar descrições, análises ou conteúdo criativo adequado para design de publicidade ou produção de material educacional. - Fluxos de trabalho automatizados
As organizações automatizam o processamento de documentos, geram relatórios ou respondem a consultas de clientes por meio do geminicli2api, melhorando a eficiência operacional.
QA
- Quais métodos de autenticação são compatíveis com o geminicli2api?
Oferece suporte a tokens de portador, autenticação básica, parâmetros de consulta e autenticação de cabeçalho do Google, o que requer a configuração doGEMINI_AUTH_PASSWORD
. - Como faço para obter as credenciais do Google OAuth?
Crie uma conta de serviço no console do Google Cloud, faça o download do arquivo de chave JSON, preencha os camposGEMINI_CREDENTIALS
ou definirGOOGLE_APPLICATION_CREDENTIALS
Caminho. - Quais variantes de modelo são compatíveis?
apoiar algo-search
(Pesquisa do Google aprimorada),-nothinking
(Raciocínio reduzido),-maxthinking
(Aumento do raciocínio) para a variantegemini-2.5-pro
responder cantandogemini-2.5-flash
. - Como implantar em espaços com o Hugging Face?
Faça o fork do repositório, crie um Docker Space, configure oGEMINI_AUTH_PASSWORD
responder cantandoGEMINI_CREDENTIALS
O espaço será implantado automaticamente.