Home
Login

LLM API-Verwaltungs- und -Verteilungssystem, das die einheitliche Schnittstellenverwaltung verschiedener großer Sprachmodelle unterstützt.

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

One API - LLM API Verwaltungs- und Verteilungssystem

Projektübersicht

One API ist ein Open-Source-LLM-API-Verwaltungs- und Verteilungssystem, das gängige Modelle wie OpenAI, Azure, Anthropic Claude, Google Gemini, DeepSeek, ChatGLM usw. unterstützt. Es vereinheitlicht die API-Anpassung und kann für die Schlüsselverwaltung und -verteilung verwendet werden. Das Projekt bietet eine einzelne ausführbare Datei, unterstützt Docker-Images und ermöglicht eine einfache Bereitstellung und sofortige Nutzung.

Kernfunktionen

📋 Unterstützung mehrerer Modelle

Das Projekt unterstützt zahlreiche gängige Anbieter von großen Sprachmodellen:

  • OpenAI-Serie: ChatGPT-Serie (unterstützt Azure OpenAI API)
  • Anthropic: Claude-Serie (unterstützt AWS Claude)
  • Google: PaLM2/Gemini-Serie
  • other: Andere Modellserien

🔧 Kernfunktionen

API-Verwaltung und -Verteilung

  • Unterstützt die Konfiguration von Spiegeln und zahlreichen Drittanbieter-Proxy-Diensten
  • Unterstützt den Zugriff auf mehrere Kanäle über Load Balancing
  • Unterstützt den Stream-Modus, der durch Streaming einen Schreibmaschineneffekt erzielen kann
  • Unterstützt die Bereitstellung auf mehreren Rechnern
  • Unterstützt die automatische Wiederholung bei Fehlern
  • Unterstützt Zeichen-APIs

Benutzer- und Rechteverwaltung

  • Token-Verwaltung: Festlegen der Gültigkeitsdauer, des Kontingents, des zulässigen IP-Bereichs und des zulässigen Modellzugriffs für Token
  • Gutscheincode-Verwaltung: Unterstützt die Batch-Generierung und den Export von Gutscheincodes, die zum Aufladen von Konten verwendet werden können
  • Benutzergruppierung: Unterstützt Benutzer- und Kanalgruppierung, unterstützt die Festlegung unterschiedlicher Multiplikatoren für verschiedene Gruppen
  • Kanalverwaltung: Batch-Erstellung von Kanälen, unterstützt die Kanaleinstellung von Modelllisten

Überwachung und Statistik

  • Unterstützt die Anzeige von Kontingentdetails
  • Unterstützt Benutzer-Einladungsprämien
  • Unterstützt die Anzeige des Kontingents in US-Dollar
  • In Verbindung mit Message Pusher können Alarminformationen an verschiedene Apps gesendet werden

Benutzerdefinierte Funktionen

  • Unterstützt die Veröffentlichung von Ankündigungen, das Festlegen von Auflade-Links und das Festlegen des anfänglichen Kontingents für neue Benutzer
  • Unterstützt die Modellzuordnung, um die Anfragen der Benutzer umzuleiten
  • Unterstützt die Anpassung des Systemnamens, des Logos und der Fußzeile
  • Unterstützt benutzerdefinierte Start- und Über-uns-Seiten
  • Unterstützt den Aufruf der Verwaltungs-API über Systemzugriffstoken

🔐 Sicherheit und Authentifizierung

Verschiedene Anmeldemethoden

  • E-Mail-Anmeldung und -Registrierung (unterstützt Whitelist für Registrierungs-E-Mails) sowie Passwortzurücksetzung per E-Mail
  • Feishu-Autorisierungsanmeldung
  • GitHub-Autorisierungsanmeldung
  • WeChat-Kontoautorisierung (erfordert die zusätzliche Bereitstellung von WeChat Server)

Sicherheitsmerkmale

  • Unterstützt Cloudflare Turnstile-Benutzerprüfung
  • Unterstützt Themenwechsel
  • Unterstützt Cloudflare AI Gateway

Bereitstellungsmethoden

Docker-Bereitstellung (empfohlen)

Verwendung von 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

Verwendung von 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

