Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

DRdaramG/Hungry_mans_CopilotChatBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

31 Commits

Repository files navigation

Hungry Man's Copilot ChatBot ๐Ÿฝ๏ธ

GitHub Copilot์˜ ์ฑ„ํŒ… API์— ์—ฐ๊ฒฐํ•˜๋Š” Python ๊ธฐ๋ฐ˜ ๋ฐ์Šคํฌํƒ‘ ์ฑ—๋ด‡์ž…๋‹ˆ๋‹ค.
Copilot Pro+ ๊ตฌ๋…์ž๋ผ๋ฉด Claude, Gemini, ChatGPT ๋“ฑ ํ”„๋ฆฌ๋ฏธ์—„ AI ๋ชจ๋ธ์„
๋ณ„๋„ ๊ตฌ๋…๋ฃŒ ์—†์ด ํŽธ๋ฆฌํ•œ GUI๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


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

๊ธฐ๋Šฅ ์„ค๋ช…
๋ชจ๋ธ ์ „ํ™˜ ๋ผ๋””์˜ค ๋ฒ„ํŠผ์œผ๋กœ ๋Œ€ํ™” ์ค‘์—๋„ Claude Opus 4.5, Gemini 3.1 Pro, GPT-4.1 ๊ฐ„ ์ž์œ ๋กญ๊ฒŒ ์ „ํ™˜
GitHub OAuth ๋””๋ฐ”์ด์Šค ํ”Œ๋กœ์šฐ ์ธ์ฆ โ€” ํ† ํฐ์„ ์ง์ ‘ ๋ณต์‚ฌยท๋ถ™์—ฌ๋„ฃ๊ธฐํ•  ํ•„์š” ์—†์Œ
๋‹ค์ค‘ ๋Œ€ํ™” ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ๋Œ€ํ™”๋ฅผ ๋งŒ๋“ค๊ณ , ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ , ์‚ญ์ œ ๊ฐ€๋Šฅ; ๋งˆ์ง€๋ง‰์œผ๋กœ ์—ด์—ˆ๋˜ ๋Œ€ํ™”๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ์–ต
๋Œ€ํ™” ๊ธฐ๋ก ์ €์žฅ ๋กœ์ปฌ SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(~/.copilot_chatbot.db)์— ์ €์žฅ; ๊ธฐ์กด JSON ๊ธฐ๋ก์€ ์ž๋™์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
ํ† ํฐ ์ธ์‹ ์ปจํ…์ŠคํŠธ ์ฐฝ tiktoken์œผ๋กœ ํ† ํฐ์„ ๊ณ„์‚ฐํ•˜๊ณ  ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ž˜๋ผ ๋ชจ๋“  ์š”์ฒญ์ด ๋ชจ๋ธ์˜ ์ปจํ…์ŠคํŠธ ํ•œ๋„ ์•ˆ์— ๋“ค์–ด์˜ค๋„๋ก ์ฒ˜๋ฆฌ
์ด๋ฏธ์ง€ ์ฒจ๋ถ€ .png, .jpg, .jpeg, .gif, .webp ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•˜๋ฉด base64๋กœ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ๋ชจ๋ธ์— ์ „์†ก
์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ์ฒจ๋ถ€ .csv, .xls, .xlsx ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•˜๋ฉด ๋‚ด์šฉ์ด ํ…์ŠคํŠธ๋กœ ๋ณ€ํ™˜๋˜์–ด ์ „์†ก
๊ฐœ์ธ ํ”„๋กฌํ”„ํŠธ ์ด๋ฆ„ ์žˆ๋Š” ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ €์žฅยท์ˆ˜์ •ยท์‚ญ์ œ; ์ฒดํฌ๋ฐ•์Šค๋กœ ์—ฌ๋Ÿฌ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋™์‹œ์— ํ™œ์„ฑํ™”(์ž๋™ ์•ž๋ถ™์ž„); ๋“œ๋ž˜๊ทธ๋กœ ์ˆœ์„œ ๋ณ€๊ฒฝ
์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ํ”„๋กฌํ”„ํŠธ ๋งค๋‹ˆ์ €์—์„œ ๋Œ€ํ™”๋ณ„ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ์„ค์ •
ํ”„๋กฌํ”„ํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ/๋‚ด๋ณด๋‚ด๊ธฐ .json ํŒŒ์ผ๋กœ ํ”„๋กฌํ”„ํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณต์œ 
๋Œ€ํ™” ์ €์žฅ ๋Œ€ํ™”๋ฅผ JSON ๋˜๋Š” ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ
์ŠคํŠธ๋ฆฌ๋ฐ ์‘๋‹ต ์‘๋‹ต์ด ๋‹จ์–ด ๋‹จ์œ„๋กœ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ‘œ์‹œ
๊ธฐ๋ก ์ง€์—ฐ ๋กœ๋”ฉ ์ฑ„ํŒ… ์ƒ๋‹จ์œผ๋กœ ์Šคํฌ๋กคํ•˜๋ฉด ์ด์ „ ๋ฉ”์‹œ์ง€๋ฅผ ํ•„์š”ํ•  ๋•Œ ๋ถˆ๋Ÿฌ์˜ด

