프로젝트 소개

Otaku는 SillyTavern이나 Janitor AI와 유사한 롤플레잉용 오픈 소스 LLM 프런트엔드입니다. 무료이며 macOS, Linux, Windows에서 로컬로 실행되며 Docker나 데이터베이스 서버와 같은 인프라가 필요하지 않습니다. 사용자는 웹 UI 또는 터미널 인터페이스를 통해 상호 작용할 수 있습니다. 이 애플리케이션은 로컬 LLM 백엔드(llama.cpp, KoboldCpp, Ollama, oMLX, LM Studio)와 클라우드 API 제공업체(OpenRouter, NanoGPT 및 모든 OpenAI 호환 서버)를 모두 지원합니다. 설치는 `uv` 패키지 관리자 또는 Homebrew를 사용하여 단일 명령으로 처리됩니다. 주요 기능은 다음과 같습니다: - **컨텍스트 제어**: 처음 20개와 마지막 150개 메시지를 그대로 전송하여 일관된 문체를 유지합니다. 중간 메시지는 자동으로 장면으로 분할되고 편집 가능한 요약으로 대체되어 긴 컨텍스트를 관리합니다. - **캐릭터 인식**: 스토리에 도입된 캐릭터를 자동으로 추출합니다. 각 캐릭터는 자신의 경험에 대한 개별 저널을 유지합니다. - **유연한 페르소나**: 사용자는 어떤 캐릭터로든 플레이할 수 있으며 `/me` 및 `/you` 명령을 사용하여 LLM에 캐릭터 역할을 안내할 수 있습니다. - **투명한 컨텍스트**: `/context` 명령을 통해 사용자는 LLM에 전송되는 내용을 정확히 확인할 수 있습니다. - **콘텐츠 가져오기**: SillyTavern 채팅, 일반 텍스트 파일(턴으로 분할), 캐릭터 카드(PNG 또는 JSON) 가져오기를 지원합니다. Lorebook은 시스템 메시지로 가져올 수 있습니다. - **스토리 관리**: 사용자는 스토리를 탐색하고, 모든 메시지에서 이어가거나, 스토리를 포크(fork)할 수 있습니다. 포크하면 모든 장면, 캐릭터, 저널이 새 브랜치로 복사됩니다. - **D&D 지원**: 주사위 굴리기를 위한 `/roll` 명령(예: `2d6+3`, `2d20kh1`)이 포함되어 있으며 결과와 행동을 함께 전송합니다. 데이터는 매일 스냅샷과 함께 SQLite 데이터베이스에 로컬로 저장됩니다. 저장 데이터 암호화(AES-256-GCM)는 선택 사항이며 설정을 통해 활성화할 수 있습니다. 제공업체 API 키는 항상 봉인되어 저장되며, 키는 OS 키체인에 보관됩니다. 설정 파일은 버전 간에 사용자 편집 내용을 보존하기 위해 정밀하게 관리되며, `OTAKU_CONFIG_DIR` 변수를 사용하여 별도의 환경을 실행할 수 있습니다.