Skip to content

sng2c/ai-turk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

202 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿค– AI Turk

์Šคํฌ๋ฆฐ์ƒท

๊ธฐ๊ณ„ ํŠ€๋ฅดํฌ์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” LLM์œผ๋กœ ๋ฒ„ํŠผ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”. ๋Œ€ํ™”ํ•˜๋ฉฐ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ฐพ์•„๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด๋ณด์„ธ์š”!

์†Œ๊ฐœ

ํ˜„๋Œ€์‹ ์žํŒ๊ธฐ ์•ˆ์˜ ์ธ๊ฐ„ โ€” AI Turk ์•„ํ‚คํ…์ฒ˜

ํ˜„๋Œ€์‹ ์žํŒ๊ธฐ ์•ˆ์— ์‚ฌ๋žŒ์ด ์ˆจ์–ด ๊ธฐ๊ณ„๋ฅผ ๋Œ€์‹ ํ•œ๋‹ค โ€” AI Turk๋„ ๊ฐ™์€ ์›๋ฆฌ์ž…๋‹ˆ๋‹ค. ์žํŒ๊ธฐ ๋ฒ„ํŠผ์€ LLM์ด ์ƒ์„ฑํ•œ ๋ฒ„ํŠผ ๊ทธ๋ฆฌ๋“œ, ์•ˆ์— ์ˆจ์€ ์‚ฌ๋žŒ์€ ๋ฐฑ์—”๋“œ LLM ์—์ด์ „ํŠธ์ž…๋‹ˆ๋‹ค.

๊ธฐ๊ณ„ ํŠ€๋ฅดํฌ ๋‹จ๋ฉด๋„

18์„ธ๊ธฐ ์ฒด์Šค ๊ธฐ๊ณ„ "ํ„ฐํ‚ค์ธ"์—๋„ ์•ˆ์— ์‚ฌ๋žŒ์ด ์ˆจ์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. AI Turk๋Š” ์ด ์›๋ฆฌ๋ฅผ ํ˜„๋Œ€์— ์žฌํ•ด์„ โ€” ๊ธฐ๊ณ„ ์•ˆ์— LLM์ด ์ˆจ์–ด ๋ฒ„ํŠผ ๊ทธ๋ฆฌ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ณ„์‚ฐ๊ธฐ๋ผ๊ณ  ์ž…๋ ฅํ•ด๋ณด์„ธ์š”. LLM์ด ๊ณ„์‚ฐ๊ธฐ์ธ์ฒ™ ์ „์ž๊ณ„์‚ฐ๊ธฐ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

AI Turk๋Š” ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ์ „์šฉ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ pi(pi --mode rpc) ์™€ Claude Code(claude -p stream-json) ์–‘์ชฝ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜ ์ปจํ…์ŠคํŠธ ์ž๋™ ๊ด€๋ฆฌ, ๋„๊ตฌ ์‚ฌ์šฉ(bash, read, edit), ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Claude Code ๋ฐฑ์—”๋“œ๋Š” Anthropic API(์ˆœ์ˆ˜ Claude) ๋˜๋Š” Ollama์˜ Anthropic ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ(ollama launch claude --model <m> ๋™๋“ฑ) ์–‘์ชฝ์œผ๋กœ ๊ตฌ๋™ ๊ฐ€๋Šฅ โ€” .env ์„ค์ •์œผ๋กœ ์„ ํƒ.

๊ตฌ๋™ ๋ฐฉ๋ฒ•

pi ์—์ด์ „ํŠธ์—๊ฒŒ /start ๋ช…๋ น์œผ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”.

git clone https://github.com/sng2c/ai-turk.git
cd ai-turk
pi /start

์—์ด์ „ํŠธ๊ฐ€ ์˜์กด์„ฑ ์„ค์น˜, ์„œ๋ฒ„ ์‹คํ–‰, ์ƒํƒœ ํ™•์ธ์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๋™ ๊ตฌ๋™

git clone https://github.com/sng2c/ai-turk.git
cd ai-turk
npm install
turkctl start

์ ‘์†: http://127.0.0.1:3000

์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋„์šฐ๋ ค๋ฉด --env๋กœ .env ํŒŒ์ผ์„ ์ง€์ •. ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค ์ฐธ๊ณ .

๋ฐฑ์—”๋“œ ์ „ํ™˜ (pi โ†” Claude Code)

.env์˜ TURK_BACKEND๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์€ pi.

๊ฐ’ ๋ฐฑ์—”๋“œ ์„ค๋ช…
pi pi --mode rpc ๋กœ์ปฌ pi CLI (๊ธฐ๋ณธ)
claude claude -p stream-json Anthropic Messages API ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ „์ฒด ๋ชฉ๋ก

๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
TURK_PORT 3000 ์„œ๋ฒ„ ํฌํŠธ
TURK_HOST 127.0.0.1 ๋ฐ”์ธ๋”ฉ ํ˜ธ์ŠคํŠธ (์™ธ๋ถ€ ๋…ธ์ถœ ์‹œ 0.0.0.0)
TURK_BACKEND pi ๋ฐฑ์—”๋“œ ์„ ํƒ (pi | claude)
TURK_MAX_SESSIONS 5 ์ตœ๋Œ€ ์„ธ์…˜ ์ˆ˜
TURK_DEBUG (๋น„ํ™œ์„ฑ) ์ง„๋‹จ ๋กœ๊ทธ (1 = ํ™œ์„ฑ)
TURK_PI_BIN pi pi CLI ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฒฝ๋กœ
TURK_PI_MODEL (pi ๊ธฐ๋ณธ) pi ๋ฐฑ์—”๋“œ ๋ชจ๋ธ
TURK_PI_ARGS (์—†์Œ) pi ๋ฐฑ์—”๋“œ ์ถ”๊ฐ€ ์ธ์ž
TURK_CLAUDE_BIN claude Claude Code CLI ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฒฝ๋กœ
TURK_CLAUDE_MODEL (ํ•„์ˆ˜) Claude ๋ฐฑ์—”๋“œ ๋ชจ๋ธ (claude-* ๋˜๋Š” Ollama ๋ชจ๋ธ)
ANTHROPIC_BASE_URL http://localhost:11434 Anthropic API ์—”๋“œํฌ์ธํŠธ (์ˆœ์ˆ˜ Claude: https://api.anthropic.com)
ANTHROPIC_AUTH_TOKEN ollama Anthropic ์ธ์ฆ ํ† ํฐ (Ollama: ์ž„์˜๊ฐ’, ์ˆœ์ˆ˜ Claude: API ํ‚ค)
TURK_ENV_FILE (์—†์Œ) ์ธ์Šคํ„ด์Šค๋ณ„ .env ํŒŒ์ผ ๊ฒฝ๋กœ (--env๊ณผ ๋™์ผ)

์ „์ฒด ๋ณ€์ˆ˜์™€ ์ƒ์„ธ ์„ค๋ช…์€ .env.example ์ฐธ๊ณ .

Claude Code ๋ฐฑ์—”๋“œ

TURK_BACKEND=claude๋Š” ANTHROPIC_BASE_URL์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์—”๋“œํฌ์ธํŠธ๋กœ Anthropic Messages API ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋‘ ๊ตฌ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค:

โ‘  ์ˆœ์ˆ˜ Anthropic Claude (๊ถŒ์žฅ)

TURK_BACKEND=claude
TURK_CLAUDE_MODEL=claude-haiku-4-5    # claude-* ์ „์ฒด ์ด๋ฆ„
# ANTHROPIC_BASE_URL ๋น„์šฐ๋ฉด ๊ธฐ๋ณธ api.anthropic.com ์‚ฌ์šฉ

โ‘ก Ollama Claude โ€” Ollama 0.14+ ์˜ Anthropic ํ˜ธํ™˜ ์—”๋“œํฌ์ธํŠธ (ollama launch claude --model <m> ๋™๋“ฑ)

TURK_BACKEND=claude
TURK_CLAUDE_MODEL=glm-5.1:cloud    # Ollama์— pull ๋œ ๋ชจ๋ธ
ANTHROPIC_BASE_URL=http://localhost:11434
ANTHROPIC_AUTH_TOKEN=ollama         # ์ž„์˜๊ฐ’ (๋น„์–ด๋‘๋ฉด subscription ํด๋ฐฑ)

ํ•„์š” ์‹œ Ollama ์ค€๋น„: ollama serve + ollama pull glm-5.1:cloud.

์ „ํ™˜ ํ›„ turkctl restart (๋˜๋Š” .env ๋ณ€๊ฒฝ ์‹œ ์ž๋™ ์žฌ์‹œ์ž‘). ํƒ€์ดํ‹€ ์˜†์— ๋ฐฑ์—”๋“œ ์ข…๋ฅ˜(pi/claude)๊ฐ€ ์ž‘๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋ณ€์ˆ˜๋Š” .env.example ์ฐธ๊ณ .

๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค

turkctl์˜ --env ์˜ต์…˜ ๋˜๋Š” TURK_ENV_FILE ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ธ์Šคํ„ด์Šค๋ณ„ .env ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํฌํŠธ ์ถฉ๋Œ์„ ํ”ผํ•˜๋ ค๋ฉด ๊ฐ .env ํŒŒ์ผ์˜ TURK_PORT๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •.

# ์ธ์Šคํ„ด์Šค๋ณ„ .env ํŒŒ์ผ ์ƒ์„ฑ
cp .env.example .env.8003   # TURK_PORT=8003 ์œผ๋กœ ์ˆ˜์ •
cp .env.example .env.8004   # TURK_PORT=8004 ์œผ๋กœ ์ˆ˜์ •

# ๊ฐ ์ธ์Šคํ„ด์Šค ๋…๋ฆฝ ๊ตฌ๋™/์ œ์–ด
#   ๋ฐฉ๋ฒ• A: --env ํ”Œ๋ž˜๊ทธ
turkctl --env .env.8003 start
turkctl --env .env.8003 status
turkctl --env .env.8003 stop

#   ๋ฐฉ๋ฒ• B: TURK_ENV_FILE ํ™˜๊ฒฝ๋ณ€์ˆ˜
TURK_ENV_FILE=.env.8004 turkctl start
TURK_ENV_FILE=.env.8004 turkctl logs

--env / TURK_ENV_FILE ์ƒ๋žต ์‹œ ๊ธฐ๋ณธ .env ์‚ฌ์šฉ (ํฌํŠธ 3000).

๋” ๋ณด๊ธฐ

About

๐Ÿค– AI Turk โ€” LLM-powered dynamic button grid interface. pi agent dedicated, self-modifiable via HMR.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages