๊ธฐ๊ณ ํ๋ฅดํฌ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ ๋ LLM์ผ๋ก ๋ฒํผ ๊ทธ๋ฆฌ๋๋ฅผ ์์ฑํฉ๋๋ค. ๋ช ๋ น์ ์ ๋ ฅํ๊ฑฐ๋ ๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์. ๋ํํ๋ฉฐ ์ํ๋ ๊ธฐ๋ฅ์ ์ฐพ์๋๋ฆฝ๋๋ค. ์ง๊ธ ๋ฐ๋ก ์์ํด๋ณด์ธ์!
ํ๋์ ์ํ๊ธฐ ์์ ์ฌ๋์ด ์จ์ด ๊ธฐ๊ณ๋ฅผ ๋์ ํ๋ค โ 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ํ์ผ์ ์ง์ . ๋ค์ค ์ธ์คํด์ค ์ฐธ๊ณ .
.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์ฐธ๊ณ .
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).
- ์ํค: AI Turk ํ๋ก์ ํธ
- ์ํค: ๊ธฐ๊ณ ํ๋ฅดํฌ ์์ด๋์ด
- GitHub ์ ์ฅ์ (branch:
node-react)