ํ•„์š” ํ™˜๊ฒฝ

  • Python 3.10 ์ด์ƒ
  • GitHub Copilot Pro+ ๊ตฌ๋…

Python ํŒจํ‚ค์ง€

Windows / macOS (pip)

pip install -r requirements.txt

Ubuntu / Debian (apt)

์ตœ์‹  Ubuntu(23.04+)์—์„œ๋Š” PEP 668์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ Python์— pip๋กœ ์ง์ ‘ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ ์ œ๊ณต๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:

chmod +x install_ubuntu.sh
sudo ./install_ubuntu.sh
ํŒจํ‚ค์ง€ ์—ญํ• 
requests GitHub ๋ฐ Copilot API HTTP ํ†ต์‹ 
openpyxl .xlsx ์—‘์…€ ํŒŒ์ผ ์ฝ๊ธฐ
tiktoken ์ปจํ…์ŠคํŠธ ์ฐฝ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ •ํ™•ํ•œ ํ† ํฐ ๊ณ„์‚ฐ
typing_extensions Python 3.11 ๋ฏธ๋งŒ์—์„œ ์ตœ์‹  typing ๊ธฐ๋Šฅ ์ง€์›

GUI์—๋Š” tkinter๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, WindowsยทmacOS์šฉ Python ๊ณต์‹ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ๊ธฐ๋ณธ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
Ubuntu/Debian์—์„œ install_ubuntu.sh๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด python3-tk๋„ ํ•จ๊ป˜ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•˜๋ ค๋ฉด:

# Debian / Ubuntu
sudo apt-get install python3-tk

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

1๋‹จ๊ณ„ โ€” Python 3 ์„ค์น˜ (Windows)

์ด๋ฏธ Python 3.10 ์ด์ƒ์ด ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(cmd)์—์„œ python --version์„ ์ž…๋ ฅํ•ด ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ https://www.python.org/downloads/ ์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.
  2. "Download Python 3.x.x" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  3. ๋‹ค์šด๋กœ๋“œ๋œ .exe ํŒŒ์ผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  4. ์„ค์น˜ ํ™”๋ฉด ํ•˜๋‹จ์— ์žˆ๋Š” "Add Python to PATH" ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋ฐ˜๋“œ์‹œ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.
    (์ด ์˜ต์…˜์„ ๋น ๋œจ๋ฆฌ๋ฉด ์ดํ›„ python ๋ช…๋ น์ด ์ธ์‹๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)
  5. "Install Now" ๋ฅผ ํด๋ฆญํ•˜๊ณ  ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
  6. ์„ค์น˜ ์™„๋ฃŒ ํ›„ "Close" ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

