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.
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
- Acesso a links de implantação
Clique no site oficial da Vercel endereço de implantação - Configuração de variáveis de ambiente
Preencha as seguintes variáveis na página Vercel Deployment (Implantação da Vercel):ADMIN_API_KEY
Chave 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 exemplokey1
responder cantandokey2
.REDIS_URL
Endereço de conexão Redis para configuração de armazenamento persistente (opcional).ENVIRONMENT
: Definido comoproduction
para desativar a chave padrão do modo de desenvolvimento.
Quando a configuração estiver concluída, clique em "Deploy" (Implantar).
- Obtendo o endereço de implantação
Após uma implantação bem-sucedida, a Vercel gera um URL comohttps://your-vercel-url.vercel.app
. UsarADMIN_API_KEY
Faça login no painel de administração.
Operação local (opcional)
- 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
- Baixar arquivo
Acesse https://github.com/zhangtyzzz/uni-api/releases para fazer o download dos binários mais recentes, por exemplouni-api-linux-x86_64-0.0.99.pex
. - 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
- Painel de administração de login (implantação do Vercel)
Abra a URL implantada e digiteADMIN_API_KEY
Faça o login. A tela exibe Add Configuration e Configuration List. - 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.
- mapeamento de modelos
Adicione um mapeamento à configuração, por exemplo:
- nome comum
gpt-4
Mapeamento para agpt-4
responder cantando Claude (usado em uma expressão nominal)claude-2
.
A solicitação é feita comgpt-4
O sistema seleciona automaticamente os serviços disponíveis.
Uso das funções principais
- 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.
- 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. - 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.
- 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 comoproduction
Os 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
- 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. - 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. - 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
- 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. - 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. - 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.