Docker Compose-Bereitstellung

# Derzeit wird der MySQL-Start unterstützt, die Daten werden im Ordner ./data/mysql gespeichert
docker-compose up -d

# Bereitstellungsstatus anzeigen
docker-compose ps

Manuelle Bereitstellung

  1. Laden Sie die ausführbare Datei von GitHub Releases herunter oder kompilieren Sie sie aus dem Quellcode:
git clone https://github.com/songquanpeng/one-api.git

# Frontend erstellen
cd one-api/web/default
npm install
npm run build

# Backend erstellen
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
  1. Ausführen:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs

Cloud-Plattform-Bereitstellung

Zeabur-Bereitstellung

  • Fork des Code-Repositorys
  • Erstellen Sie ein Projekt in Zeabur und fügen Sie einen MySQL-Dienst hinzu
  • Konfigurieren Sie die Umgebungsvariablen PORT=3000 und SQL_DSN
  • Bereitstellen und Konfigurieren der Domain

Render-Bereitstellung

  • Direkte Bereitstellung des Docker-Images
  • Kein Fork des Repositorys erforderlich

Konfigurationsbeschreibung

Umgebungsvariablenkonfiguration

Datenbankkonfiguration

  • SQL_DSN: Datenbankverbindungszeichenfolge (empfohlene Verwendung von MySQL oder PostgreSQL)
  • LOG_SQL_DSN: Unabhängige Datenbankverbindung für die Protokolltabelle

Cache-Konfiguration

  • REDIS_CONN_STRING: Redis-Verbindungszeichenfolge für den Cache
  • MEMORY_CACHE_ENABLED: Aktivieren des Speicher-Cache
  • SYNC_FREQUENCY: Datenbank-Synchronisierungsfrequenz (Sekunden)

Cluster-Konfiguration

  • SESSION_SECRET: Fester Sitzungsschlüssel
  • NODE_TYPE: Knotentyp (master/slave)
  • FRONTEND_BASE_URL: Frontend-Umleitungsadresse

Sicherheitskonfiguration

  • GLOBAL_API_RATE_LIMIT: API-Ratenbegrenzung
  • GLOBAL_WEB_RATE_LIMIT: Web-Ratenbegrenzung
  • RELAY_TIMEOUT: Relay-Timeout-Einstellung

Kommandozeilenparameter

  • --port <port_number>: Gibt die Portnummer an (Standard 3000)
  • --log-dir <log_dir>: Gibt den Protokollordner an
  • --version: Gibt die Versionsnummer aus
  • --help: Zeigt die Hilfe an

Verwendung

  1. Erstanmeldung: Verwenden Sie das Standardkonto root mit dem Passwort 123456
  2. Kanalkonfiguration: Fügen Sie auf der Kanalseite einen API-Schlüssel hinzu
  3. Token-Erstellung: Erstellen Sie auf der Token-Seite ein Zugriffstoken
  4. Client-Konfiguration: Legen Sie die API-Basis auf die One API-Bereitstellungsadresse und den API-Schlüssel auf das generierte Token fest

API-Verwendungsbeispiel

# OpenAI offizielle Bibliothekskonfiguration
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"

Kanalangabe

Sie können den Kanal angeben, indem Sie nach dem Token die Kanal-ID hinzufügen:

Authorization: Bearer ONE_API_KEY-CHANNEL_ID

Architekturentwurf

Benutzer → One API → OpenAI/Azure/Claude/Gemini usw. mehrere Anbieter

One API fungiert als Zwischenschicht, vereinheitlicht die API-Formate verschiedener Anbieter und bietet:

  • Lastverteilung
  • Anfrage-Relay und Formatkonvertierung
  • Benutzerverwaltung und Zugriffskontrolle
  • Nutzungsstatistik und Abrechnung

Integrationsbeispiele

ChatGPT Next Web

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

Legen Sie die Schnittstellenadresse und den API-Schlüssel auf der Seite fest.

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

Lizenz

Dieses Projekt ist unter der MIT-Lizenz Open Source und erfordert, dass die Namensnennung und der Link zu diesem Projekt am Ende der Seite beibehalten werden.

Projektadresse

Star History Chart