2๋‹จ๊ณ„ โ€” ์ฝ”๋“œ ๋‹ค์šด๋กœ๋“œ

  1. ์ด ์ €์žฅ์†Œ ํŽ˜์ด์ง€ ์˜ค๋ฅธ์ชฝ ์œ„์˜ ์ดˆ๋ก์ƒ‰ "Code" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. "Download ZIP" ์„ ์„ ํƒํ•ด ZIP ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  3. ๋‹ค์šด๋กœ๋“œ๋œ ZIP ํŒŒ์ผ์„ ์›ํ•˜๋Š” ์œ„์น˜์— ์••์ถ• ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.
    ์˜ˆ) C:\Users\์‚ฌ์šฉ์ž์ด๋ฆ„\Documents\Hungry_mans_CopilotChatBot

3๋‹จ๊ณ„ โ€” ์ฝ”๋“œ ํด๋”์—์„œ ํ„ฐ๋ฏธ๋„ ์—ด๊ธฐ (Windows)

์••์ถ•์„ ํ•ด์ œํ•œ ํด๋”๋ฅผ ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ๋กœ ์—ฝ๋‹ˆ๋‹ค.
๋‹ค์Œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ด ๊ทธ ํด๋”์—์„œ ๋ฐ”๋กœ ํ„ฐ๋ฏธ๋„์„ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• A โ€” ์ฃผ์†Œ ํ‘œ์‹œ์ค„ ์ด์šฉ (๊ฐ€์žฅ ๋น ๋ฆ„)

  1. ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ ์ƒ๋‹จ์˜ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. ์ฃผ์†Œ๊ฐ€ ์„ ํƒ๋œ ์ƒํƒœ์—์„œ cmd๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
  3. ํ•ด๋‹น ํด๋” ๊ฒฝ๋กœ์—์„œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• B โ€” ์šฐํด๋ฆญ ๋ฉ”๋‰ด ์ด์šฉ

  1. ์••์ถ• ํ•ด์ œ๋œ ํด๋” ์•ˆ์˜ ๋นˆ ๊ณต๊ฐ„์„ Shift + ์šฐํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  2. "์—ฌ๊ธฐ์„œ PowerShell ์ฐฝ ์—ด๊ธฐ" ๋˜๋Š” "์—ฌ๊ธฐ์„œ ํ„ฐ๋ฏธ๋„ ์—ด๊ธฐ" ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

4๋‹จ๊ณ„ โ€” ํŒจํ‚ค์ง€ ์„ค์น˜

์—ด๋ฆฐ ํ„ฐ๋ฏธ๋„(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ๋˜๋Š” PowerShell)์—์„œ ์•„๋ž˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ  Enter๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค:

pip install -r requirements.txt

์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. (์ธํ„ฐ๋„ท ์†๋„์— ๋”ฐ๋ผ ์ˆ˜์‹ญ ์ดˆ ์ •๋„ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.)

Ubuntu / Debian ์‚ฌ์šฉ์ž: externally-managed-environment ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด
pip ๋Œ€์‹  sudo ./install_ubuntu.sh๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์œ„์˜ Python ํŒจํ‚ค์ง€ ์„น์…˜์„ ์ฐธ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

5๋‹จ๊ณ„ โ€” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰

python main.py

์ฒ˜์Œ ์‹คํ–‰ํ•˜๋ฉด ์„ค์ • โ†’ GitHub ์ธ์ฆ... ๋ฉ”๋‰ด๋กœ ์ด๋™ํ•ด ํ™”๋ฉด์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ GitHub ๊ณ„์ •์„ ์—ฐ๋™ํ•ฉ๋‹ˆ๋‹ค.


ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

