Gêmeos O Balance é um serviço proxy de API OpenAI desenvolvido com base na estrutura FastAPI, com o objetivo de fornecer recursos eficientes de otimização e gerenciamento de chaves de várias APIs. Ele é compatível com as chamadas do modelo Gemini e seus principais recursos incluem sondagem de chaves de várias APIs, análise forense de autenticação, respostas de streaming, suporte CORS entre domínios e uma interface de verificação de integridade. Ao usar pilhas de tecnologia como Python 3.9+ e Docker, o Gemini Balance oferece aos desenvolvedores uma solução de proxy de API flexível e eficiente para cenários de aplicativos que exigem alta simultaneidade e alta confiabilidade.
Recomendação relacionada:One Balance: uma ferramenta de balanceamento de carga para gerenciar de forma inteligente as chaves de API de IA por meio do Gateway de IA da Cloudflare

Lista de funções
- Suporte a polling de chaves de várias APIs
- Autenticação de token de portador
- Suporte à resposta de streaming
- Suporte a CORS entre domínios
- Interface de verificação de saúde
- Suporte para chamadas de modelo Gemini
- Suporte à função de pesquisa
- Suporte para execução de código
Usando a Ajuda
Requisitos ambientais
- Python 3.9+
- Docker (opcional)
Instalação de dependências
pip install -r requirements.txt
arquivo de configuração
estabelecer.enve configure os seguintes parâmetros:
API_KEYS=["your-api-key-1","your-api-key-2"]
ALLOWED_TOKENS=["your-access-token-1","your-access-token-2"]
BASE_URL="https://generativelanguage.googleapis.com/v1beta"
TOOLS_CODE_EXECUTION_ENABLED=true
MODEL_SEARCH=["gemini-2.0-flash-exp"]
Implementação do Docker
docker build -t gemini-balance .
docker run -p 8000:8000 -d gemini-balance
Interface da API
- Obter uma lista de modelos
  GET /v1/models
Authorization: Bearer your-token
- Chat completo.
  POST /v1/chat/completions
Authorization: Bearer your-token
{
"messages": [...],
"model": "gemini-1.5-flash-002",
"temperature": 0.7,
"stream": false,
"tools": []
}
- Obter incorporação
  POST /v1/embeddings
Authorization: Bearer your-token
{
"input": "Your text here",
"model": "text-embedding-004"
}
- check-up de saúde
  GET /health
estrutura de código
- app/- api/
- routes.pyRoteamento de API
- dependencies.pyInjeção de dependência: Injeção de dependência
- core/
- config.pyGerenciamento de configuração
- security.pyCertificação de segurança
- services/
- chat_service.pyServiço de bate-papo
- key_manager.pyGerenciamento de chaves
- model_service.pyServiços de modelagem
- schemas/
- request_model.py: Modelo de solicitação
- main.pyEntrada para o programa principal
 
- DockerfileConfiguração do Docker
- requirements.txtDependências do projeto
Recursos de segurança
- Mecanismo de sondagem de chave de API
- Autenticação de token de portador
- Registro de solicitações
- Falha ao tentar novamente o mecanismo
- Verificação da validade da chave
advertência
- Certifique-se de manter suas chaves de API e tokens de acesso seguros!
- Recomenda-se configurar informações confidenciais em ambientes de produção usando variáveis de ambiente
- A porta de serviço padrão é 8000
- O número padrão de novas tentativas de falha da chave de API é 10.
- Consulte a documentação da API do Gemini para obter uma lista dos modelos compatíveis
Adendo: a huggingface implementa o agente gemini, chamadas de sondagem de contas, desbloqueio de restrições de área
1. espaço de cópia espaço
Gemini Balance - um espaço para abraçar o rosto por snailyp

2) Modifique a visibilidade paraPublic(não se esqueça de observar que a alteração para público, ou não acessível), configuraçãoALLOWED_TOKENS,API_KEYS,BASE_URLpadrão (configuração)

ALLOWED_TOKENS formato["自定义apikey"]Observe que os parênteses, as vírgulas e as vírgulas invertidas são rigorosamente respeitados.
API_KEYSO formato está na forma de uma única chave:["gemini_key1"]A forma de várias chaves["gemini_key1","gemini_key2"]Observe que os parênteses, as vírgulas e as vírgulas invertidas são rigorosamente respeitados.
BASE_URLdeixar os padrões como estão
3) Aguarde até que a implantação seja bem-sucedida. Depois que a implantação for bem-sucedida, os seguintes registros e status de execução serão exibidos

4) Nesse momento, o host padrão do serviço huggingface éhuggingface用户名-gemini-balance.hf.spaceComo o meu é.snailyp-gemini-balance.hf.space
tomar nota deO serviço Huggingface entrará em hibernação se não for usado por 48 horas. Recomenda-se mantê-lo ativo por meio de tarefas cronometradas, como o painel Qinglong ou o uptime kuma. (Chamado diretamente pela solicitação get)https://用户名-gemini-balance.hf.space(pode ser feito)
5 Endpoints suportados/hf/v1/modelsresponder cantando/hf/v1/chat/completions
6. O nome de domínio huggingface pode não ser capaz de acessar diretamente o doméstico, mas o hf.space parece ser capaz de acessar.
Você pode usar o cf workers como proxy e vincular um nome de domínio personalizado para poder acessá-lo na China.Altere url.host para o seu próprio.::
export default { async fetch(request, env) { const url = new URL(request.url); url.host = 'xxx-gemini-balance.hf.space'; url.pathname = "/hf" + url.pathname; return fetch(new Request(url, request)) } }
tomar nota deO ponto de extremidade proxy remove /hf, de modo que o ponto de extremidade agora se torna/v1/modelsresponder cantando/v1/chat/completionsA configuração do cliente requer alguma atenção.
7. algumas limitações: no momento, não é possível realizar o processamento de imagens e a estrutura da saída de palavras
































 Português do Brasil
Português do Brasil				 简体中文
简体中文					           English
English					           日本語
日本語					           Deutsch
Deutsch