Sobre el proyecto

# One API Accede a todos los modelos de lenguaje grandes mediante el formato estándar de la API de OpenAI, listo para usar. ## Modelos y canales compatibles - Series OpenAI ChatGPT (incluye Azure OpenAI) - Series Anthropic Claude (incluye AWS Claude) - Series Google PaLM2 / Gemini - Series Mistral - ByteDance Doubao (Volcano Engine) - Baidu ERNIE Bot (文心一言) - Alibaba Tongyi Qianwen (通义千问) - iFlytek Spark (星火) - Zhipu ChatGLM - 360 ZhiNao - Tencent Hunyuan - Moonshot AI, Baichuan, MINIMAX, DeepSeek - Groq, Ollama, Zero One万物, StepFun, Coze - Cohere, Cloudflare Workers AI, together.ai, novita.ai - SiliconCloud, xAI, DeepL, entre otros ## Funcionalidades principales 1. **Adaptación unificada de API**: Todos los canales ofrecen interfaces compatibles con OpenAI; los clientes no necesitan modificar código para cambiar de modelo. 2. **Balanceo de carga**: Soporta enrutamiento multi-canal con asignación automática de solicitudes según pesos por grupo. 3. **Gestión de tokens**: Cada token de acceso puede configurarse con fecha de expiración, límite de cuota, rangos de IP permitidos y lista de modelos accesibles. 4. **Gestión de canales**: Soporta creación y gestión por lotes de múltiples canales de backend, cada uno con su propia lista de modelos. 5. **Grupos de usuarios**: Diferentes grupos de usuarios pueden tener pesos y permisos distintos. 6. **Códigos de canje**: Generación y exportación masiva de códigos de canje para recargas de cuenta. 7. **Reintento automático en fallos**: Cuando un canal falla, se cambia automáticamente a otro disponible. 8. **Interfaz de generación de imágenes**: Soporta retransmisión de APIs de generación de imágenes. 9. **Sistema de referidos**: Soporta机制 de invitación entre usuarios. 10. **Despliegue multi-máquina**: Soporta arquitectura master/slave distribuida con sincronización de caché vía Redis. 11. **Personalización**: Soporta personalización del nombre del sistema, logotipo, pie de página, página de inicio y página «Acerca de». 12. **Métodos de inicio de sesión**: Soporta registro por email, autenticación con Feishu, GitHub y WeChat Official Account. 13. **Cloudflare AI Gateway**: Compatible con integración directa con Cloudflare AI Gateway. 14. **Cambio de tema**: Soporta cambio de temas de la interfaz UI. ## Métodos de despliegue ### Despliegue con 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 ``` Cuenta inicial: usuario `root`, contraseña `123456`. ### Despliegue con Docker Compose ```shell docker-compose up -d ``` Los datos se almacenan en el directorio `./data/mysql`. ### Despliegue 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 terceros Compatible con despliegue en un clic mediante Sealos, Zeabur, Render, así como con el panel Baota. ## Uso 1. En la página «Canales», agrega las API Keys de cada modelo. 2. En la página «Tokens», crea tokens de acceso para los usuarios deseados. 3. En tu cliente, configura la API Base como la dirección de One API (ej. `https://tu-dominio/v1`) y la API Key como el token generado. Para dirigir a un canal específico, añade `-CHANNEL_ID` al final del token, por ejemplo: `Authorization: Bearer ONE_API_KEY-1`. ## Variables de entorno importantes | Variable | Descripción | |---|---| | `REDIS_CONN_STRING` | Habilita caché con Redis | | `SESSION_SECRET` | Clave fija de sesión para mantener el estado de login tras reiniciar | | `SQL_DSN` | Usa MySQL/PostgreSQL en lugar de SQLite | | `SYNC_FREQUENCY` | Frecuencia de sincronización de caché (segundos), recomendado para despliegue multi-máquina | | `NODE_TYPE` | `master` o `slave`, para despliegue multi-máquina | | `FRONTEND_BASE_URL` | Redirige las solicitudes del frontend desde el servidor | | `INITIAL_ROOT_TOKEN` | Crea automáticamente el token root al primer inicio | ## Licencia Licencia MIT, requiriendo保留 el crédito y enlace al proyecto en el pie de página.