عميل Node.js لواجهة برمجة تطبيقات Character AI غير الرسمية، وهو موقع ويب رائع يجلب الشخصيات إلى الحياة باستخدام الذكاء الاصطناعي!
هذا المستودع مستوحى من واجهة برمجة تطبيقات العقدة غير الرسمية لريتشارد دوريان. على الرغم من ذلك، وجدت أنه من الصعب استخدامه ولم يكن مستقرًا ومؤرشفًا حقًا. لذلك قمت بإعادة صياغته في جافا سكريبت.
لا يرتبط هذا المشروع بـ Character AI بأي شكل من الأشكال! إنه مشروع مجتمعي. الغرض من هذا المشروع هو جلب وبناء المشاريع المدعومة بـ Character AI.
إذا أعجبك هذا المشروع، يرجى مراجعة موقعه على الانترنت.
مكتوب بالكامل بلغة Javascript وCommonJS (للحصول على أقصى قدر من التوافق وسهولة الاستخدام)
الطلبات غير المتزامنة
استخدم المحادثات أو استخدم واجهة برمجة التطبيقات لجلب المعلومات
سهل الاستخدام
التنمية النشطة
دعم تسجيل الدخول للضيف والرمز المميز
تثبيت npm العقدة_characterai
مصادقة الضيف الأساسية والرسالة:
const CharacterAI = require("node_characterai");const CharacterAI = new CharacterAI();(async () => { // المصادقة كضيف (استخدم `.authenticateWithToken()` لاستخدام الحساب) في انتظار الحرفAI.authenticateAsGuest(); // ضع معرف شخصيتك هنا const CharacterId = "8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw"; // قم بإنشاء كائن دردشة للتفاعل مع المحادثة const chat = انتظار CharacterAI.createOrContinueChat(characterId); // أرسل رسالة استجابة const = انتظار chat.sendAndAwaitResponse("Hello discord mod!", true); console.log(response); // استخدم "response.text" لاستخدامه كسلسلة})();
تتطلب بعض أجزاء واجهة برمجة التطبيقات (مثل إدارة المحادثة) تسجيل الدخول باستخدام sessionToken
.
للحصول عليه، يمكنك فتح متصفحك، والانتقال إلى موقع Character.AI في localStorage
.
مهم
إذا كنت تستخدم إصدارات قديمة من الحزمة وتحصل على Authentication token is invalid
، فأنت الآن بحاجة مرة أخرى إلى sessionToken
للمصادقة (اعتبارًا من التحديث 1.2.5
والإصدارات الأحدث). انظر أدناه.
إذا كنت تستخدم شيئًا يستخدم الحزمة ولم يتم تحديثه إلى الإصدار الأحدث منذ فترة، فتأكد من تحديث الحزمة عن طريق القيام npm update node_characterai
أو نسخ الملفات يدويًا أو فتح مشكلة خاصة بحزمتها (إذا كان لديهم واحد).
افتح موقع Character.AI في متصفحك (https://beta.character.ai)
افتح أدوات المطور ( F12 أو Ctrl+Shift+I أو Cmd+J )
انتقل إلى علامة التبويب Application
انتقل إلى قسم Storage
وانقر على Local Storage
ابحث عن مفتاح char_token
افتح الكائن، وانقر بزر الماوس الأيمن على القيمة وانسخ رمز الجلسة الخاص بك.
افتح موقع Character.AI في متصفحك على الواجهة القديمة (https://old.character.ai/)
افتح شريط URL، واكتب javascript:
(حساس لحالة الأحرف) والصق ما يلي:
(function(){let e=window.localStorage["char_token"];if(!e){alert("تحتاج إلى تسجيل الدخول أولاً!");return;}let t=JSON.parse(e).value ;document.documentElement.innerHTML=`<div><i><p>مقدم بواسطة العقدة_characterai - <a href="https://github.com/realcoloride/node_characteraitab=readme-ov-file#using-an-access-token">انقر هنا لمزيد من المعلومات</a></p></i><p> هذا هو الرمز المميز لجلستك:</p><input value="${t}" readonly><p><strong>لا تشارك هذا مع أي شخص إلا إذا كنت تعرف ما تفعله. هذا هو الرمز المميز لجلستك الشخصية مسروقة أو طلبها شخص ما لك لا تثق، يمكنهم الوصول إلى حسابك دون موافقتك، إذا كان الأمر كذلك، يرجى إغلاق الصفحة على الفور.</strong></p><button id="copy" onclick="navigator.clipboard.writeText('${ t}'); تنبيه('تم النسخ إلى الحافظة!')">نسخ رمز الجلسة إلى الحافظة</button><button onclick="window.location.reload();">تحديث page</button></div>`;localStorageKey=null;storageInformation=null;t=null;})();
يجب أن تظهر الصفحة التالية:
انقر فوق الأزرار المعنية لنسخ رمز الوصول أو رمز المعرف إلى الحافظة الخاصة بك.
عند استخدام الحزمة يمكنك:
قم بتسجيل الدخول كضيف باستخدام authenticateAsGuest()
- للاستخدام الشامل أو لأغراض الاختبار
قم بتسجيل الدخول باستخدام حسابك أو باستخدام رمز مميز باستخدام authenticateWithToken()
- للحصول على الميزات الكاملة والرسائل غير المحدودة
يمكنك العثور على معرف شخصيتك في عنوان URL لصفحة الدردشة الخاصة بالشخصية.
على سبيل المثال، إذا ذهبت إلى صفحة الدردشة الخاصة بشخصية Discord Moderator
فسترى عنوان URL https://beta.character.ai/chatchar=8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw
.
الجزء الأخير من عنوان URL هو معرف الحرف:
️ يتمتع الذكاء الاصطناعي للشخصية بالقدرة على إنشاء الصور وتفسيرها في المحادثة. تقوم بعض الشخصيات ببناء هذا المفهوم في أحرف خاصة، أو ربما تستخدمه للتعرف على الصور، أو للتفاعل مع الشخصية وإعطائها تفاصيل أكثر عن شيء ما: الاحتمالات لا حصر لها .
يمكن استخدام معظم ميزات صور Character AI على النحو التالي:
// ستعيد لك معظم هذه الوظائف عنوان URL إلى imageawait chat.generateImage("الدلافين تسبح في المياه الخضراء");await chat.uploadImage("https://www.example.com/image.jpg");await chat.uploadImage("./photos/image.jpg");// الأنواع الأخرى المدعومة هي المخازن المؤقتة، والتدفقات القابلة للقراءة، ومسارات الملفات، وURLsawait chat.uploadImage(imageBuffer);// بما في ذلك المسار النسبي للصورة هو ضروري لتحميل صورة في انتظار الدردشة.sendAndAwaitResponse({ النص: "ماذا يوجد في هذه الصورة"، image_rel_path: "https://www.example.com/coffee.jpg"، image_description: "هذه قهوة.", image_description_type: "HUMAN" // اضبط هذا إذا كنت تقول يدويًا ما يبحث عنه الذكاء الاصطناعي}, true);
الدعائم ل @creepycats لتنفيذ معظم هذه الأشياء
مشكلة | إجابة |
---|---|
الرمز المميز كان غير صالح | تأكد من أن الرمز المميز الخاص بك صالح بالفعل وأنك قمت بنسخ الرمز المميز الخاص بك بالكامل (وهو طويل جدًا) أو أنك لم تقم بتحديث الحزمة. |
في معظم الأنظمة، سيحدد محرك الدمى موقع Chromium تلقائيًا. لكن في بعض التوزيعات، يجب تحديد المسار يدويًا. يحدث هذا التحذير إذا لم يتمكن node_characterai من تحديد موقع Chromium على نظام التشغيل Linux ( /usr/bin/chromium-browser )، وسوف يحدث خطأ إذا لم يتمكن محرك الدمى من تحديد موقعه تلقائيًا. انظر هذا للإصلاح. | |
لماذا يتم فتح عمليات الكروم | هذا لأنه اعتبارًا من الوقت الحالي، فإن عملية الجلب البسيطة معطلة وأنا أستخدم محرك الدمى (مكتبة التحكم في متصفح الكروم) للالتفاف حول قيود cloudflare. |
authenticateAsGuest() لا يعمل | راجع العدد رقم 14. |
ضرب الحد الأقصى لعدد الرسائل | للأسف، لا تحتوي حسابات الضيوف إلا على كمية محدودة من الرسائل قبل أن تصبح محدودة وتُجبر على تسجيل الدخول. انظر أدناه لمزيد من المعلومات |
كيفية استخدام حساب للاستخدام الجماعي للمكتبة | يمكنك استخدام المحادثات ، وهي ميزة تم تقديمها في 1.0.0 ، لتخصيصها للمستخدمين والقنوات. لإعادة إنتاج محادثة، استخدم OOC (خارج نطاق الشخصية) لجعل الذكاء الاصطناعي يعتقد أنك مع عدة أشخاص. انظر مثالا هنا: (إخلاء المسؤولية: في بعض الشخصيات، ستجعلهم شخصيتهم يتجاهلون أي طلب من OOC). |
كيف أتجنب التزامن والأعطال عند استخدام أكثر من طلب في نفس الوقت | تحقق من الحل الذي وجدته @SeoulSKY هنا باستخدام async-mutex . |
هل هذا رسمي | لا، هذا المشروع من صنع أحد محبي الموقع وهو غير رسمي. لدعم المطورين، يرجى مراجعة موقعهم على الانترنت . |
لقد فعلت شيئًا رائعًا باستخدام node_characterai | أخبرونى من فضلكم! |
✉️ تريد الاتصال بي | انظر ملفي الشخصي |
☕ هل تريد دعمي | يمكنك أن ترسل لي القهوة على ko.fi: https://ko-fi.com/coloride. شكرا جزيلا! |
لديك فكرة | افتح مشكلة في علامة التبويب "المشاكل". |
➕ قضية أخرى | افتح مشكلة في علامة التبويب "المشاكل". |
في فئة Client
، يمكنك الوصول إلى فئة Requester
وتحديد محرك الدمى أو المتغيرات الأخرى المتعلقة بكيفية عمل CharacterAI باستخدام characterAI.requester.(property)
. كما أن أي شيء هنا عرضة للتغيير، لذا تأكد من تحديث الحزمة بشكل متكرر.
قم بتغيير الخاصية .usePlus
من الطالب، وإذا لزم الأمر، قم بتغيير .forceWaitingRoom
.
على سبيل المثال:
// الافتراضي هو `false`characterAI.requester.usePlus = true;
منذ بضعة أشهر تقريبًا، كانت الحزمة تتطلب فقط وحدة node-fetch
لتشغيلها. تم إنشاء الحزمة باستخدام طلبات API البسيطة.
ومع ذلك، مع مرور الوقت، بدأت Cloudflare في محاربة عمليات التجريد والروبوتات، مما جعل من المستحيل تقريبًا على أي شخص استخدام هذه الحزمة.
هذا هو المكان الذي يتم فيه استخدام محرك الدمى (الذي يستخدم متصفح الكروم) في الإصدار 1.1 والإصدارات الأحدث لتقديم الطلبات باستخدام واجهة برمجة التطبيقات (API).
هام: قم بإجراء التغييرات قبل تهيئة العميل الخاص بك!
في فئة CharacterAI، يمكنك الوصول إلى الطالب وتحديد المتغير .puppeteerPath
أو الوسائط الأخرى، وتشمل الخصائص (وهي عرضة للتغيير في الإصدارات المستقبلية) :
// مسار Chromium القابل للتنفيذ (في بعض توزيعات Linux، /usr/bin/chromium-browser)puppeteerPath;// الوسائط الافتراضية عند إطلاق المتصفح puppeteerLaunchArgs;// يمثل الرقم المنطقي المهلة الافتراضية (الافتراضي هو 30000 مللي ثانية)puppeteerNoDefaultTimeout;// يمثل الرقم مهلة البروتوكول الافتراضية محرك الدمىProtocolTimeout؛
بالنسبة لمستخدمي Linux، إذا لم يكتشف محرك الدمى لديك المسار إلى Chromium تلقائيًا، فستحتاج إلى تحديده يدويًا.
للقيام بذلك، تحتاج فقط إلى تعيين puppeteerPath
على مسار Chromium الخاص بك:
CharacterAI.puppeteerPath = "/path/to/chromium-browser";
في نظام التشغيل Linux، يمكنك استخدام which
للعثور على مكان تثبيت Chromium:
$ أي متصفح chromium # أو أي أمر تستخدمه لتشغيل chrome
أوصي بتحديث هذه الحزمة بشكل متكرر لإصلاح الأخطاء والإضافات الجديدة.
إذا كانت لديك مشكلة أو فكرة، فأخبرني بها في قسم المشكلات .
إذا كنت تستخدم واجهة برمجة التطبيقات هذه، فإنك تلتزم أيضًا بشروط استخدام موقع الويب الخاص بهم.
(حقيقي) كولورايد - 2023-2024، مرخص من معهد ماساتشوستس للتكنولوجيا.