Home
Login

نظام إدارة وتوزيع واجهات برمجة تطبيقات نماذج اللغة الكبيرة (LLM)، يدعم إدارة موحدة لواجهات برمجة التطبيقات للعديد من نماذج اللغة الكبيرة.

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

One API - نظام إدارة وتوزيع واجهات برمجة تطبيقات LLM

نظرة عامة على المشروع

One API هو نظام مفتوح المصدر لإدارة وتوزيع واجهات برمجة تطبيقات LLM، يدعم النماذج الرئيسية مثل OpenAI و Azure و Anthropic Claude و Google Gemini و DeepSeek و ChatGLM، ويوحد تكييف واجهات برمجة التطبيقات، ويمكن استخدامه لإدارة المفاتيح وإعادة التوزيع. يوفر هذا المشروع ملفًا تنفيذيًا واحدًا، ويدعم صور Docker، ويحقق نشرًا بنقرة واحدة، وجاهزًا للاستخدام بمجرد إخراجه من الصندوق.

الميزات الأساسية

📋 دعم نماذج متعددة

يدعم المشروع العديد من موفري نماذج اللغة الكبيرة الرئيسيين:

  • سلسلة OpenAI: نماذج سلسلة ChatGPT (تدعم Azure OpenAI API)
  • Anthropic: نماذج سلسلة Claude (تدعم AWS Claude)
  • Google: نماذج سلسلة PaLM2/Gemini
  • أخرى: نماذج سلسلة أخرى

🔧 الوظائف الأساسية

إدارة وتوزيع واجهات برمجة التطبيقات

  • يدعم تكوين الصور وعدد كبير من خدمات الوكيل التابعة لجهات خارجية
  • يدعم الوصول إلى قنوات متعددة من خلال موازنة التحميل
  • يدعم وضع التدفق (stream)، ويمكن تحقيق تأثير الآلة الكاتبة من خلال النقل المتدفق
  • يدعم النشر متعدد الأجهزة
  • يدعم إعادة المحاولة التلقائية في حالة الفشل
  • يدعم واجهات برمجة تطبيقات الرسم

إدارة المستخدمين والأذونات

  • إدارة الرموز المميزة: تعيين وقت انتهاء صلاحية الرمز المميز، والحصة، ونطاق IP المسموح به، والوصول إلى النموذج المسموح به
  • إدارة رموز الاسترداد: يدعم الإنشاء والتصدير المجمّع لرموز الاسترداد، ويمكن استخدام رموز الاسترداد لإعادة شحن الحسابات
  • تجميع المستخدمين: يدعم تجميع المستخدمين وتجميع القنوات، ويدعم تعيين مضاعفات مختلفة لمجموعات مختلفة
  • إدارة القنوات: إنشاء قنوات مجمّعة، ويدعم إعداد قائمة النماذج للقنوات

المراقبة والإحصائيات

  • يدعم عرض تفاصيل الحصص
  • يدعم مكافآت دعوة المستخدم
  • يدعم عرض الحصص بالدولار الأمريكي
  • بالتعاون مع Message Pusher، يمكن دفع معلومات الإنذار إلى تطبيقات متعددة

وظائف مخصصة

  • يدعم نشر الإعلانات، وتعيين روابط إعادة الشحن، وتعيين الحصة الأولية للمستخدمين الجدد
  • يدعم تعيين النموذج، وإعادة توجيه نموذج طلب المستخدم
  • يدعم تخصيص اسم النظام والشعار والتذييل
  • يدعم تخصيص الصفحة الرئيسية وصفحة "حول"
  • يدعم استدعاء واجهات برمجة تطبيقات الإدارة من خلال رمز الوصول إلى النظام

🔐 الأمان والمصادقة

طرق تسجيل دخول متعددة

  • تسجيل الدخول والتسجيل عبر البريد الإلكتروني (يدعم القائمة البيضاء لبريد التسجيل) وإعادة تعيين كلمة المرور عبر البريد الإلكتروني
  • تسجيل الدخول بتفويض Feishu
  • تسجيل الدخول بتفويض GitHub
  • تفويض حساب WeChat الرسمي (يتطلب نشر WeChat Server إضافيًا)

