Gemini API로 구동되는 캐릭터 롤플레잉 챗봇입니다. 하나의 세계관에 여러 캐릭터와 플레이어 캐릭터를 만들고, 각 조합별 대화, 자동 요약, 고정 기억을 유지하며 이야기를 이어 갑니다.
.env.example을 복사해.env.local로 이름을 바꾸고GEMINI_API_KEY를 입력합니다.npm run dev를 실행합니다.- 브라우저에서
http://localhost:3000을 엽니다.
- 홈의 캐릭터 생성에서 이야기 제목, 세계관, 여러 등장 캐릭터를 함께 저장합니다. 홈에서는 등장 캐릭터가 아닌 세계관 단위 패널로 표시됩니다.
- 세계관의
{user}표기는 플레이어가 추가한 캐릭터의 이름으로 대입되며, 플레이어 캐릭터의 상세 설정도 Gemini에 함께 전달됩니다. - 세계관 패널을 열면 플레이어 캐릭터를 새로 만들거나, 이전에 사용한 캐릭터를 선택할 수 있습니다.
- 같은 플레이어 캐릭터와 등장 캐릭터 조합을 다시 선택하면 독립 저장된 기존 대화를 이어서 엽니다.
- 사용자 발화 8회마다 Gemini가 해당 캐릭터 조합의 기존 요약과 최근 대화를 압축합니다.
- 각 캐릭터의 고정 기억은 자동 요약과 별개로 언제나 프롬프트에 포함됩니다.
- 모든 컬렉션과 대화는
data/story-collections.json에 저장됩니다.
npm run build && npm start로 Node.js 웹 호스팅 서비스에 배포할 수 있습니다. 현재 저장소는 로컬 파일 data/story-collections.json을 사용하므로, 여러 인스턴스 또는 서버리스 호스팅에서는 이 파일 저장소를 PostgreSQL, Supabase, Firebase 등 영속 데이터베이스로 교체해야 합니다. Gemini API 키는 반드시 호스팅 서비스의 서버 환경 변수 GEMINI_API_KEY로만 설정하고 브라우저에 노출하지 마세요.