Home
Login

Sistema de gerenciamento e distribuição de API LLM, suporta gerenciamento de interface unificada para vários modelos de linguagem grandes.

MITJavaScript 25.9ksongquanpengone-api Last Updated: 2025-02-21

One API - Sistema de Gerenciamento e Distribuição de APIs LLM

Visão Geral do Projeto

One API é um sistema de gerenciamento e distribuição de APIs LLM de código aberto, que suporta os principais modelos como OpenAI, Azure, Anthropic Claude, Google Gemini, DeepSeek, ChatGLM, etc. Ele unifica a adaptação de APIs e pode ser usado para gerenciamento de chaves e redistribuição secundária. O projeto fornece um único arquivo executável, suporta imagens Docker e permite a implantação com um clique, pronto para uso.

Principais Características

📋 Suporte a Múltiplos Modelos

O projeto suporta vários provedores de modelos de linguagem grandes:

  • Série OpenAI: Modelos da série ChatGPT (suporta Azure OpenAI API)
  • Anthropic: Modelos da série Claude (suporta AWS Claude)
  • Google: Modelos da série PaLM2/Gemini
  • Outros: Outras séries de modelos

🔧 Funcionalidades Principais

Gerenciamento e Distribuição de API

  • Suporta a configuração de espelhos e vários serviços de proxy de terceiros
  • Suporta o acesso a vários canais através de balanceamento de carga
  • Suporta o modo stream, que pode implementar o efeito de máquina de escrever através de transmissão em fluxo
  • Suporta implantação multi-máquina
  • Suporta repetição automática em caso de falha
  • Suporta interface de desenho

Gerenciamento de Usuários e Permissões

  • Gerenciamento de Tokens: Defina o tempo de expiração, cota, intervalo de IP permitido e acesso ao modelo permitido para tokens
  • Gerenciamento de Códigos de Resgate: Suporta a geração e exportação em lote de códigos de resgate, que podem ser usados para recarregar contas
  • Grupos de Usuários: Suporta grupos de usuários e grupos de canais, e suporta a configuração de diferentes taxas para diferentes grupos
  • Gerenciamento de Canais: Crie canais em lote, suporta a configuração de listas de modelos de canais

Monitoramento e Estatísticas

  • Suporta a visualização de detalhes da cota
  • Suporta recompensas de convite de usuários
  • Suporta a exibição de cota em dólares americanos
  • Em conjunto com o Message Pusher, as informações de alarme podem ser enviadas para vários aplicativos

Funcionalidades Personalizadas

  • Suporta a publicação de anúncios, a configuração de links de recarga e a configuração da cota inicial para novos usuários
  • Suporta o mapeamento de modelos, redirecionando os modelos de solicitação dos usuários
  • Suporta a personalização do nome do sistema, logotipo e rodapé
  • Suporta a personalização da página inicial e da página sobre
  • Suporta a chamada da API de gerenciamento através de tokens de acesso do sistema

🔐 Segurança e Autenticação

Vários Métodos de Login

  • Login e registro por e-mail (suporta lista de permissões de e-mail de registro) e redefinição de senha por e-mail
  • Login de autorização do Feishu
  • Login de autorização do GitHub
  • Autorização da conta pública WeChat (requer a implantação adicional do WeChat Server)

Características de Segurança

  • Suporta a verificação do usuário Cloudflare Turnstile
  • Suporta a troca de temas
  • Suporta Cloudflare AI Gateway

Métodos de Implantação

Implantação Docker (Recomendado)

Usando SQLite

docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

Usando MySQL

docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

Implantação Docker Compose

# Atualmente, o inicialização do MySQL é suportada, e os dados são armazenados na pasta ./data/mysql
docker-compose up -d

# Verifique o status da implantação
docker-compose ps

Implantação Manual

  1. Baixe o arquivo executável do GitHub Releases ou compile a partir do código-fonte:
git clone https://github.com/songquanpeng/one-api.git

# Construir o frontend
cd one-api/web/default
npm install
npm run build

# Construir o backend
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
  1. Executar:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs

Implantação na Nuvem

Implantação Zeabur

  • Faça um Fork do repositório de código
  • Crie um Projeto no Zeabur, adicione o serviço MySQL
  • Configure as variáveis de ambiente PORT=3000 e SQL_DSN
  • Implante e configure o domínio

Implantação Render

  • Implante diretamente a imagem Docker
  • Não é necessário fazer Fork do repositório

Descrição da Configuração

Configuração de Variáveis de Ambiente

Configuração do Banco de Dados

  • SQL_DSN: String de conexão do banco de dados (recomenda-se usar MySQL ou PostgreSQL)
  • LOG_SQL_DSN: Conexão de banco de dados independente da tabela de logs

Configuração do Cache

  • REDIS_CONN_STRING: String de conexão Redis, usada para cache
  • MEMORY_CACHE_ENABLED: Ativar cache na memória
  • SYNC_FREQUENCY: Frequência de sincronização do banco de dados (segundos)

Configuração do Cluster

  • SESSION_SECRET: Chave de sessão fixa
  • NODE_TYPE: Tipo de nó (master/slave)
  • FRONTEND_BASE_URL: Endereço de redirecionamento do frontend

Configuração de Segurança

  • GLOBAL_API_RATE_LIMIT: Limite de taxa de API
  • GLOBAL_WEB_RATE_LIMIT: Limite de taxa da Web
  • RELAY_TIMEOUT: Configuração de tempo limite de retransmissão

Parâmetros da Linha de Comando

  • --port <port_number>: Especifica o número da porta (padrão 3000)
  • --log-dir <log_dir>: Especifica a pasta de logs
  • --version: Imprime o número da versão
  • --help: Exibe a ajuda

Como Usar

  1. Login Inicial: Use a conta padrão root, senha 123456
  2. Configuração do Canal: Adicione a chave API na página do canal
  3. Criação de Token: Crie um token de acesso na página de tokens
  4. Configuração do Cliente: Defina a API Base para o endereço de implantação do One API e a API Key para o token gerado

Exemplo de Uso da API

# Configuração da biblioteca oficial OpenAI
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"

Especificação do Canal

Você pode especificar o uso de um canal específico adicionando o ID do canal após o token:

Authorization: Bearer ONE_API_KEY-CHANNEL_ID

Design da Arquitetura

Usuário → One API → OpenAI/Azure/Claude/Gemini e outros provedores

One API atua como uma camada intermediária, unificando os formatos de API de diferentes provedores, fornecendo:

  • Balanceamento de carga
  • Retransmissão de solicitação e conversão de formato
  • Gerenciamento de usuários e controle de permissões
  • Estatísticas de uso e faturamento

Casos de Integração

ChatGPT Next Web

docker run --name chat-next-web -d -p 3001:3000 yidadaa/chatgpt-next-web

Defina o endereço da interface e a chave API na página.

ChatGPT Web

docker run --name chatgpt-web -d -p 3002:3002 -e OPENAI_API_BASE_URL=https://openai.justsong.cn -e OPENAI_API_KEY=sk-xxx chenzhaoyu94/chatgpt-web

Licença

Este projeto é de código aberto sob a licença MIT, exigindo que a atribuição e o link para este projeto sejam mantidos na parte inferior da página.

Endereço do Projeto

Star History Chart