ميزات الأمان

  • يدعم التحقق من مستخدم Cloudflare Turnstile
  • يدعم تبديل السمات
  • يدعم Cloudflare AI Gateway

طرق النشر

نشر Docker (موصى به)

باستخدام 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

باستخدام 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

# يدعم حاليًا بدء تشغيل MySQL، ويتم تخزين البيانات في المجلد ./data/mysql
docker-compose up -d

# عرض حالة النشر
docker-compose ps

النشر اليدوي

  1. قم بتنزيل الملف القابل للتنفيذ من GitHub Releases أو قم بتجميعه من الكود المصدري:
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
  1. تشغيل:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs

نشر النظام الأساسي السحابي

نشر Zeabur

  • قم بإنشاء نسخة (Fork) من مستودع الكود
  • قم بإنشاء مشروع في Zeabur، وأضف خدمة MySQL
  • قم بتكوين متغيرات البيئة PORT=3000 و SQL_DSN
  • انشر وقم بتكوين المجال

نشر Render

  • انشر صورة Docker مباشرة
  • لا حاجة لإنشاء نسخة (Fork) من المستودع

وصف التكوين

تكوين متغيرات البيئة

تكوين قاعدة البيانات

  • SQL_DSN: سلسلة اتصال قاعدة البيانات (يوصى باستخدام MySQL أو PostgreSQL)
  • LOG_SQL_DSN: قاعدة بيانات اتصال مستقلة لجدول السجلات

تكوين ذاكرة التخزين المؤقت

  • REDIS_CONN_STRING: سلسلة اتصال Redis، تستخدم للتخزين المؤقت
  • MEMORY_CACHE_ENABLED: تمكين ذاكرة التخزين المؤقت
  • SYNC_FREQUENCY: تردد مزامنة قاعدة البيانات (بالثواني)

تكوين المجموعة

  • SESSION_SECRET: مفتاح جلسة ثابت
  • NODE_TYPE: نوع العقدة (master/slave)
  • FRONTEND_BASE_URL: عنوان إعادة توجيه الواجهة الأمامية

تكوين الأمان

  • GLOBAL_API_RATE_LIMIT: تحديد معدل واجهة برمجة التطبيقات
  • GLOBAL_WEB_RATE_LIMIT: تحديد معدل الويب
  • RELAY_TIMEOUT: إعداد مهلة الترحيل

معلمات سطر الأوامر

  • --port <port_number>: تحديد رقم المنفذ (الافتراضي 3000)
  • --log-dir <log_dir>: تحديد مجلد السجلات
  • --version: طباعة رقم الإصدار
  • --help: عرض التعليمات

كيفية الاستخدام

  1. تسجيل الدخول الأولي: استخدم الحساب الافتراضي root، وكلمة المرور 123456
  2. تكوين القناة: أضف مفتاح API في صفحة القناة
  3. إنشاء الرمز المميز: قم بإنشاء رمز وصول في صفحة الرمز المميز
  4. تكوين العميل: قم بتعيين API Base على عنوان نشر One API، وقم بتعيين API Key على الرمز المميز الذي تم إنشاؤه

مثال على استخدام واجهة برمجة التطبيقات

# تكوين مكتبة OpenAI الرسمية
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"

تحديد القناة

يمكنك تحديد استخدام قناة معينة عن طريق إضافة معرف القناة بعد الرمز المميز:

Authorization: Bearer ONE_API_KEY-CHANNEL_ID

تصميم معماري

المستخدم ← One API ← OpenAI/Azure/Claude/Gemini وموفرين آخرين

يعمل One API كطبقة وسيطة، ويوحد تنسيق واجهة برمجة التطبيقات لمختلف الموفرين، ويوفر:

  • موازنة التحميل
  • ترحيل الطلبات وتحويل التنسيق
  • إدارة المستخدمين والتحكم في الأذونات
  • إحصائيات الاستخدام والفوترة

حالات التكامل

ChatGPT Next Web

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

ما عليك سوى تعيين عنوان الواجهة و API Key في صفحة الإعدادات.

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

الترخيص

هذا المشروع مفتوح المصدر بموجب ترخيص MIT، ويتطلب الاحتفاظ بالإسناد ورابط إلى هذا المشروع في أسفل الصفحة.

عنوان المشروع

Star History Chart