Sobre o projeto
# One API
Acesse todos os grandes modelos de linguagem através do formato padrão da API OpenAI, pronto para uso.
## Modelos e Canais Suportados
- OpenAI ChatGPT (incluindo Azure OpenAI)
- Anthropic Claude (incluindo AWS Claude)
- Google PaLM2 / Gemini
- Mistral
- ByteDance Doubao (Volcano Engine)
- Baidu ERNIE Bot
- Alibaba Qwen
- iFlytek Spark
- Zhipu ChatGLM
- 360 Intelligence Brain
- Tencent Hunyuan
- Moonshot AI, Baichuan, MINIMAX, DeepSeek
- Groq, Ollama, Zero One万物, StepFun, Coze
- Cohere, Cloudflare Workers AI, together.ai, novita.ai
- SiliconCloud, xAI, DeepL e outros
## Funcionalidades Principais
1. **Adaptação Unificada de API**: Todos os canais expõem interfaces compatíveis com OpenAI, sem necessidade de alterar código.
2. **Balanceamento de Carga**: Suporta roteamento multi-canal com distribuição automática baseada em grupos e multiplicadores.
3. **Gestão de Tokens**: Define tempo de expiração, limite de quota, IPs permitidos e listas de modelos para cada token.
4. **Gestão de Canais**: Criação e gestão em lote de múltiplos canais downstream, com configuração independente de modelos.
5. **Agrupamento de Usuários**: Diferentes grupos podem ter multiplicadores e permissões distintas.
6. **Códigos de Troca**: Geração e exportação em lote de códigos promocionais para recarga de contas.
7. **Retentativa Automática**: Em caso de falha de um canal, o sistema alterna automaticamente para outro canal disponível.
8. **Interface de Desenho**: Suporte a retransmissão de geração de imagens.
9. **Recompensas de Convite**: Sistema de convite entre usuários.
10. **Implantação Multi-máquina**: Suporta arquitetura master/slave distribuída com sincronização de cache via Redis.
11. **Personalização**: Nome do sistema, logo, rodapé, página inicial e página "Sobre" configuráveis.
12. **Métodos de Login**: Registro por e-mail, autorização via Feishu, GitHub e WeChat Official Account.
13. **Cloudflare AI Gateway**: Integração direta com Cloudflare AI Gateway.
14. **Troca de Tema**: Suporte a troca de temas de interface.
## Métodos de Implantação
### Implantação via Docker (recomendado)
```shell
# Modo 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
# Modo 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
```
Conta inicial: usuário `root`, senha `123456`.
### Implantação via Docker Compose
```shell
docker-compose up -d
```
Os dados são armazenados no diretório `./data/mysql`.
### Implantação Manual
```shell
git clone https://github.com/songquanpeng/one-api.git
cd one-api/web/default && npm install && npm run build
cd ../.. && go mod download && go build -ldflags "-s -w" -o one-api
./one-api --port 3000 --log-dir ./logs
```
### Plataformas de Terceiros
Compatível com implantação automática via Sealos, Zeabur, Render e painel Baota.
## Como Usar
1. Adicione as chaves API de cada modelo na página "Canais".
2. Crie tokens de acesso para usuários na página "Tokens".
3. No cliente, defina o API Base como o endereço do One API (ex: `https://seu-dominio/v1`) e o API Key como o token gerado.
Para especificar um canal, basta anexar `-CHANNEL_ID` ao token, por exemplo: `Authorization: Bearer ONE_API_KEY-1`.
## Variáveis de Ambiente
| Variável | Descrição |
|---|---|
| `REDIS_CONN_STRING` | Habilita cache Redis |
| `SESSION_SECRET` | Chave fixa de sessão, mantém login após reinicialização |
| `SQL_DSN` | Usa MySQL/PostgreSQL em vez de SQLite |
| `SYNC_FREQUENCY` | Frequência de sincronização de cache (segundos), recomendada para multi-máquina |
| `NODE_TYPE` | `master` ou `slave`, para implantação multi-máquina |
| `FRONTEND_BASE_URL` | Redireciona requisições do frontend pelo servidor |
| `INITIAL_ROOT_TOKEN` | Cria automaticamente o token root no primeiro inicio |
## Licença
Licença MIT, requerendo manter os créditos e link para o projeto no rodapé da página.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.