Aprendizagem pessoal com IA
e orientação prática

Gemini Balance: a API do modelo Gemini é compatível com o formato OpenAI, desbloqueando restrições de região e oferecendo suporte à pesquisa de chaves de várias APIs.

Este artigo foi atualizado em 2024-12-29 13:31, parte do conteúdo é sensível ao tempo, se for inválido, deixe uma mensagem!

Introdução geral

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.

 

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
Autorização: Portador your-token
  • Chat completo.
  POST /v1/chat/completions
Autorização: Portador do seu token
{
"messages": [...] ,
"model": "gemini-1.5-flash-002",
"temperatura": 0,7,
"stream": falso, "tools": [].
"tools": []
}
  • Obter incorporação
  POST /v1/embeddings
Autorização: Portador your-token
{
"input": "Seu texto aqui", "model": "text-embedding-004", "text-embedding-004
"model": "text-embedding-004"
}
  • check-up de saúde
  GET /health

estrutura de código

  • aplicativo/
    • api/
    • rotas.pyRoteamento de API
    • dependências.pyInjeção de dependência: Injeção de dependência
    • núcleo/
    • config.pyGerenciamento de configuração
    • security.pyCertificação de segurança
    • serviços/
    • chat_service.pyServiço de bate-papo
    • key_manager.pyGerenciamento de chaves
    • model_service.pyServiços de modelagem
    • esquemas/
    • request_model.py: Modelo de solicitação
    • main.pyEntrada para o programa principal
  • DockerfileConfiguração do Docker
  • requisitos.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


Gemini Balance: a API do modelo Gemini é compatível com o formato OpenAI, desbloqueando a restrição de região e suportando polling-1 de chave multiAPI

 

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

Gemini Balance: a API do modelo Gemini é compatível com o formato OpenAI, desbloqueando a restrição de região e suportando polling-1 de chave multiAPI

TÓKENS PERMITIDOS formato["apikey personalizada"]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

Gemini Balance: a API do modelo Gemini é compatível com o formato OpenAI, desbloqueando a restrição de região e suportando polling-1 de chave multiAPI

 

4) Nesse momento, o host padrão do serviço huggingface éhuggingface nome de usuário-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/modelosresponder 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/modelosresponder 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

Gemini Balance: a API do modelo Gemini é compatível com o formato OpenAI, desbloqueando a restrição de região e suportando polling-1 de chave multiAPI

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Gemini Balance: a API do modelo Gemini é compatível com o formato OpenAI, desbloqueando restrições de região e oferecendo suporte à pesquisa de chaves de várias APIs.

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil