CoolFace
Apppublic

minjin1/mbti

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes
App README

๐Ÿ“š MBTI Book Talk

Claude AI๋กœ ์ œ์ž‘ํ•œ MBTI ์„ฑ๊ฒฉ ์œ ํ˜•๋ณ„ ๋„์„œ ์ถ”์ฒœ ์›น์•ฑ

Live โ†’ minjin1-mbti.hf.space  |  GitHub โ†’ github.com/kmj95731-ux/mbti

๐Ÿค– Claude AI๋กœ ๋งŒ๋“ค์–ด์ง„ ์•ฑ

์ด ์›น์•ฑ์€ Claude Code (Anthropic์˜ AI ๊ฐœ๋ฐœ ๋„๊ตฌ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ๋‚ด์šฉ
๊ฐœ๋ฐœ ๋„๊ตฌClaude Code CLI (claude-sonnet-4-6 ๋ชจ๋ธ)
๊ฐœ๋ฐœ ๋ฐฉ์‹์ž์—ฐ์–ด๋กœ ๊ธฐ๋Šฅ์„ ์„ค๋ช… โ†’ Claude๊ฐ€ ์ฝ”๋“œ ์ž‘์„ฑยท์ˆ˜์ •ยท๋””๋ฒ„๊น… ์ˆ˜ํ–‰
ํ…Œ์ŠคํŠธPlaywright ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ํ…Œ์ŠคํŠธ๋„ Claude๊ฐ€ ์ง์ ‘ ์ž‘์„ฑ ๋ฐ ์‹คํ–‰
๋ฐฐํฌGitHub โ†’ HuggingFace Spaces ์ž๋™ ๋™๊ธฐํ™” (GitHub Actions)

๐Ÿ—๏ธ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €                        โ”‚
โ”‚               index.html  (๋‹จ์ผ ํŽ˜์ด์ง€ ์•ฑ)                  โ”‚
โ”‚    MBTI ๊ฒ€์‚ฌ / ๋„์„œ๊ฒ€์ƒ‰ / ํ๋ ˆ์ด์…˜ / ์‚ฌ์„œ Q&A              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚  HTTP API
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              FastAPI ์„œ๋ฒ„  (Python, ํฌํŠธ 7860)              โ”‚
โ”‚                                                            โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ search_      โ”‚  โ”‚ semantic_    โ”‚  โ”‚  claude_       โ”‚  โ”‚
โ”‚  โ”‚ engine.py    โ”‚  โ”‚ engine.py    โ”‚  โ”‚  chat.py       โ”‚  โ”‚
โ”‚  โ”‚ (ํ•˜์ด๋ธŒ๋ฆฌ๋“œ)  โ”‚  โ”‚ (์ž„๋ฒ ๋”ฉ)     โ”‚  โ”‚  (AI ์‚ฌ์„œ)     โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜            โ”‚
โ”‚                            โ”‚                               โ”‚
โ”‚         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”           โ”‚
โ”‚         โ”‚      SQLite DB  (์‚ฌ์„œ Q&A 5,905๊ฑด)   โ”‚           โ”‚
โ”‚         โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ”‚  ์™ธ๋ถ€ API ์—ฐ๋™
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ–ผ              โ–ผ                  โ–ผ
  ๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€     ์•Œ๋ผ๋”˜ TTB        Google Books
   Open API          ๋„์„œ ๊ฒ€์ƒ‰          ๋„์„œ ๊ฒ€์ƒ‰
  (์‚ฌ์„œ Q&A DB)    (ํ‘œ์ง€ยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐ)  (๋ณด์กฐ ๊ฒ€์ƒ‰)

โœจ ์ฃผ์š” ๊ธฐ๋Šฅ 4๊ฐ€์ง€

1. ๐Ÿ” MBTI ๊ฒ€์‚ฌ

  • โ€”20๋ฌธํ•ญ ์„ฑ๊ฒฉ ์œ ํ˜• ๊ฒ€์‚ฌ โ†’ MBTI 16๊ฐ€์ง€ ์œ ํ˜• ๊ฒฐ์ •
  • โ€”๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋งž์ถค ๋„์„œ ํ๋ ˆ์ด์…˜ ํŽ˜์ด์ง€๋กœ ์ž๋™ ์ด๋™

2. ๐Ÿ‘ฅ MBTI๋ณ„ ๋„์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐฉ

  • โ€”16๊ฐœ ์œ ํ˜•๋ณ„ ์ „์šฉ ๋ฐฉ ์šด์˜
  • โ€”๋„์„œ ๊ฒ€์ƒ‰ โ†’ ์ถ”์ฒœ๊ธ€ ์ž‘์„ฑ โ†’ ์‹ค์‹œ๊ฐ„ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ณต์œ 
  • โ€”ํ๋ ˆ์ด์…˜ ๋„์„œ + ์‚ฌ์šฉ์ž ์ถ”์ฒœ ๋„์„œ ํ†ตํ•ฉ ํ‘œ์‹œ

3. ๐Ÿ›๏ธ ์ฃผ์ œ๋ณ„ ๋„์„œ ํ๋ ˆ์ด์…˜

  • โ€”๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€ Open API ์—ฐ๋™
  • โ€”์ž์—ฐ์–ด ๊ฒ€์ƒ‰ ์ง€์› โ†’ ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ ์ž๋™ ์ถ”์ถœ โ†’ ๋„์„œ ๊ฒ€์ƒ‰
  • โ€”KDC(ํ•œ๊ตญ์‹ญ์ง„๋ถ„๋ฅ˜๋ฒ•) ์ž๋™ ๋ถ„๋ฅ˜ ํ‘œ์‹œ

4. ๐Ÿ’ฌ ์‚ฌ์„œ์—๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š”

  • โ€”๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€ ์‚ฌ์„œ Q&A ๋ฐ์ดํ„ฐ 5,905๊ฑด ๊ธฐ๋ฐ˜ RAG ๊ฒ€์ƒ‰
  • โ€”์ž์—ฐ์–ด ์งˆ๋ฌธ โ†’ ๊ด€๋ จ Q&A ๊ฒ€์ƒ‰ โ†’ ๋‹ต๋ณ€ ์ƒ์„ฑ
  • โ€”์ฐธ๊ณ  ์ถœ์ฒ˜ ์นด๋“œ ํ•จ๊ป˜ ์ œ๊ณต

๐Ÿ”Ž ํ•ต์‹ฌ ๋กœ์ง โ‘  ์ž์—ฐ์–ด ํ‚ค์›Œ๋“œ ์ถ”์ถœ

์ž์—ฐ์–ด ๋ฌธ์žฅ์„ ๊ทธ๋Œ€๋กœ ๋„์„œ API์— ๋ณด๋‚ด๋ฉด ๊ฒฐ๊ณผ๊ฐ€ 0๊ฑด โ†’ ํ‚ค์›Œ๋“œ ์ž๋™ ์ถ”์ถœ ๋กœ์ง ์ ์šฉ

์ฒ˜๋ฆฌ ํ๋ฆ„

์ž…๋ ฅ: "ํž˜๋“ค๋•Œ ์œ„๋กœ๊ฐ€ ๋˜๋Š” ์ฑ… ์ถ”์ฒœํ•ด์ค˜"
        โ”‚
        โ–ผ
โ‘  ์–ด๋ฏธยท์กฐ์‚ฌ ์ œ๊ฑฐ
   ํž˜๋“ค๋•Œ โ†’ ํž˜๋“ค (๋•Œ ์ œ๊ฑฐ)
   ์œ„๋กœ๊ฐ€ โ†’ ์œ„๋กœ (๊ฐ€ ์ œ๊ฑฐ)
   ์ถ”์ฒœํ•ด์ค˜ โ†’ ์ถ”์ฒœ (ํ•ด์ค˜ ์ œ๊ฑฐ) โ†’ ๋…ธ์ด์ฆˆ์–ด โ†’ ์‚ญ์ œ
        โ”‚
        โ–ผ
โ‘ก ๋…ธ์ด์ฆˆ์–ด ํ•„ํ„ฐ (์ฑ…, ์ถ”์ฒœ, ์ฝ๊ธฐ, ์ข‹์€, ์‹ถ์„, ์ฐพ๊ณ  ๋“ฑ)
   "๋˜๋Š”", "์ฑ…", "์ถ”์ฒœ" ์ œ๊ฑฐ
        โ”‚
        โ–ผ
์ถœ๋ ฅ: "ํž˜๋“ค ์œ„๋กœ"  โ† ์ด ํ‚ค์›Œ๋“œ๋กœ ์•Œ๋ผ๋”˜ API ๊ฒ€์ƒ‰

MBTI ์œ ํ˜• ์ฝ”๋“œ ์ฒ˜๋ฆฌ

์ž…๋ ฅ: "MBTI INFP์—๊ฒŒ ์ถ”์ฒœํ•˜๋Š” ์†Œ์„ค"
        โ”‚
        โ–ผ
INFP, INTJ, ENFP ๋“ฑ 16๊ฐ€์ง€ ์œ ํ˜• ์ฝ”๋“œ ๊ฐ์ง€
        โ”‚
        โ–ผ
์œ ํ˜• ์ฝ”๋“œ โ†’ "MBTI" ๋กœ ํ†ตํ•ฉ
        โ”‚
        โ–ผ
์ถœ๋ ฅ: "MBTI ์†Œ์„ค"  โ† ์•Œ๋ผ๋”˜์— ์‹ค์ œ ์ฑ…์ด ์žˆ๋Š” ๊ฒ€์ƒ‰์–ด

์ ์šฉ ๋ฒ”์œ„

์„น์…˜์ž์—ฐ์–ด ์ง€์›
๋„์„œ๊ฒ€์ƒ‰ (์ถ”์ฒœํ•˜๊ธฐ ํƒญ)โœ…
์ฃผ์ œ๋ณ„ ๋„์„œ ํ๋ ˆ์ด์…˜โœ…
์‚ฌ์„œ์—๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š”โœ… (ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์œผ๋กœ ์ฒ˜๋ฆฌ)

๐Ÿ”Ž ํ•ต์‹ฌ ๋กœ์ง โ‘ก ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ (์‚ฌ์„œ Q&A)

๋‘ ๊ฐ€์ง€ ๊ฒ€์ƒ‰ ๋ฐฉ์‹์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ •ํ™•๋„๋ฅผ ๋†’์ž„

์‚ฌ์šฉ์ž ์งˆ๋ฌธ
     โ”‚
     โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
     โ–ผ                              โ–ผ
 ๋ฒกํ„ฐ ๊ฒ€์ƒ‰                      ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰
 (์‹œ๋งจํ‹ฑ ์ž„๋ฒ ๋”ฉ)                (BM25 ์•Œ๊ณ ๋ฆฌ์ฆ˜)
                                   
 ko-sroberta ๋ชจ๋ธ               SQLite FTS5
 โ†’ ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•œ Q&A ํƒ์ƒ‰       โ†’ ๋‹จ์–ด๊ฐ€ ์ผ์น˜ํ•˜๋Š” Q&A ํƒ์ƒ‰
 ์˜ˆ) "์Šฌํ”Œ ๋•Œ" โ‰ˆ "์šฐ์šธํ•  ๋•Œ"    ์˜ˆ) "ํŒํƒ€์ง€" = "ํŒํƒ€์ง€"
     โ”‚                              โ”‚
     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                    โ–ผ
          RRF (์ˆœ์œ„ ์œตํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜)
          ๋‘ ๊ฒฐ๊ณผ์˜ ์ˆœ์œ„๋ฅผ ํ†ตํ•ฉยท์ •๊ทœํ™”
                    โ”‚
                    โ–ผ
          ๋™์  ๊ฐ€์ค‘์น˜ ์ ์šฉ

๋™์  ๊ฐ€์ค‘์น˜

์ฟผ๋ฆฌ ๊ธธ์ด์™€ ๊ฒ€์ƒ‰ ์—”์ง„ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๋น„์ค‘ ์กฐ์ •

์—”์ง„์ฟผ๋ฆฌ๋ฒกํ„ฐํ‚ค์›Œ๋“œ
์‹œ๋งจํ‹ฑ1~2๋‹จ์–ด (ํŒํƒ€์ง€)0.400.60
์‹œ๋งจํ‹ฑ3~4๋‹จ์–ด (์ž๊ธฐ๊ณ„๋ฐœ ์ฑ… ์ถ”์ฒœ)0.550.45
์‹œ๋งจํ‹ฑ5๋‹จ์–ด+ (ํž˜๋“ค ๋•Œ ์œ„๋กœ๊ฐ€ ๋˜๋Š” ์†Œ์„ค)0.700.30
TF-IDF ํด๋ฐฑ1~2๋‹จ์–ด0.300.70
TF-IDF ํด๋ฐฑ5๋‹จ์–ด+0.500.50
์™œ ๋™์  ๊ฐ€์ค‘์น˜์ธ๊ฐ€? ์งง์€ ๋‹จ์–ด โ†’ ์ •ํ™•ํ•œ ๋‹จ์–ด ๋งค์นญ์ด ์œ ๋ฆฌ (ํ‚ค์›Œ๋“œ ์šฐ์„ธ) ๊ธด ์ž์—ฐ์–ด ๋ฌธ์žฅ โ†’ ์˜๋ฏธ ํŒŒ์•…์ด ์ค‘์š” (๋ฒกํ„ฐ ์šฐ์„ธ) TF-IDF ํด๋ฐฑ ์‹œ โ†’ ์˜๋ฏธ ํŒŒ์•… ์•ฝํ™”, ํ‚ค์›Œ๋“œ๋ฅผ ๋” ์‹ ๋ขฐ

