Home
Login

Sistema de gestión y distribución de API LLM, que admite la gestión unificada de interfaces para múltiples modelos de lenguaje grandes.

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

One API - Sistema de Gestión y Distribución de APIs LLM

Resumen del Proyecto

One API es un sistema de gestión y distribución de APIs LLM de código abierto que soporta modelos principales como OpenAI, Azure, Anthropic Claude, Google Gemini, DeepSeek, ChatGLM, etc. Unifica la adaptación de APIs y puede utilizarse para la gestión de claves y la redistribución secundaria. El proyecto proporciona un único archivo ejecutable, soporta imágenes Docker e implementa la implementación con un solo clic, listo para usar.

Características Principales

📋 Soporte Multimodelo

El proyecto soporta numerosos proveedores de modelos de lenguaje grandes principales:

  • Serie OpenAI: Modelos de la serie ChatGPT (soporta Azure OpenAI API)
  • Anthropic: Modelos de la serie Claude (soporta AWS Claude)
  • Google: Modelos de la serie PaLM2/Gemini
  • other: Otras series de modelos

🔧 Funciones Principales

Gestión y Distribución de APIs

  • Soporta la configuración de espejos y numerosos servicios de proxy de terceros
  • Soporta el acceso a múltiples canales a través del balanceo de carga
  • Soporta el modo stream, que puede lograr el efecto de máquina de escribir a través de la transmisión en flujo
  • Soporta la implementación multi-máquina
  • Soporta el reintento automático en caso de fallo
  • Soporta interfaces de dibujo

Gestión de Usuarios y Permisos

  • Gestión de Tokens: Establecer el tiempo de expiración, la cuota, el rango de IP permitido y el acceso al modelo permitido para los tokens
  • Gestión de Códigos de Canje: Soporta la generación y exportación por lotes de códigos de canje, que pueden utilizarse para recargar cuentas
  • Agrupación de Usuarios: Soporta la agrupación de usuarios y la agrupación de canales, y soporta el establecimiento de diferentes multiplicadores para diferentes grupos
  • Gestión de Canales: Crear canales por lotes, soporta la configuración de listas de modelos para canales

Monitorización y Estadísticas

  • Soporta la visualización de detalles de cuota
  • Soporta recompensas por invitación de usuarios
  • Soporta la visualización de la cuota en dólares estadounidenses
  • En combinación con Message Pusher, la información de alarma puede enviarse a varias aplicaciones

Funciones Personalizadas

  • Soporta la publicación de anuncios, el establecimiento de enlaces de recarga y el establecimiento de la cuota inicial para nuevos usuarios
  • Soporta el mapeo de modelos, redirigiendo los modelos de solicitud de los usuarios
  • Soporta la personalización del nombre del sistema, el logotipo y el pie de página
  • Soporta la personalización de la página de inicio y la página "Acerca de"
  • Soporta la llamada a la API de gestión a través de tokens de acceso del sistema

🔐 Seguridad y Autenticación

Múltiples Métodos de Inicio de Sesión

  • Registro e inicio de sesión por correo electrónico (soporta la lista blanca de correos electrónicos de registro) y restablecimiento de contraseña por correo electrónico
  • Inicio de sesión autorizado por Feishu
  • Inicio de sesión autorizado por GitHub
  • Autorización de la cuenta pública de WeChat (requiere la implementación adicional de WeChat Server)

Características de Seguridad

  • Soporta la verificación de usuarios de Cloudflare Turnstile
  • Soporta el cambio de tema
  • Soporta Cloudflare AI Gateway

Métodos de Implementación

Implementación con 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

Implementación con Docker Compose

# Actualmente soporta el inicio de MySQL, los datos se almacenan en la carpeta ./data/mysql
docker-compose up -d

# Ver el estado de la implementación
docker-compose ps

Implementación Manual

  1. Descargue el archivo ejecutable de GitHub Releases o compile desde el código fuente:
git clone https://github.com/songquanpeng/one-api.git

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

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

Implementación en la Nube

Implementación en Zeabur

  • Haga un fork del repositorio de código
  • Cree un Proyecto en Zeabur, añada un servicio MySQL
  • Configure las variables de entorno PORT=3000 y SQL_DSN
  • Implemente y configure el dominio

Implementación en Render

  • Implemente directamente la imagen Docker
  • No es necesario hacer un fork del repositorio

Descripción de la Configuración

Configuración de Variables de Entorno

Configuración de la Base de Datos

  • SQL_DSN: Cadena de conexión de la base de datos (se recomienda utilizar MySQL o PostgreSQL)
  • LOG_SQL_DSN: Cadena de conexión de la base de datos independiente para la tabla de registros

Configuración de la Caché

  • REDIS_CONN_STRING: Cadena de conexión de Redis, utilizada para la caché
  • MEMORY_CACHE_ENABLED: Activar la caché en memoria
  • SYNC_FREQUENCY: Frecuencia de sincronización de la base de datos (segundos)

Configuración del Clúster

  • SESSION_SECRET: Clave de sesión fija
  • NODE_TYPE: Tipo de nodo (master/slave)
  • FRONTEND_BASE_URL: Dirección de redirección del frontend

Configuración de Seguridad

  • GLOBAL_API_RATE_LIMIT: Límite de velocidad de la API
  • GLOBAL_WEB_RATE_LIMIT: Límite de velocidad de la Web
  • RELAY_TIMEOUT: Configuración del tiempo de espera del relé

Parámetros de la Línea de Comandos

  • --port <port_number>: Especifica el número de puerto (por defecto 3000)
  • --log-dir <log_dir>: Especifica la carpeta de registros
  • --version: Imprime el número de versión
  • --help: Muestra la ayuda

Modo de Empleo

  1. Inicio de Sesión Inicial: Utilice la cuenta predeterminada root, contraseña 123456
  2. Configuración del Canal: Añada la clave API en la página del canal
  3. Creación de Tokens: Cree un token de acceso en la página de tokens
  4. Configuración del Cliente: Establezca la API Base en la dirección de implementación de One API, la API Key en el token generado

Ejemplo de Uso de la API

# Configuración de la biblioteca oficial de OpenAI
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"

Especificación del Canal

Puede especificar el uso de un canal específico añadiendo el ID del canal después del token:

Authorization: Bearer ONE_API_KEY-CHANNEL_ID

Diseño de la Arquitectura

Usuario → One API → OpenAI/Azure/Claude/Gemini y otros proveedores

One API actúa como una capa intermedia, unificando los formatos de API de diferentes proveedores, proporcionando:

  • Balanceo de carga
  • Retransmisión y conversión de formato de solicitudes
  • Gestión de usuarios y control de permisos
  • Estadísticas de uso y facturación

Casos de Integración

ChatGPT Next Web

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

Simplemente configure la dirección de la interfaz y la clave API en la 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

Licencia

Este proyecto es de código abierto bajo la licencia MIT, que requiere que se conserve la atribución y el enlace a este proyecto en la parte inferior de la página.

Dirección del Proyecto

Star History Chart