Hungry_mans_CopilotChatBot/
โ”œโ”€โ”€ main.py # ์ง„์ž…์ 
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ install_ubuntu.sh # Ubuntu/Debian์šฉ ํŒจํ‚ค์ง€ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ src/
 โ”œโ”€โ”€ __init__.py
 โ”œโ”€โ”€ app.py # tkinter GUI (๋ฉ”์ธ ์ฐฝ + ๋ชจ๋“  ๋‹ค์ด์–ผ๋กœ๊ทธ)
 โ”œโ”€โ”€ auth.py # GitHub ๋””๋ฐ”์ด์Šค ํ”Œ๋กœ์šฐ OAuth + ํ† ํฐ ์ €์žฅ
 โ”œโ”€โ”€ chat_store.py # SQLite ๊ธฐ๋ฐ˜ ๋Œ€ํ™” ๋ฐ ๋ฉ”์‹œ์ง€ ์ €์žฅ
 โ”œโ”€โ”€ context_manager.py # ํ† ํฐ ์ธ์‹ ์ปจํ…์ŠคํŠธ ์ฐฝ ํŠธ๋ฆฌ๋ฐ (tiktoken)
 โ”œโ”€โ”€ copilot_api.py # Copilot Chat API ํด๋ผ์ด์–ธํŠธ (์ŠคํŠธ๋ฆฌ๋ฐ)
 โ”œโ”€โ”€ file_handler.py # ์ด๋ฏธ์ง€ / CSV / ์—‘์…€ ํŒŒ์ผ ์ฒ˜๋ฆฌ
 โ”œโ”€โ”€ paths.py # ์•ฑ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๊ฒฝ๋กœ ๊ด€๋ฆฌ
 โ””โ”€โ”€ prompt_manager.py # ๊ฐœ์ธ ํ”„๋กฌํ”„ํŠธ CRUD + ๊ฐ€์ ธ์˜ค๊ธฐ/๋‚ด๋ณด๋‚ด๊ธฐ

์ธ์ฆ ๋ฐฉ์‹

  1. ์•ฑ์ด GitHub์— ๋””๋ฐ”์ด์Šค ์ฝ”๋“œ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค (๊ณต๊ฐœ Copilot OAuth App ํด๋ผ์ด์–ธํŠธ ID Iv1.b507a08c87ecfe98 ์‚ฌ์šฉ).
  2. ๋ธŒ๋ผ์šฐ์ €์—์„œ https://github.com/login/device ๊ฐ€ ์—ด๋ฆฌ๋ฉด โ€” ํ™”๋ฉด์— ํ‘œ์‹œ๋œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•ด ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.
  3. ์•ฑ์ด ์Šน์ธ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ GitHub๋ฅผ ํด๋งํ•˜๋ฉฐ, ์™„๋ฃŒ ํ›„ GitHub ํ† ํฐ์„ ~/.copilot_chatbot_token.json์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค GitHub ํ† ํฐ์„ ๋‹จ๊ธฐ Copilot API ๋ฒ ์–ด๋Ÿฌ ํ† ํฐ(์œ ํšจ ์‹œ๊ฐ„ ~30๋ถ„, ์ž๋™ ๊ฐฑ์‹ )๊ณผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค๋ณด๋“œ ๋‹จ์ถ•ํ‚ค

ํ‚ค ๋™์ž‘
Enter ๋ฉ”์‹œ์ง€ ์ „์†ก
Shift + Enter ์ž…๋ ฅ ์ฐฝ์—์„œ ์ค„ ๋ฐ”๊ฟˆ

๊ฐœ๋ฐœ ๋™๊ธฐ

์ž‘์„ฑ์ž๋Š” GitHub Copilot Pro+ ๊ตฌ๋…์ž(์›” 39๋‹ฌ๋Ÿฌ โ€” ์ ์‹ฌ์„ ๊ฑด๋„ˆ๋›ฐ๋ฉฐ ๋‚ธ ๊ตฌ๋…๋ฃŒ)๋กœ,
ํ•ด๋‹น ๊ตฌ๋…์— ์ด๋ฏธ ํฌํ•จ๋œ Claude, Gemini, GPT-4.1 ๋ชจ๋ธ์„
๋ณ„๋„ ์œ ๋ฃŒ ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•˜์ง€ ์•Š๊ณ  ํŽธ๋ฆฌํ•œ ๋ฐ์Šคํฌํƒ‘ GUI๋กœ ์“ฐ๊ณ  ์‹ถ์–ด์„œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

About

Hungry_mans_CopilotChatBot

Resources

Stars

Watchers

Forks

Packages

Contributors

AltStyle ใซใ‚ˆใฃใฆๅค‰ๆ›ใ•ใ‚ŒใŸใƒšใƒผใ‚ธ (->ใ‚ชใƒชใ‚ธใƒŠใƒซ) /