ChatGPT-Plus هو تطبيق يستخدم واجهة برمجة تطبيقات ChatGPT الرسمية.
إظهار مشكلات العرض التوضيحي/التعليقات/تطوير Gitpod/نشر Vercel
الصينية المبسطة |
مثل هذا المشروع؟ من فضلك أعطني نجمة ️
أو شاركها مع أصدقائك لمساعدتها على التحسن!
عميل ChatGPT-Plus هو تطبيق لواجهة برمجة تطبيقات ChatGPT الرسمية. هذا التطبيق عبارة عن تطبيق مجمّع لواجهة برمجة التطبيقات الرسمية لـ ChatGPT الخاصة بـ OpenAI.
هناك طريقتان للوصول إليها لاستخدام هذه الوحدة في Node.js، عليك الاختيار بين طريقتين:
طريقة | حر؟ | قوي؟ | جودة؟ |
---|---|---|---|
ChatGPTAPI | لا | ✅ نعم | ✅️نموذج ChatGPT الحقيقي |
ChatGPTUnofficialProxyAPI | ✅ نعم | ☑️ ربما | ✅ دردشة حقيقية GPT |
ChatGPTAPI
- يستخدم نموذج gpt-3.5-turbo-0301
مع واجهة برمجة التطبيقات الرسمية لإكمال الدردشة OpenAI (طريقة رسمية وقوية، ولكنها ليست مجانية). يمكنك تجاوز النماذج ومعلمات الإكمال ورسائل النظام لتخصيص مساعدك بالكامل.
ChatGPTUnofficialProxyAPI
- استخدم خادم وكيل غير رسمي للوصول إلى واجهة برمجة تطبيقات الواجهة الخلفية لـ ChatGPT بطريقة تتجاوز Cloudflare (يستخدم ChatGPT الحقيقي، وهو خفيف الوزن، ولكنه يعتمد على خوادم خارجية وله حدود للمعدلات).
تحتوي هاتان الطريقتان على واجهات برمجة تطبيقات متشابهة جدًا، لذا يجب أن يكون التبديل بينهما بسيطًا.
ملاحظة: نوصي بشدة باستخدام ChatGPTAPI
لأنه يستخدم واجهة برمجة التطبيقات المدعومة رسميًا من OpenAI. في إصدار مستقبلي، قد نتوقف عن دعم ChatGPTUnofficialProxyAPI
.
يستخدم مبدأ الطلب الوحدة الوظيفية التي توفرها chatgpt-api.
يمكنك استخدام Gitpod للتطوير عبر الإنترنت:
أو استنساخ التنمية المحلية واتبع الخطوات التالية:
# clone the project
git clone https://github.com/zhpd/chatgpt-plus.git
إذا لم تكن لديك بيئة git، فيمكنك تنزيل الحزمة المضغوطة مباشرةً وفك ضغطها وإدخال دليل المشروع.
تم تطوير هذا المشروع استنادًا إلى Node.js ويتطلب بيئة Node.js 14.0+. تأكد من أنك تستخدم
node >= 18
بحيث يكونfetch
متاحًا (أوnode >= 14
إذا قمت بتثبيت عملية جلب متعددة).
يستخدم هذا المشروع واجهة برمجة التطبيقات المقدمة رسميًا من OpenAI ويتطلب تطبيقًا لمفتاح API وAccessToken.
- عنوان طلب التسجيل الرسمي لـ OpenAI: https://platform.openai.com/، مطلوب الوصول العلمي إلى الإنترنت
- احصل على
ApiKey
أوAccessToken
من خلال طرق أخرى. انقر للعرض
بعد نجاح التطبيق، املأ APIKey وAccessToken في ملف chatgpt-plus/service/.env
يوصى باستخدام محرر VSCode للتطوير، وتثبيت المكونات الإضافية
ESLint
وPrettier
، وتشغيلFormat On Save
في الإعدادات.
قم بتكوين عنوان طلب المنفذ والواجهة في الدليل الجذر .env. يمكنك نسخ الملف .env.example مباشرة في الدليل الجذر للتعديل وتغيير اسم الملف إلى .env)
اسم متغير البيئة | القيمة الافتراضية | يوضح |
---|---|---|
PORT | 3000 | ميناء |
NEXT_PUBLIC_API_URL | http://localhost:3002 | عنوان الواجهة |
يمكنك نسخ الملف .env.example مباشرة في الدليل الجذر للتعديل وتغيير اسم الملف إلى .env
# port
PORT = 3000
# api url
NEXT_PUBLIC_API_URL = http://localhost:3002
# enter the project directory
cd chatgpt-plus
# install dependency
npm install
# develop
npm run dev
بعد بدء العملية بنجاح، يمكنك فتح http://localhost:3000 في المتصفح لعرض التأثير.
قم بتكوين المنفذ وApiKey وAccessToken في .env في دليل الخدمة.
اسم متغير البيئة | القيمة الافتراضية | يوضح |
---|---|---|
PORT | 3002 | ميناء |
OPENAI_API_KEY | - | API_KEY |
OPENAI_ACCESS_TOKEN | - | ACCESS_TOKEN |
API_REVERSE_PROXY | https://api.pawan.krd/backend-api/conversation | التمثيل |
TIMEOUT_MS | 60000 | المهلة بالمللي ثانية |
يمكنك نسخ ملف .env.example مباشرة في دليل الخدمة للتعديل وتغيير اسم الملف إلى .env
# service/.env
# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY =
# change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
OPENAI_ACCESS_TOKEN =
# Reverse Proxy default 'https://bypass.churchless.tech/api/conversation'
API_REVERSE_PROXY =
# timeout
TIMEOUT_MS = 100000
# enter the project directory
cd chatgpt-plus
# enter the service directory
cd service
# install dependency
npm install
# develop
npm run dev
بعد بدء العملية بنجاح، يمكن تشغيل الخدمة الخلفية بشكل طبيعي.
للنشر باستخدام Docker، تحتاج إلى تثبيت بيئة Docker
استخدم ملف التكوين الموجود في مجلد docker-compose لسحبه وتشغيله
استخدم Vercel للنشر، النشر بنقرة واحدة
API_URL
في ملف .env
في الدليل الجذر ليكون عنوان الشبكة العامة الفعلي لواجهة الواجهة الخلفيةnpm install
لتثبيت التبعياتnpm run build
لحزم التعليمات البرمجيةdist
إلى دليل前端服务
لموقع الويب الخاص بكdist
npm run start
لبدء الخدمة service
npm install
لتثبيت التبعياتnpm run build
لحزم التعليمات البرمجيةservice/dist
إلى دليل后端服务
لموقع الويب الخاص بكservice/dist
npm run start
لبدء الخدمةملاحظة : إذا كنت لا ترغب في الحزم، فيمكنك نسخ مجلد
service
مباشرةً إلى الخادم وتشغيلnpm install
وnpm run start
لبدء الخدمة.
يمكنك الوصول إليه عن طريق تكوين مفتاح OPENAI_API_KEY
للواجهة الخلفية Service.env:
# R OpenAI API Key
OPENAI_API_KEY =
يستخدم هذا المشروع واجهة برمجة التطبيقات المقدمة رسميًا من OpenAI. يتعين عليك التقدم بطلب للحصول على حساب OpenAI أولاً.
يمكنك الوصول إليه عن طريق تكوين رمز الوصول OPENAI_ACCESS_TOKEN
إلى الخدمة الخلفية.env:
# change this to an `accessToken` extracted from the ChatGPT
OPENAI_ACCESS_TOKEN =
تحتاج إلى الحصول على رمز وصول OpenAI من تطبيق الويب ChatGPT. يمكنك استخدام إحدى الطرق التالية، والتي تتطلب email
وكلمة password
وإرجاع رمز الوصول:
تعمل هذه المكتبات مع الحسابات التي تتم مصادقتها باستخدام البريد الإلكتروني وكلمة المرور (على سبيل المثال، لا تدعم الحسابات التي تمت مصادقتها باستخدام Microsoft/Google).
وبدلاً من ذلك، يمكنك الحصول يدويًا على accessToken
عن طريق تسجيل الدخول إلى تطبيق الويب ChatGPT وفتح https://chat.openai.com/api/auth/session
، والذي سيعيد كائن JSON يحتوي على سلسلة accessToken
الخاصة بك.
رموز الوصول صالحة لعدة أيام.
ملاحظة : سيؤدي استخدام الوكيل العكسي إلى كشف رمز الوصول الخاص بك لأطراف ثالثة. لن يكون لهذا أي آثار سلبية، لكن ضع في اعتبارك المخاطر قبل استخدام هذه الطريقة.
يمكنك تجاوز الوكيل العكسي عن طريق تكوين عنوان الوكيل API_REVERSE_PROXY
في الخدمة الخلفية.env:
# Reverse Proxy
API_REVERSE_PROXY =
تشمل الوكلاء العكسيين المعروفين الذين يديرهم أعضاء المجتمع ما يلي:
عكس عنوان URL للوكيل | مؤلف | حد المعدل | تاريخ آخر فحص |
---|---|---|---|
https://bypass.churchless.tech/api/conversation | @acheong08 | 5 مطلوب / 10 ثانية عن طريق IP | 24/03/2023 |
https://api.pawan.krd/backend-api/conversation | @باوان عثمان | 50 طلبًا / 15 ثانية (~3 دورة/ثانية) | 23/03/2023 |
ملاحظة: لم يتم حاليًا إصدار معلومات حول كيفية عمل الوكيل العكسي لمنع OpenAI من تعطيل الوصول.
س: إذا كنت أستخدم صفحة الواجهة الأمامية فقط، فأين يمكنني تغيير واجهة الطلب؟
ج: الحقل API_URL
في ملف .env
في الدليل الجذر.
س: لا يوجد تأثير الآلة الكاتبة على الواجهة الأمامية؟
ج: أحد الأسباب المحتملة هو أنه بعد تشغيل الوكيل العكسي لـ Nginx والمخزن المؤقت، سيحاول Nginx تخزين حجم معين من البيانات مؤقتًا من الواجهة الخلفية قبل إرسالها إلى المتصفح. يرجى محاولة إضافة proxy_buffering off;
بعد إيقاف المعلمة، ثم إعادة تحميل Nginx. تكوين خوادم الويب الأخرى هو نفسه.
شكرا لكل من ساهم!
إذا كنت تعتقد أن هذا المشروع مفيد لك، فيمكنك منحه نجمة ️ أو مشاركته مع أصدقائك. دعمك هو أكبر دافع لي!
معهد ماساتشوستس للتكنولوجيا © zhpd