Klien Node.js untuk Character AI API tidak resmi, situs web luar biasa yang menghidupkan karakter dengan AI!
Repositori ini terinspirasi oleh API simpul tidak resmi RichardDorian. Meskipun demikian, saya merasa sulit untuk menggunakannya dan tidak terlalu stabil serta tidak diarsipkan. Jadi saya membuatnya ulang dalam javascript.
Proyek ini tidak berafiliasi dengan Karakter AI dengan cara apa pun! Ini adalah proyek komunitas. Tujuan dari proyek ini adalah untuk menghadirkan dan membangun proyek yang didukung oleh Character AI.
Jika Anda menyukai proyek ini, silakan periksa situs web mereka.
Sepenuhnya ditulis dalam Javascript dan CommonJS (untuk kompatibilitas maksimal dan kemudahan penggunaan)
Permintaan asinkron
Gunakan percakapan atau gunakan API untuk mengambil informasi
Mudah digunakan
Perkembangan aktif
Dukungan login tamu & token
npm instal node_characterai
Otentikasi dan pesan tamu dasar:
const CharacterAI = memerlukan("node_characterai");const characterAI = new CharacterAI();(async() => { // Mengautentikasi sebagai tamu (gunakan `.authenticateWithToken()` untuk menggunakan akun) menunggu characterAI.authenticateAsGuest(); // Tempatkan id karaktermu di sini const characterId = "8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw"; // Membuat objek obrolan untuk berinteraksi dengan percakapan const chat = menunggu characterAI.createOrContinueChat(characterId); // Kirim pesan const respon = menunggu chat.sendAndAwaitResponse("Halo mod perselisihan!", benar); console.log(respon); // Gunakan `response.text` untuk menggunakannya sebagai string})();
Beberapa bagian API (seperti mengelola percakapan) mengharuskan Anda masuk menggunakan sessionToken
.
Untuk mendapatkannya, Anda bisa membuka browser Anda, masuk ke website Character.AI di localStorage
.
Penting
Jika Anda menggunakan paket versi lama dan mendapatkan Authentication token is invalid
, Anda sekarang memerlukan sessionToken
lagi untuk mengautentikasi (mulai pembaruan 1.2.5
dan lebih tinggi). Lihat di bawah.
Jika Anda menggunakan sesuatu yang menggunakan paket dan sudah lama tidak memperbarui ke versi terbaru, pastikan untuk memperbarui paket dengan melakukan npm update node_characterai
atau menyalin file secara manual atau membuka masalah terkait pada paketnya (jika ada) satu).
Buka situs web Character.AI di browser Anda (https://beta.character.ai)
Buka alat pengembang ( F12 , Ctrl+Shift+I , atau Cmd+J )
Buka tab Application
Buka bagian Storage
dan klik Local Storage
Cari kunci char_token
Buka objek, klik kanan pada nilai dan salin token sesi Anda.
Buka situs web Character.AI di browser Anda pada antarmuka LAMA (https://old.character.ai/)
Buka bilah URL, tulis javascript:
(peka huruf besar-kecil) dan tempel yang berikut ini:
(function(){let e=window.localStorage["char_token"];if(!e){alert("Anda harus login terlebih dahulu!");return;}let t=JSON.parse(e).value ;document.documentElement.innerHTML=`<div><i><p>disediakan oleh node_characterai - <a href="https://github.com/realcoloride/node_characteraitab=readme-ov-file#using-an-access-token">klik di sini untuk informasi lebih lanjut</a></p></i><p> Ini token sesi Anda:</p><input value="${t}" readonly><p><strong>Jangan bagikan ini dengan siapa pun kecuali Anda tahu apa yang Anda lakukan! Ini adalah token sesi pribadi Anda dicuri atau diminta oleh seseorang yang tidak Anda percayai, mereka dapat mengakses akun Anda tanpa persetujuan Anda; jika demikian, harap segera tutup halaman tersebut.</strong></p><button id="copy" onclick="navigator.clipboard.writeText('${t}'); alert('Disalin ke clipboard!')">Salin token sesi ke clipboard</button><button onclick="window.location.reload();">Segarkan halaman</button></div>`;localStorageKey=null;storageInformation=null;t=null;})();
Halaman berikut akan muncul:
Klik tombol masing-masing untuk menyalin token akses atau token id Anda ke clipboard Anda.
Saat menggunakan paket ini, Anda dapat:
Masuk sebagai tamu menggunakan authenticateAsGuest()
- untuk penggunaan massal atau tujuan pengujian
Masuk dengan akun Anda atau token menggunakan authenticateWithToken()
- untuk fitur lengkap dan pengiriman pesan tanpa batas
Anda dapat menemukan ID karakter Anda di URL halaman obrolan Karakter.
Misalnya, jika Anda membuka halaman obrolan karakter Discord Moderator
Anda akan melihat URL https://beta.character.ai/chatchar=8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw
.
Bagian terakhir dari URL adalah ID karakter:
️ Karakter AI memiliki kemampuan untuk menghasilkan dan menafsirkan gambar dalam percakapan. Beberapa karakter mendasarkan konsep ini ke dalam karakter khusus, atau mungkin menggunakannya untuk mengenali gambar, atau untuk berinteraksi dengan karakter dan memberikan detail lebih lanjut tentang sesuatu: kemungkinannya tidak terbatas .
Sebagian besar fitur gambar Karakter AI dapat digunakan seperti ini:
// Sebagian besar fungsi ini akan mengembalikan Anda URL ke imageawait chat.generateImage("lumba-lumba berenang di air hijau");await chat.uploadImage("https://www.example.com/image.jpg");await chat.uploadImage("./photos/image.jpg");// Jenis lain yang didukung adalah Buffer, Aliran yang Dapat Dibaca, Jalur File, dan URLsawait chat.uploadImage(imageBuffer);// Diperlukan penyertaan jalur relatif gambar untuk unggah gambarmenunggu obrolan.sendAndAwaitResponse({ teks: "Apa yang ada di gambar ini", image_rel_path: "https://www.example.com/coffee.jpg", image_description: "Ini kopi.", image_description_type: "MANUSIA" // Setel ini jika Anda secara manual mengatakan apa yang dilihat AI}, true);
Alat peraga untuk @creepycats untuk mengimplementasikan sebagian besar hal ini
Masalah | Menjawab |
---|---|
Token tidak valid | Pastikan token Anda benar-benar valid dan Anda menyalin seluruh token Anda (cukup panjang) atau, Anda belum memperbarui paketnya. |
Pada sebagian besar sistem, dalang akan secara otomatis menemukan lokasi Chromium. Namun pada distribusi tertentu, jalurnya harus ditentukan secara manual. Peringatan ini terjadi jika node_characterai tidak dapat menemukan Chromium di linux ( /usr/bin/chromium-browser ), dan akan error jika dalang tidak dapat menemukannya secara otomatis. Lihat ini untuk perbaikan. | |
Mengapa proses kromium terbuka | Ini karena saat ini, pengambilan sederhana rusak dan saya menggunakan dalang (perpustakaan kontrol browser chromium) untuk mengatasi batasan cloudflare. |
authenticateAsGuest() tidak berfungsi | Lihat edisi #14. |
Capai jumlah pesan maksimal | Sayangnya, akun tamu hanya memiliki jumlah pesan yang terbatas sebelum dibatasi dan dipaksa untuk login. Lihat di bawah untuk informasi lebih lanjut |
Cara menggunakan akun untuk menggunakan perpustakaan secara massal | Anda dapat menggunakan percakapan , sebuah fitur yang diperkenalkan di 1.0.0 , untuk menetapkan ke pengguna dan saluran. Untuk mereproduksi percakapan, gunakan OOC (di luar karakter) untuk membuat AI mengira Anda sedang bersama banyak orang. Lihat contohnya di sini: (Penafian: pada beberapa karakter, kepribadiannya akan membuat mereka mengabaikan permintaan OOC apa pun). |
Bagaimana cara menghindari konkurensi dan crash saat menggunakan lebih dari satu permintaan dalam satu waktu | Periksa solusi yang ditemukan oleh @SeoulSKY di sini menggunakan async-mutex . |
Apakah ini resmi | Tidak, proyek ini dibuat oleh penggemar situs web dan tidak resmi. Untuk mendukung pengembang, silakan periksa situs web mereka . |
Melakukan sesuatu yang luar biasa dengan node_characterai | Tolong beritahu saya! |
✉️ Ingin menghubungi saya | Lihat profil saya |
☕ Ingin mendukung saya | Anda dapat mengirimi saya kopi di ko.fi: https://ko-fi.com/coloride. Terima kasih banyak! |
Punya ide | Buka masalah di tab Masalah |
➕ Masalah lainnya | Buka masalah di tab Masalah |
Di kelas Client
, Anda dapat mengakses kelas Requester
dan menentukan dalang atau variabel lain yang terkait dengan cara kerja CharacterAI menggunakan characterAI.requester.(property)
. Selain itu, apa pun di sini dapat berubah, jadi pastikan untuk sering memperbarui paket.
Ubah properti .usePlus
dari pemohon dan jika perlu, ubah .forceWaitingRoom
.
Misalnya:
// Defaultnya adalah `false`characterAI.requester.usePlus = true;
Sekitar beberapa bulan yang lalu, paket tersebut hanya memerlukan modul node-fetch
untuk dijalankan. Paket ini dibuat menggunakan permintaan API sederhana.
Namun, seiring berjalannya waktu, Cloudflare mulai berjuang melawan scraping dan bot, yang juga membuat hampir mustahil bagi siapa pun untuk menggunakan paket ini.
Di sinilah di versi 1.1 dan lebih tinggi, dalang digunakan (yang menggunakan browser chromium) untuk membuat permintaan dengan API.
PENTING: lakukan perubahan sebelum Anda menginisialisasi klien Anda!
Di kelas CharacterAI, Anda dapat mengakses pemohon dan menentukan variabel .puppeteerPath
atau argumen lainnya, dan propertinya mencakup (dan dapat berubah di versi mendatang) :
// Jalur Chromium yang dapat dieksekusi (di beberapa distribusi linux, /usr/bin/chromium-browser)puppeteerPath;// Argumen default ketika browser meluncurkanpuppeteerLaunchArgs;// Boolean mewakili batas waktu default (default adalah 30000ms)puppeteerNoDefaultTimeout;// Angka mewakili batas waktu protokol defaultpuppeteerProtocolTimeout;
Untuk pengguna linux, jika dalang Anda tidak secara otomatis mendeteksi jalur ke Chromium, Anda perlu menentukannya secara manual.
Untuk melakukan ini, Anda hanya perlu menyetel puppeteerPath
ke jalur Chromium Anda:
characterAI.puppeteerPath = "/path/ke/chromium-browser";
Di Linux, Anda dapat menggunakan perintah which
untuk menemukan di mana Chromium diinstal:
$ browser kromium mana # atau perintah apa pun yang Anda gunakan untuk meluncurkan chrome
Saya menyarankan Anda untuk sering memperbarui paket ini untuk perbaikan bug dan penambahan baru.
Jika Anda mempunyai masalah atau ide, beri tahu saya di bagian Masalah .
Jika Anda menggunakan API ini, Anda juga terikat pada ketentuan penggunaan situs web mereka.
(asli) coloride - 2023-2024, Berlisensi MIT.