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

wwwvwwwv/Hungry_mans_CopilotChatBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

22 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 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 νŒ¨ν‚€μ§€

pip install -r requirements.txt
νŒ¨ν‚€μ§€ μ—­ν• 
requests GitHub 및 Copilot API HTTP 톡신
openpyxl .xlsx μ—‘μ…€ 파일 읽기
tiktoken μ»¨ν…μŠ€νŠΈ μ°½ 관리λ₯Ό μœ„ν•œ μ •ν™•ν•œ 토큰 계산
typing_extensions Python 3.11 λ―Έλ§Œμ—μ„œ μ΅œμ‹  typing κΈ°λŠ₯ 지원

GUIμ—λŠ” tkinterλ₯Ό μ‚¬μš©ν•˜λ©°, WindowsΒ·macOS용 Python 곡식 μ„€μΉ˜ ν”„λ‘œκ·Έλž¨μ—λŠ” κΈ°λ³Έ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
Linuxμ—μ„œλŠ” λ³„λ„λ‘œ μ„€μΉ˜ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

# 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

μ„€μΉ˜κ°€ μ™„λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦½λ‹ˆλ‹€. (인터넷 속도에 따라 μˆ˜μ‹­ 초 정도 κ±Έλ¦½λ‹ˆλ‹€.)

5단계 β€” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰

python main.py

처음 μ‹€ν–‰ν•˜λ©΄ μ„€μ • β†’ GitHub 인증... λ©”λ‰΄λ‘œ 이동해 ν™”λ©΄μ˜ μ•ˆλ‚΄μ— 따라 GitHub 계정을 μ—°λ™ν•©λ‹ˆλ‹€.


ν”„λ‘œμ νŠΈ ꡬ쑰

Hungry_mans_CopilotChatBot/
β”œβ”€β”€ main.py # μ§„μž…μ 
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ 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

Languages

  • Python 100.0%

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /