Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

UniAPI: gerenciamento unificado sem servidor de encaminhamento de API de modelo grande

Introdução geral

O UniAPI é um encaminhador de API compatível com o protocolo OpenAI, e sua função principal é gerenciar as APIs de vários provedores de serviços de modelos grandes, como OpenAI, Azure OpenAI, Claude etc., por meio de um formato OpenAI unificado. Os desenvolvedores podem usar uma interface para chamar modelos de diferentes fornecedores sem ajustes frequentes no código. A UniAPI oferece suporte à otimização de modelos, mecanismo de disjuntor e otimização de saída de streaming para garantir solicitações eficientes e estáveis. Ele fornece a implantação com um clique do Vercel, adequada para criar rapidamente uma estação de serviço de API pessoal ou de equipe. O projeto foi desenvolvido pelo usuário do GitHub zhangtyzzz e ainda está sendo atualizado.

UniAPI:免服务器统一管理大模型API转发-1


 

Lista de funções

  • Suporte para OpenAI e serviços compatíveis com o protocolo OpenAI, incluindo Azure OpenAI, Claude e outros.
  • Unificar APIs de diferentes fornecedores no formato OpenAI para simplificar o processo de chamada.
  • Oferece suporte ao mapeamento de modelos, chamando modelos reais de diferentes fornecedores com um nome de modelo uniforme.
  • Fornecer um mecanismo de seleção de modelos com base na taxa de sucesso de 72 horas e no número de primeiros token Tempo de resposta para selecionar o melhor serviço.
  • Mecanismo de disjuntor integrado, a falha contínua do serviço suspende automaticamente a solicitação para proteger a estabilidade do sistema.
  • Otimize as saídas de streaming dividindo grandes partes da resposta em partes menores para melhorar o impacto visual.
  • Suporta chaves de API personalizadas, URLs de base e listas de modelos para uma configuração flexível.
  • Implementado via Vercel, ele fornece um painel de administração e autenticação segura.

 

Usando a Ajuda

O uso do UniAPI é dividido em duas partes: implantação e configuração. A seguir, há uma descrição detalhada de como instalar, configurar e operar o UniAPI para garantir que você possa começar a usá-lo rapidamente.

Processo de instalação

A UniAPI é compatível com dois métodos de implementação: tempo de execução local e implementação com um clique da Vercel. Aqui, consideramos a implementação do Vercel como a principal, que é adequada para a maioria dos usuários.

Implementação do Vercel com um clique

  1. Acesso a links de implantação
    Clique no site oficial da Vercel endereço de implantação
  2. Configuração de variáveis de ambiente
    Preencha as seguintes variáveis na página Vercel Deployment (Implantação da Vercel):

    • ADMIN_API_KEYChave de administrador: a chave de administrador para fazer login no painel de administração deve ser definida, por exemplo. mysecretkey.
    • TEMP_API_KEY: as chaves que permitem o acesso à API, que podem ser definidas como até 2, por exemplo key1 responder cantando key2.
    • REDIS_URLEndereço de conexão Redis para configuração de armazenamento persistente (opcional).
    • ENVIRONMENT: Definido como production para desativar a chave padrão do modo de desenvolvimento.
      Quando a configuração estiver concluída, clique em "Deploy" (Implantar).
  3. Obtendo o endereço de implantação
    Após uma implantação bem-sucedida, a Vercel gera um URL como https://your-vercel-url.vercel.app. Usar ADMIN_API_KEY Faça login no painel de administração.

Operação local (opcional)

  1. Preparação do ambiente
    Certifique-se de que o Python 3.8 ou superior esteja instalado em seu dispositivo. Verifique a versão:
python --version
  1. Baixar arquivo
    Acesse https://github.com/zhangtyzzz/uni-api/releases para fazer o download dos binários mais recentes, por exemplo uni-api-linux-x86_64-0.0.99.pex.
  2. programa de corrida
    Executado no terminal:
chmod +x uni-api-linux-x86_64-0.0.99.pex
./uni-api-linux-x86_64-0.0.99.pex

Ouvinte padrão http://localhost:8000.

Configuração da API

  1. Painel de administração de login (implantação do Vercel)
    Abra a URL implantada e digite ADMIN_API_KEY Faça o login. A tela exibe Add Configuration e Configuration List.
  2. Adição de configuração de API
    Clique em "Add Configuration" (Adicionar configuração) e preencha as informações a seguir:
  • provedor de serviçosEscolha entre OpenAI, Claude, etc.
  • URL de baseDigite o endereço de API do provedor de serviços, por exemplo. https://api.openai.com/v1.
  • Chave da APIDigite a chave obtida do provedor de serviços, por exemplo. sk-xxxx.
  • Nome do modeloDigite o nome do modelo real ou o nome do mapeamento, por exemplo. gpt-3.5-turbo.
    Após salvar, a configuração é exibida na lista.
  1. mapeamento de modelos
    Adicione um mapeamento à configuração, por exemplo:
  • nome comum gpt-4 Mapeamento para a gpt-4 responder cantando Claude (usado em uma expressão nominal) claude-2.
    A solicitação é feita com gpt-4O sistema seleciona automaticamente os serviços disponíveis.

Uso das funções principais

  1. Enviar solicitação
    Teste a API com curl:
curl -X POST https://your-vercel-url.vercel.app/v1/chat/completions 
-H "Authorization: Bearer your_api_key" 
-H "Content-Type: application/json" 
-d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "你好"}], "stream": true}'

Retorna uma saída de fluxo indicando que a configuração foi bem-sucedida.

  1. seleção de modelos
    O sistema seleciona automaticamente o melhor provedor de serviços com base na taxa de sucesso e no tempo de resposta do primeiro token nas últimas 72 horas. Você não precisa intervir manualmente.
  2. mecanismo do disjuntor
    Um disjuntor é acionado quando um serviço falha continuamente:
  • 3 falhas: 5 minutos de pausa.
  • 4 falhas: 10 minutos de suspensão.
  • 9 falhas: 48 horas de suspensão.
    Durante a suspensão, o sistema muda para outro provedor de serviços.
  1. Otimização de streaming
    com relação a Gêmeos Os modelos com grandes blocos de resposta, como o UniAPI, são automaticamente divididos em blocos menores de saída.

Perguntas frequentes

  • Falha na solicitação 401: Inspeção Authorization O cabeçalho contém os dados corretos? Bearer your_api_key.
  • Modelo indisponívelVerifique se o nome do modelo configurado corresponde ao fornecido pelo provedor de serviços ou verifique as configurações de mapeamento.
  • Inacessível após a implantação: Reconhecimento ENVIRONMENT configurado como productionOs logs da Vercel não estão disponíveis para o usuário e são verificados.

Com essas etapas, você pode implantar e usar facilmente a UniAPI, que é fácil de configurar, avançada e ideal para cenários em que você precisa gerenciar APIs de vários fornecedores.

 

cenário do aplicativo

  1. Teste de desenvolvedor de modelos de vários fornecedores
    Você deseja comparar a saída do OpenAI e do Claude. A uniAPI permite que você economize tempo chamando ambos com uma única interface.
  2. As equipes criam serviços de API estáveis
    A equipe precisava de uma estação de API confiável para dar suporte aos negócios. O disjuntor e a meritocracia da uniAPI garantem um serviço ininterrupto.
  3. Educação e pesquisa
    Os alunos podem usar a UniAPI para investigar a capacidade de resposta e a estabilidade de diferentes modelos, adequados para experimentos acadêmicos.

 

QA

  1. Quais provedores de serviços são compatíveis com o UniAPI?
    Suporte para OpenAI, Azure OpenAI, Claude e outros serviços compatíveis com o protocolo OpenAI; consulte o GitHub para obter atualizações.
  2. O que acontece quando o disjuntor é acionado?
    O sistema alterna automaticamente para outros provedores de serviços e tenta novamente após um período de reflexão. Não é necessária nenhuma operação manual.
  3. Quais são as vantagens da saída de streaming?
    Ele divide grandes partes da resposta em partes menores para proporcionar uma experiência de usuário mais tranquila, especialmente em cenários de bate-papo em tempo real.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " UniAPI: gerenciamento unificado sem servidor de encaminhamento de API de modelo grande
pt_BRPortuguês do Brasil