๐Ÿ“ฅ Input / ๐Ÿ“ค Output ์ƒ์„ธ

๋„์„œ๊ฒ€์ƒ‰ API (/api/book-search)

Input  : query = "์šฐ์šธํ•  ๋•Œ ์ฝ์œผ๋ฉด ์ข‹์€ ์ฑ…"
           โ†“  _extract_book_keywords()
Processing: "์šฐ์šธํ• " โ†’ "์šฐ์šธ", "์ฝ์œผ๋ฉด"ยท"์ข‹์€"ยท"์ฑ…" ์ œ๊ฑฐ
           โ†“
Effective Query: "์šฐ์šธ"
           โ†“  ์•Œ๋ผ๋”˜ API + Google Books API ๋ณ‘๋ ฌ ํ˜ธ์ถœ
Output : [
  { title, author, publisher, cover_url, isbn },
  ...
]

์‚ฌ์„œ Q&A API (/api/librarian/ask)

Input  : query = "ํž˜๋“ค ๋•Œ ์œ„๋กœ๊ฐ€ ๋˜๋Š” ์ฑ… ์ถ”์ฒœํ•ด์ค˜"
           โ†“  hybrid_search()
Processing:
  1. ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ โ†’ ์ƒ์œ„ 16๊ฑด ํ›„๋ณด
  2. ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ โ†’ ์ƒ์œ„ 16๊ฑด ํ›„๋ณด
  3. RRF ์œตํ•ฉ โ†’ ๋™์  ๊ฐ€์ค‘์น˜(0.70:0.30) ์ ์šฉ
  4. ์ƒ์œ„ 8๊ฑด ์„ ํƒ
           โ†“  get_librarian_response()
Output : {
  response: "์‚ฌ์„œ ๋‹ต๋ณ€ ํ…์ŠคํŠธ",
  sources: [ Q&A ์ถœ์ฒ˜ ์นด๋“œ 8๊ฑด ],
  vector_engine: "tfidf",
  weights: { vector: 0.70, keyword: 0.30 }
}

ํ๋ ˆ์ด์…˜ API (/api/analyze)

Input  : keyword = "์—ญ์‚ฌ๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ… ์•Œ๋ ค์ค˜"
           โ†“  _extract_book_keywords()
Effective: "์—ญ์‚ฌ ์ดํ•ด"
           โ†“  ๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€ Open API
Output : {
  keyword: "์—ญ์‚ฌ๋ฅผ ์‰ฝ๊ฒŒ...",  โ† ํ‘œ์‹œ์šฉ ์›๋ณธ ์œ ์ง€
  kdc: { code, name, color },  โ† ์ž๋™ KDC ๋ถ„๋ฅ˜
  pagination: { total: 2587, ... },
  search_results: [ ๋„์„œ ๋ชฉ๋ก ]
}

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ์Šคํƒ

๊ตฌ๋ถ„๊ธฐ์ˆ 
ํ”„๋ก ํŠธ์—”๋“œHTML5 / CSS3 / Vanilla JS (๋‹จ์ผ ํŒŒ์ผ SPA)
๋ฐฑ์—”๋“œPython 3.11 / FastAPI
๋ฒกํ„ฐ ๊ฒ€์ƒ‰jhgan/ko-sroberta-multitask (ํ•œ๊ตญ์–ด ์‹œ๋งจํ‹ฑ ์ž„๋ฒ ๋”ฉ)
ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰SQLite FTS5 / BM25
TF-IDF ํด๋ฐฑscikit-learn TfidfVectorizer (word 1~2 gram)
์™ธ๋ถ€ API๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€ Open API / ์•Œ๋ผ๋”˜ TTB / Google Books
๋ฐฐํฌHuggingFace Spaces (Docker ์ปจํ…Œ์ด๋„ˆ)
CI/CDGitHub Actions

