AI로 캐릭터에 생명을 불어넣는 멋진 웹사이트인 비공식 Character AI API용 Node.js 클라이언트입니다!
이 저장소는 RichardDorian의 비공식 노드 API에서 영감을 받았습니다. 하지만 사용하기가 어려웠고 실제로 안정적이지 않고 보관되지도 않았습니다. 그래서 자바스크립트로 다시 만들었습니다.
이 프로젝트는 어떤 식으로든 캐릭터 AI와 관련이 없습니다! 커뮤니티 프로젝트입니다. 이 프로젝트의 목적은 Character AI를 기반으로 하는 프로젝트를 가져오고 구축하는 것입니다.
이 프로젝트가 마음에 드신다면 해당 웹사이트를 확인해 보세요.
Javascript 및 CommonJS로 완전히 작성됨(호환성과 사용 편의성 극대화)
비동기식 요청
대화를 사용하거나 API를 사용하여 정보를 가져옵니다.
사용하기 쉬움
활발한 개발
게스트 및 토큰 로그인 지원
npm 설치 node_characterai
기본 게스트 인증 및 메시지:
const CharacterAI = require("node_characterai");const CharacterAI = new CharacterAI();(async () => { // 게스트로 인증(계정을 사용하려면 `.authenticateWithToken()` 사용) CharacterAI.authenticateAsGuest()를 기다립니다. // 여기에 캐릭터 ID를 입력하세요. const charId = "8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw"; // 대화와 상호작용할 chat 객체를 생성합니다. const chat = CharacterAI.createOrContinueChat(characterId)를 기다립니다. // 메시지 보내기 const response = chat.sendAndAwaitResponse("안녕하세요 디스코드 모드!", true); console.log(응답); // 문자열로 사용하려면 `response.text`를 사용하세요.})();
API의 일부 부분(예: 대화 관리)에서는 sessionToken
을 사용하여 로그인해야 합니다.
이를 얻으려면 브라우저를 열고 localStorage
의 Character.AI 웹사이트로 이동하세요.
중요한
이전 버전의 패키지를 사용 중이고 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
키를 찾으세요
개체를 열고 값을 마우스 오른쪽 버튼으로 클릭한 후 세션 토큰을 복사합니다.
OLD 인터페이스(https://old.character.ai/)의 브라우저에서 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>node_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}'); Alert(' 클립보드에 복사되었습니다!')">세션 토큰을 클립보드에 복사</button><button onclick="window.location.reload();">새로고침 페이지</button></div>`;localStorageKey=null;storageInformation=null;t=null;})();
다음 페이지가 나타나야 합니다:
해당 버튼을 클릭하여 액세스 토큰 또는 ID 토큰을 클립보드에 복사하세요.
패키지를 사용하면 다음을 수행할 수 있습니다.
authenticateAsGuest()
사용하여 게스트로 로그인 - 대량 사용 또는 테스트 목적
전체 기능과 무제한 메시징을 위해 authenticateWithToken()
을 사용하여 계정이나 토큰으로 로그인하세요.
캐릭터 채팅 페이지의 URL에서 캐릭터 ID를 확인할 수 있습니다.
예를 들어 Discord Moderator
캐릭터의 채팅 페이지로 이동하면 https://beta.character.ai/chatchar=8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw
URL이 표시됩니다.
URL의 마지막 부분은 문자 ID입니다.
️ 캐릭터 AI는 대화에서 이미지를 생성하고 해석하는 능력을 가지고 있습니다. 일부 캐릭터는 이 개념을 특수 문자에 기초하거나 이미지를 인식하는 데 사용하거나 캐릭터와 상호 작용하고 무언가에 대한 자세한 내용을 제공하는 데 사용할 수 있습니다. 가능성은 무한합니다 .
대부분의 Character AI 이미지 기능은 다음과 같이 사용할 수 있습니다.
// 이러한 함수의 대부분은 이미지에 대한 URL을 반환합니다await chat.generateImage("dolphins Swimming in green water");await chat.uploadImage("https://www.example.com/image.jpg");await chat.uploadImage("./photos/image.jpg");// 기타 지원되는 유형은 버퍼, 읽기 가능한 스트림, 파일 경로 및 URL입니다. chat.uploadImage(imageBuffer);// 이미지 상대 경로 포함 이미지를 업로드하려면 필요합니다. chat.sendAndAwaitResponse({ text: "이 이미지에는 무엇이 들어있나요?", image_rel_path: "https://www.example.com/coffee.jpg", image_description: "이것은 커피입니다.", image_description_type: "HUMAN" // AI가 보고 있는 것을 수동으로 말하는 경우 설정합니다}, true);
이 항목의 대부분을 구현하는 데 @creepycats를 추천합니다.
문제 | 답변 |
---|---|
토큰이 유효하지 않습니다 | 토큰이 실제로 유효한지, 전체 토큰(꽤 길음)을 복사했거나 패키지를 업데이트하지 않았는지 확인하세요. |
대부분의 시스템에서 인형 조종자는 Chromium을 자동으로 찾습니다. 그러나 특정 배포판에서는 경로를 수동으로 지정해야 합니다. 이 경고는 node_characterai Linux( /usr/bin/chromium-browser )에서 Chromium을 찾을 수 없는 경우 발생하며 Puppeteer가 자동으로 Chromium을 찾을 수 없는 경우 오류가 발생합니다. 수정하려면 이것을 참조하십시오. | |
크롬 프로세스가 열리는 이유 | 이는 현재 단순 가져오기 기능이 깨져서 puppeteer(크롬 브라우저 제어 라이브러리)를 사용하여 cloudflare의 제한 사항을 우회하기 때문입니다. |
authenticateAsGuest() 작동하지 않습니다 | 문제 #14를 참조하세요. |
최대 메시지 수에 도달했습니다. | 안타깝게도 게스트 계정에는 제한된 양의 메시지만 있으며 제한되어 강제로 로그인됩니다. 자세한 내용은 아래를 참조하세요. |
도서관 대량 이용을 위한 계정 이용 방법 | 1.0.0 에 도입된 기능인 대화 를 사용하여 사용자 및 채널에 할당할 수 있습니다. 대화를 재현하려면 OOC(Out of Character)를 사용하여 AI가 여러 사람과 함께 있다고 생각하도록 만듭니다. 여기에서 예를 참조하세요. (면책 조항: 일부 캐릭터의 경우 성격으로 인해 OOC 요청을 무시하게 됩니다.) |
한 번에 두 개 이상의 요청을 사용할 때 동시성과 충돌을 방지하려면 어떻게 해야 합니까? | async-mutex 사용하여 여기에서 @SeoulSKY가 찾은 솔루션을 확인하세요. |
이거 공식인가요? | 아니요, 이 프로젝트는 해당 웹사이트의 팬이 만든 것으로 비공식적입니다. 개발자를 지원하려면 해당 웹사이트를 확인하세요 . |
node_characterai 로 멋진 일을 했습니다 | 알려주세요! |
✉️ 연락하고 싶어요 | 내 프로필 보기 |
? 응원하고 싶어요 | ko.fi(https://ko-fi.com/coloride)에서 커피를 보내실 수 있습니다. 정말 감사합니다! |
아이디어를 가지세요 | 이슈 탭에서 이슈 열기 |
➕ 기타 문제 | 이슈 탭에서 이슈 열기 |
Client
클래스에서 Requester
클래스에 액세스하고 characterAI.requester.(property)
사용하여 CharacterAI가 작동하는 방식과 관련된 puppeteer 또는 기타 변수를 정의할 수 있습니다. 또한 여기에 있는 내용은 변경될 수 있으므로 패키지를 자주 업데이트하세요.
요청자의 .usePlus
속성을 변경하고 필요한 경우 .forceWaitingRoom
변경합니다.
예를 들어:
// 기본값은 `false`입니다.characterAI.requester.usePlus = true;
약 몇 달 전만 해도 패키지를 실행하려면 node-fetch
모듈만 필요했습니다. 패키지는 간단한 API 요청을 사용하여 만들어졌습니다.
그러나 시간이 지남에 따라 Cloudflare는 스크래핑 및 봇과 싸우기 시작했으며 이로 인해 누구나 이 패키지를 사용하는 것이 거의 불가능해졌습니다.
버전 1.1 이상에서는 API로 요청하기 위해 Puppeteer(크롬 브라우저 사용)가 사용됩니다.
중요: 클라이언트를 초기화하기 전에 변경을 수행하십시오!
CharacterAI 클래스에서 요청자에 액세스하고 .puppeteerPath
변수 또는 기타 인수를 정의할 수 있으며 속성에는 다음이 포함됩니다 (향후 버전에서 변경될 수 있음) .
// Chromium 실행 경로(일부 Linux 배포판에서는 /usr/bin/chromium-browser)puppeteerPath;// 브라우저가 시작될 때의 기본 인수puppeteerLaunchArgs;// 기본 시간 제한을 나타내는 부울(기본값은 30000ms)puppeteerNoDefaultTimeout;// 나타내는 숫자 기본 프로토콜 timeoutpuppeteerProtocolTimeout;
Linux 사용자의 경우 인형극이 Chromium 경로를 자동으로 감지하지 못하는 경우 수동으로 지정해야 합니다.
이렇게 하려면 puppeteerPath
Chromium 경로로 설정하면 됩니다.
CharacterAI.puppeteerPath = "/path/to/chromium-browser";
Linux에서는 which
명령을 사용하여 Chromium이 설치된 위치를 찾을 수 있습니다.
$ chromium-browser # 또는 Chrome을 시작하는 데 사용하는 모든 명령
버그 수정 및 새로운 추가 사항을 위해 이 패키지를 자주 업데이트하는 것이 좋습니다.
문제나 아이디어가 있는 경우 문제 섹션에 알려주시기 바랍니다.
이 API를 사용하면 해당 웹사이트의 사용 약관도 준수하게 됩니다.
(실제)coloride - 2023-2024, MIT 라이선스.