Skip to content

fakeminjun7321/physics-problem-studio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงฎ ๊ณ ๊ธ‰ ๋ฌผ๋ฆฌ ๋ฌธ์ œ ์ŠคํŠœ๋””์˜ค ยท Physics Problem Studio

์ฃผ์ œยท๋‚œ์ด๋„ยท์ถœ์ œ ์Šคํƒ€์ผ์„ ๊ณ ๋ฅด๋ฉด, AI๊ฐ€ ํ’€์ดยทํžŒํŠธยท๊ฒ€์‚ฐ์ด ํ•จ๊ป˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์‹ฌํ™” ๋ฌผ๋ฆฌ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ์ž‘์€ ์›น ์•ฑ์ž…๋‹ˆ๋‹ค. ํ•ด์„์—ญํ•™, ์ „์ž๊ธฐํ•™, ์ƒ๋Œ€๋ก  ๋“ฑ ๋Œ€ํ•™ยท์˜ฌ๋ฆผํ”ผ์•„๋“œ ์ˆ˜์ค€ ์ฃผ์ œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋ธ์€ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ํ’€์–ด ์ฐจ์›ยท๊ทนํ•œยทํŠน์ˆ˜๊ฐ’์œผ๋กœ ๊ฒ€์‚ฐํ•œ ๋’ค ํ’€์ด๋ฅผ ์ ๋„๋ก ์œ ๋„๋˜๋ฉฐ, ๋ชจ๋“  ์ˆ˜์‹์€ LaTeX๋กœ ์ถœ๋ ฅ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €์—์„œ MathJax๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.

โš ๏ธ ๋ฌธ์ œ์™€ ํ’€์ด๋Š” AI๊ฐ€ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‹œํ—˜ยท์ œ์ถœ ์ „์—๋Š” ๋ฐ˜๋“œ์‹œ ์ง์ ‘ ๊ฒ€์‚ฐํ•˜์„ธ์š”.


ํŠน์ง•

  • ์ƒˆ๋กœ์šด ๋ฌธ์ œ ์ƒ์„ฑ โ€” ๊ต๊ณผ์„œ ์˜ˆ์ œ ๋ณต์‚ฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์ฃผ์ œ์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‚˜์˜ค๋Š” ๋…์ฐฝ์ ์ธ ์ƒํ™ฉ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ํ’€์ด ยท ํžŒํŠธ ยท ๊ฒ€์‚ฐ ยท ํ”ํ•œ ์˜ค๋‹ต โ€” ๊ฐ ๋ฌธ์ œ๋งˆ๋‹ค ๋‹จ๊ณ„๋ณ„ ํ’€์ด, ๋‹จ๊ณ„์  ํžŒํŠธ, ๊ฒ€์‚ฐ, ์ž์ฃผ ํ‹€๋ฆฌ๋Š” ์ง€์ ์„ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • 5๊ฐ€์ง€ ์ถœ์ œ ์Šคํƒ€์ผ โ€” ์„ธํŠธํ˜• ๊ณ„์‚ฐ, ์ฆ๋ช…ยท์œ ๋„, ์˜ฌ๋ฆผํ”ผ์•„๋“œ ์‹ฌํ™”, ๊ฐœ๋…ํ™•์ธ, ์˜ค๋ฅ˜์ง„๋‹จยท๋ชจ๋ธ๋ง.
  • LaTeX ๋ Œ๋”๋ง โ€” MathJax๋กœ ๊ทธ๋ฆฌ์Šค๋ฌธ์žยท์ฒจ์žยท๋ถ„์ˆ˜ยท์ ๋ถ„์„ ์ •ํ™•ํžˆ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆํฌ๋‹ค์šด ๋‚ด๋ณด๋‚ด๊ธฐ โ€” ์ƒ์„ฑ ๊ฒฐ๊ณผ๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ .md ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์˜์กด์„ฑ ์ตœ์†Œ โ€” Express + Anthropic SDK๋ฟ. ๋กœ๊ทธ์ธยทDBยท๊ฒฐ์ œ ์—†์Œ. API ํ‚ค ํ•˜๋‚˜๋ฉด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋น ๋ฅธ ์‹œ์ž‘

git clone https://github.com/fakeminjun7321/physics-problem-studio.git
cd physics-problem-studio
npm install

cp .env.example .env      # .env ๋ฅผ ์—ด์–ด ANTHROPIC_API_KEY ๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค
npm start                 # http://localhost:3000

๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:3000 ์„ ์—ด๊ณ , ์ฃผ์ œ๋ฅผ ์ž…๋ ฅํ•œ ๋’ค ๋ฌธ์ œ ์ƒ์„ฑ์„ ๋ˆ„๋ฅด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Anthropic API ํ‚ค๋Š” console.anthropic.com ์—์„œ ๋ฐœ๊ธ‰๋ฐ›์Šต๋‹ˆ๋‹ค.

๋™์ž‘ ๋ฐฉ์‹

public/index.html   ํผ + ๊ฒฐ๊ณผ ๋ Œ๋”๋ง(MathJax). ๋‹จ์ผ ํŽ˜์ด์ง€, ์™ธ๋ถ€ ์ž์‚ฐ ์—†์Œ.
server.js           Express ์„œ๋ฒ„ โ€” /api/config ์™€ /api/generate ๋‘ ๊ฐœ์˜ ์—”๋“œํฌ์ธํŠธ.
lib/physics.js      ์ถœ์ œ ํ”„๋กฌํ”„ํŠธ + ์ž…๋ ฅ ๊ฒ€์ฆ + ์ถœ๋ ฅ ์ •๊ทœํ™”(๋ฌธ์ œ ์ŠคํŽ™).
lib/studio-core.js  ๋ชจ๋ธ ํ˜ธ์ถœ + LaTeX-in-JSON ๋ณต๊ตฌ ํŒŒ์„œ.
lib/json-sanitize.js  ๋ฌธ์ž์—ด ์•ˆ์˜ raw ์ œ์–ด๋ฌธ์ž escape ๋ณต๊ตฌ.
  1. ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์ฃผ์ œยท๋‚œ์ด๋„ยท์Šคํƒ€์ผ์„ POST /api/generate ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  2. ์„œ๋ฒ„๊ฐ€ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ตฌ์„ฑํ•ด Claude ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
  3. Claude ๊ฐ€ JSON ๊ฐ์ฒด ํ•˜๋‚˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  4. LaTeX ๋ฅผ ํฌํ•จํ•œ JSON ์„ ๊ฒฌ๊ณ ํ•˜๊ฒŒ ํŒŒ์‹ฑํ•ฉ๋‹ˆ๋‹ค โ€” ๋ชจ๋ธ์ด ๋ฌธ์ž์—ด ์•ˆ์— \theta ๊ฐ™์€ ๋‹จ์ผ ๋ฐฑ์Šฌ๋ž˜์‹œ๋‚˜ raw ์ œ์–ด๋ฌธ์ž๋ฅผ ๋„ฃ์–ด ๊นจ์ง€๋Š” ๊ฒฝ์šฐ๋ฅผ ์ž๋™ ๋ณต๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  5. ์Šคํ‚ค๋งˆ๋Œ€๋กœ ์ •๊ทœํ™”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ฃผ๊ณ , ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ•„์ˆ˜ ์„ค๋ช…
ANTHROPIC_API_KEY โœ… Anthropic API ํ‚ค. ์—†์œผ๋ฉด ์ƒ์„ฑ์ด 503 ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
PORT ์„œ๋ฒ„ ํฌํŠธ (๊ธฐ๋ณธ 3000).

์‚ฌ์šฉ ๋ชจ๋ธ์€ lib/studio-core.js ์˜ STUDIO_MODELS ์—์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ธฐ๋ณธ: Claude Opus 4.8 / Sonnet 5 / Haiku 4.5).

๋ฐฐํฌ

์ผ๋ฐ˜ Node ์›น ์„œ๋น„์Šค์ด๋ฏ€๋กœ ์–ด๋””์„œ๋“  ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ๋ช…๋ น์€ npm start, PORT ๋Š” ํ˜ธ์ŠคํŠธ๊ฐ€ ์ฃผ์ž…ํ•˜๋Š” ๊ฐ’์„ ์“ฐ๋ฉฐ, ANTHROPIC_API_KEY ๋ฅผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. .env ๋Š” ์ปค๋ฐ‹ํ•˜์ง€ ๋งˆ์„ธ์š” (.gitignore ์— ์ด๋ฏธ ์ œ์™ธ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค).

๋ผ์ด์„ ์Šค

MIT

About

๐Ÿงฎ AI-powered advanced physics problem generator โ€” creates original university/olympiad-level problems with solutions, hints & self-checks (Claude + LaTeX). Standalone, no login/DB.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors