Niravgoyani7/copilot-router

๐Ÿ› ๏ธ ๊ฐ„๋‹จํ•œ ์ฑ„ํŒ… ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด GitHub Copilot์„ OpenAI ๋ฐ Anthropic ํด๋ผ์ด์–ธํŠธ์— ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์›ํ™œํ•˜๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

copilot-router๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ด ์Šคํ‚ฌ์€ GitHub Copilot๊ณผ OpenAI, Anthropic ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ค‘๊ฐ„ ํ”„๋ก์‹œ ์—ญํ• ์„ ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ต์ˆ™ํ•œ Copilot ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ OpenAI(GPT-4, GPT-3.5) ๋ฐ Anthropic(Claude)์˜ ๊ฐ•๋ ฅํ•œ ๋ชจ๋ธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋กœ CLI ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ํ”„๋ก์‹œ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ AI ๋ชจ๋ธ์„ ๋‹จ์ผ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜์—ฌ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์› ๋Œ€์ƒโœ“Claude Codeโœ“Codex CLI~Cursor
npx skills add Niravgoyani7/copilot-router

Installed? Explore more ์—ฐ๊ตฌ & ๋ฐ์ดํ„ฐ ๋ถ„์„ skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review ยท View all 6 โ†’

์ฆ๊ฒจ ์‚ฌ์šฉํ•˜๋Š” AI์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ

์ด ์—์ด์ „ํŠธ ์Šคํ‚ฌ์ด ๋ฏธ๋ฆฌ ๋กœ๋“œ๋œ ์ƒˆ ์ฑ„ํŒ…์„ ์—ฝ๋‹ˆ๋‹ค.

๋ฌธ์„œ

copilot-router์€(๋Š”) ๋ฌด์—‡์„ ํ•˜๋‚˜์š”?

๐Ÿ› ๏ธ ๊ฐ„๋‹จํ•œ ์ฑ„ํŒ… ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด GitHub Copilot์„ OpenAI ๋ฐ Anthropic ํด๋ผ์ด์–ธํŠธ์— ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์›ํ™œํ•˜๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๊ฐœ์š”

copilot-router๋Š” GitHub Copilot์˜ ์š”์ฒญ์„ OpenAI ๋ฐ Anthropic์˜ API๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Copilot ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์ด ์„ ํ˜ธํ•˜๋Š” AI ๋ชจ๋ธ์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋‹ค์ค‘ ๋ชจ๋ธ ์ง€์›: OpenAI (GPT-4, GPT-3.5) ๋ฐ Anthropic (Claude) ๋ชจ๋ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ„ํŽธํ•œ ์„ค์ •: YAML ๋˜๋Š” JSON ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌด์ค‘๋‹จ ์ „ํ™˜: ๊ธฐ์กด Copilot ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋กœ๊น… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: ์š”์ฒญ ๋ฐ ์‘๋‹ต ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ ํŒจํ„ด์„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ๋ฐฉ๋ฒ•

npm install -g copilot-router
# ๋˜๋Š”
npx copilot-router

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ์„ค์ • ํŒŒ์ผ ์ƒ์„ฑ (copilot-router.yaml):
port: 3000
models:
  - provider: openai
    model: gpt-4
    apiKey: ${OPENAI_API_KEY}
  - provider: anthropic
    model: claude-3-opus-20240229
    apiKey: ${ANTHROPIC_API_KEY}
routes:
  - path: /v1/chat/completions
    target: copilot
  1. ํ”„๋ก์‹œ ์„œ๋ฒ„ ์‹คํ–‰:
copilot-router --config copilot-router.yaml
  1. Copilot ์„ค์ •์—์„œ ํ”„๋ก์‹œ ์ฃผ์†Œ๋ฅผ http://localhost:3000์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

๋ณ€์ˆ˜๋ช…์„ค๋ช…ํ•„์ˆ˜ ์—ฌ๋ถ€
OPENAI_API_KEYOpenAI API ํ‚ค์˜ˆ (OpenAI ์‚ฌ์šฉ ์‹œ)
ANTHROPIC_API_KEYAnthropic API ํ‚ค์˜ˆ (Anthropic ์‚ฌ์šฉ ์‹œ)
COPILOT_TOKENGitHub Copilot ํ† ํฐ์˜ˆ

๋ผ์šฐํŒ… ๊ทœ์น™

์„ค์ • ํŒŒ์ผ์˜ routes ์„น์…˜์—์„œ ์š”์ฒญ์„ ํŠน์ • ๋ชจ๋ธ๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

routes:
  - path: /v1/chat/completions
    target: openai
    model: gpt-4
  - path: /v1/complete
    target: anthropic
    model: claude-3-opus-20240229

์ฃผ์˜์‚ฌํ•ญ

  • GitHub Copilot์˜ ์„œ๋น„์Šค ์•ฝ๊ด€์„ ์ค€์ˆ˜ํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • API ํ‚ค๋Š” ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ , ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋ก์‹œ ์„œ๋ฒ„๋Š” ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ๋งŒ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

MIT

๊ด€๋ จ ์Šคํ‚ฌ