Spaces:
Running
title: Maple Npc Generator
emoji: ๐
colorFrom: gray
colorTo: blue
sdk: static
pinned: false
๐ ๋ฉ์ดํ์คํ ๋ฆฌ NPC ์ฑ๊ฒฉ ๋ํ ์์ฑ๊ธฐ
MapleStory NPC Personality Dialogue Generator
Big Five ์ฑ๊ฒฉ ๋ชจ๋ธ ๊ธฐ๋ฐ LLM NPC ๋ํ ์์ฑ ์์คํ
A real-time NPC dialogue generation system powered by Gemini AI and the Big Five personality model.
๐ฎ ํ๋ก์ ํธ ์๊ฐ
20๋
๊ฐ ๊ฒ์์ฝํ
์ธ , ๋ ๋ฒจ๋์์ธ์ ๋ด๋นํ๋ฉฐ ์ฒด๊ฐํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
"์๊ฐ์ ๊ณต๋ค์ฌ ๋ง๋ ์ฝํ
์ธ ๊ฐ ๋จ ๋ฉฐ์น ๋ง์ ๊ณ ๊ฐ๋๋ค."
NPC ๋ํ๋ ๊ฒ์ ๋ชฐ์ ๊ฐ์ ํต์ฌ์ด์ง๋ง, ์๋ฐฑ ๋ช ์ NPC์๊ฒ ์ผ์ผ์ด ๊ฐ์ฑ ์๋ ๋์ฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ง๋ํ ๋ฆฌ์์ค๊ฐ ํ์ํฉ๋๋ค. ์ด ํ๋ก์ ํธ๋ ์ฌ๋ฆฌํ์ Big Five ์ฑ๊ฒฉ ๋ชจ๋ธ์ ๊ฒ์ NPC์ ์ ์ฉํ์ฌ, AI๊ฐ NPC์ ์ฑ๊ฒฉ์ ๋ง๋ ์์ฐ์ค๋ฌ์ด ๋ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์์ฑํ๋ ์์คํ ์ ๋๋ค.
"์ด๋ก ์ ๋์ด์ ์ค์ฒด โ ๊ฒ์ ๊ฐ๋ฐ ํ์ฅ์ ๋ฌธ์ ๋ฅผ AI๋ก ์ง์ ํด๊ฒฐํฉ๋๋ค."
๐ Live Demo
๐ https://maple-npc-generator.vercel.app/
์ฌ๋ผ์ด๋๋ก NPC์ Big Five ์ฑ๊ฒฉ ์์น๋ฅผ ์กฐ์ ํ๊ณ ,
์ค์๊ฐ์ผ๋ก ๋ฌ๋ผ์ง๋ ๋ํ ์คํ์ผ์ ์ง์ ์ฒดํํด๋ณด์ธ์.
๐ง Big Five ์ฑ๊ฒฉ ๋ชจ๋ธ (OCEAN)
์ฌ๋ฆฌํ์ ํ์ค ์ฑ๊ฒฉ ๋ชจ๋ธ์ NPC ๋ํ ์์ฑ์ ์ ์ฉํ์ต๋๋ค.
| ํน์ฑ | ์๋ฌธ | ๋ฎ์ ๋ | ๋์ ๋ |
|---|---|---|---|
| ๊ฐ๋ฐฉ์ฑ | Openness | ์ ํต์ , ํ์ค์ | ์ฐฝ์์ , ํธ๊ธฐ์ฌ ๋ง์ |
| ์ฑ์ค์ฑ | Conscientiousness | ์ฆํฅ์ , ์ ์ฐํจ | ์ฒด๊ณ์ , ์ฑ ์๊ฐ ๊ฐํจ |
| ์ธํฅ์ฑ | Extraversion | ์กฐ์ฉํจ, ๋ด์ฑ์ | ํ๋ฐํจ, ์ฌ๊ต์ |
| ์นํ์ฑ | Agreeableness | ์ง์ค์ , ๊ฒฝ์์ | ๊ณต๊ฐ์ , ํ๋ ฅ์ |
| ์ ๊ฒฝ์ฑ | Neuroticism | ์์ ์ , ์นจ์ฐฉํจ | ๊ฐ์ ์ , ์๋ฏผํจ |
๊ฐ ์์น๋ LLM ํ๋กฌํํธ์ personality ํ๋ผ๋ฏธํฐ๋ก ๋ณํ๋์ด Gemini์ ์ ๋ฌ๋ฉ๋๋ค.
์ ๊ฒฝ์ฑ(Neuroticism) ์์น๋ ๋ชจ๋ธ์ temperature ๊ฐ์๋ ์ง์ ๋ฐ์๋ฉ๋๋ค.
temperature = 0.7 + (neuroticism / 200)
๐๏ธ ์์คํ ์ํคํ ์ฒ
[์ฌ์ฉ์ ๋ธ๋ผ์ฐ์ ]
โ
โ POST /api/chat (NPC ์ค์ + Big Five ์์น + ๋ํ ํ์คํ ๋ฆฌ)
โผ
[Vercel Edge Function] โ GEMINI_API_KEY (์๋ฒ์๋ง ์กด์ฌ, ์ธ๋ถ ๋
ธ์ถ ์์)
โ
โ Streaming SSE
โผ
[Gemini 3 Flash Preview]
โ
โ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ ์๋ต
โผ
[์ฌ์ฉ์ ํ๋ฉด์ ํ์ดํ ํจ๊ณผ๋ก ์ถ๋ ฅ]
API ํค ๋ณด์: ํด๋ผ์ด์ธํธ ๋ฒ๋ค์ ํค๋ฅผ ํฌํจํ์ง ์๊ณ , Vercel ์๋ฒ์ฌ์ด๋ ํ๊ฒฝ๋ณ์๋ก๋ง ๊ด๋ฆฌํฉ๋๋ค.
๐ ๏ธ ๊ธฐ์ ์คํ
| ๋ถ๋ฅ | ๊ธฐ์ |
|---|---|
| Frontend | React 18, TypeScript, Vite, Tailwind CSS |
| AI | Google Gemini 3 Flash Preview (gemini-3-flash-preview) |
| ๋ฐฐํฌ | Vercel (Edge Functions) |
| ์ ๋๋ฉ์ด์ | Motion (Framer Motion) |
| ์์ด์ฝ | Lucide React |
๐ฆ ์ค์น ๋ฐ ์คํ
1. ๋ ํฌ์งํ ๋ฆฌ ํด๋ก
git clone https://github.com/Taewan627/maple-npc-generator.git
cd maple-npc-generator
2. ํจํค์ง ์ค์น
npm install
3. ํ๊ฒฝ๋ณ์ ์ค์
cp .env.example .env
.env ํ์ผ์ ์ด๊ณ Gemini API ํค ์
๋ ฅ:
GEMINI_API_KEY=AIza...
API ํค ๋ฐ๊ธ: Google AI Studio โ Get API key
4. ๋ก์ปฌ ์คํ
npm run dev
http://localhost:5173 ์ ์
๐ ํ๋ก์ ํธ ๊ตฌ์กฐ
โโโ api/
โ โโโ chat.ts # Vercel Edge Function (Gemini API ํธ์ถ, ํค ๋ณดํธ)
โโโ src/
โ โโโ App.tsx # ๋ฉ์ธ UI ์ปดํฌ๋ํธ
โ โโโ types.ts # Big Five ํ์
์ ์
โ โโโ services/
โ โ โโโ geminiService.ts # API Route ํธ์ถ ๋ฐ SSE ์คํธ๋ฆผ ํ์ฑ
โ โโโ data/
โ โโโ maple_knowledge.json # ๋ฉ์ดํ์คํ ๋ฆฌ ์ธ๊ณ๊ด ์ง์๋ฒ ์ด์ค
โโโ vercel.json # Vercel ๋ผ์ฐํ
์ค์
โโโ vite.config.ts # Vite ๋น๋ ์ค์
๐ฌ ๋ ผ๋ฌธ ์ฐ๊ตฌ ์ฐ๊ณ
์ด ํ๋ก์ ํธ๋ ๋ค์ ์ฐ๊ตฌ์ ์ค์ฆ ์์คํ (Proof of Concept) ์ผ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค.
"LLM ๊ธฐ๋ฐ ๊ฒ์ NPC ํ๋ฅด์๋์ ์ฑ๊ฒฉ ์ฐจ๋ณ์ฑ ๋ฐ ์ผ๊ด์ฑ ๊ฒ์ฆ์ ์ํ ์ ๋์ ํ๋ ์์ํฌ ์ฐ๊ตฌ: Big Five ๋ชจ๋ธ์ ์ค์ฌ์ผ๋ก"
KCI ๋ฑ์ฌ์ง| ํ๊ตญ ๋์งํธ์ฝํ ์ธ ํํ
์ฐ๊ตฌ ํต์ฌ ์ง๋ฌธ:
- Big Five ์์น ๋ณํ๊ฐ LLM ์ถ๋ ฅ์ ์ฑ๊ฒฉ ์ฐจ๋ณ์ฑ์ ์ ์๋ฏธํ ์ํฅ์ ์ฃผ๋๊ฐ?
- ๋์ผ NPC์ ๋ํ ๋ฐ๋ณต ์์ฑ ์ ์ฑ๊ฒฉ ์ผ๊ด์ฑ์ด ์ ์ง๋๋๊ฐ?
- ๊ฒ์ ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ์์ AI ๊ธฐ๋ฐ NPC ๋ํ ์์ฑ์ด ์ ์ ํจ์จ์ ๊ฐ์ ํ๋๊ฐ?
์ด ์์คํ ์ ์ ์ฐ๊ตฌ ๊ฐ์ค์ ๊ฒ์ฆํ๊ธฐ ์ํ A/B ํ ์คํธ ๋ฐ ์ฌ์ฉ์ ์คํ ํ๋ซํผ์ผ๋ก ํ์ฉ๋ฉ๋๋ค.
๐ค ๊ฐ๋ฐ์
๊นํ์ (Taewan Kim)
์๊ฐ๋ํ๊ต ๊ฐ์์ตํฉ ํ
ํฌ๋๋ก์ง ๋ฐ์ฌ๊ณผ์
- ๐ค HuggingFace: huggingface.co/devmeta
- ๐ GitHub: github.com/Taewan627
๐ License
MIT License