๐Ÿ“Š ๋ฐ์ดํ„ฐ ํ˜„ํ™ฉ

ํ•ญ๋ชฉ์ˆ˜์น˜
์‚ฌ์„œ Q&A DB5,905๊ฑด (๊ตญ๋ฆฝ์ค‘์•™๋„์„œ๊ด€)
MBTI ํ๋ ˆ์ด์…˜ ๋„์„œ16๊ฐœ ์œ ํ˜• ร— ๋‹ค์ˆ˜
์—ฐ๋™ ์™ธ๋ถ€ ๋„์„œ DB์•Œ๋ผ๋”˜ + Google Books

๐Ÿš€ ๋ฐฐํฌ ๊ตฌ์กฐ

๋กœ์ปฌ ์ˆ˜์ •
   โ”‚
   โ”œโ”€ git push origin master โ”€โ†’ GitHub (์†Œ์Šค ๋ณด๊ด€)
   โ”‚                                โ”‚
   โ”‚                         GitHub Actions
   โ”‚                                โ”‚
   โ””โ”€ git push hf HEAD:main โ”€โ”€โ†’ HuggingFace Spaces
                                    โ”‚
                              Docker ๋นŒ๋“œ & ๋ฐฐํฌ
                                    โ”‚
                            https://minjin1-mbti.hf.space

๐Ÿ“… ๊ฐœ๋ฐœ ์ด๋ ฅ

๋‚ ์งœ์ž‘์—… ๋‚ด์šฉ
2026-05-28์ดˆ๊ธฐ ์•ฑ ๊ตฌ์ถ• ๋ฐ HuggingFace ๋ฐฐํฌ, GitHub Actions CI/CD ์„ค์ •
2026-05-31UI ๋ฒ„ํŠผ ์ˆ˜์ •, ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ ๋™์  ๊ฐ€์ค‘์น˜ ๋„์ž…, ์ „ ์„น์…˜ ์ž์—ฐ์–ด ๊ฒ€์ƒ‰ ์ ์šฉ

โœ… ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ (2026-05-31)

ํ…Œ์ŠคํŠธ ํ•ญ๋ชฉ๋ฐฉ๋ฒ•๊ฒฐ๊ณผ
์ž์—ฐ์–ด ๋„์„œ๊ฒ€์ƒ‰ 10๊ฐœ ์ฟผ๋ฆฌAPI ํ…Œ์ŠคํŠธ10/10 PASS
์•ฑ ์ง์ ‘ ๊ฒ€์ƒ‰ (๋„์„œ๊ฒ€์ƒ‰ ํƒญ)Playwright7/7 PASS
์‚ฌ์„œ์—๊ฒŒ ๋ฌผ์–ด๋ณด์„ธ์š”Playwright5/5 PASS

Built with [Claude Code](https://claude.ai/code) โ€” Anthropic