๐ 14๊ธฐ ๋ฌธ๊ณผ์๋n8n ์คํฐ๋
โ๏ธ n8n ์์ํ๊ธฐ๐ข AI agent with RAG ์ฒ์์ผ๋ก ๊ตฌํํด๋ณด๊ธฐ
์ฅ์ฌ์
์์ฝ
N8N๊ณผ RAG๋ฅผ ํ์ฉํด ํ๊ณ/๋ฒ๋ฅ ์๋ฌธ AI ์ฑ๋ด์ ๊ตฌํํ ์ฌ๋ก
ํ๊ณ ๋ฒ๋ฅ ๊ด๋ จ ๋ฌธ์ ์๋ต์ ์๋ํ์ ์ ํ์ฑ ํฅ์์ ์ํด RAG ๊ธฐ๋ฐ ์ฑ๋ด ๋์
๐ฏ Vector DB ๊ตฌ์ถ ์ ๋ฌธ์ ๋ฐ์ดํฐ์ ์ ํํ ๋ถํ ๊ณผ ์ ์ฅ ์ฌ๋ถ ํ์ธ์ด ์ฑ๋ฅ์ ์ข์ฐํ๋ค.
ํ์ฉ ํด
N8N - ์ํฌํ๋ก์ฐ ์๋ํ ๋ฐ AI ์์ด์ ํธ ๊ตฌ์ถ
Telegram - ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ฐ ์ฑ๋ด ํ๋ก ํธ์๋
ChatGPT - ์์ฐ์ด ์ฒ๋ฆฌ ๋ฐ ์๋ต ์์ฑ
Supabase - Vector DB ๊ตฌ์ถ ๋ฐ ๋ฐ์ดํฐ ์ ์ฅ
์งํ ๋ฐฉ๋ฒ
๊ธฐํ ์๋ฆฝ (ChatGPT์ ๋ํํ๋ฉฐ ๊ตฌํ ๊ฐ๋ฅ์ฑ ๊ฒ์ฆ)
ํ๋ก ํธ์๋ ๊ตฌ์ถ (Telegram Bot ์์ฑ ๋ฐ API ์ฐ๋)
Vector DB ๊ตฌ์ถ (7๊ฐ ๋ฒ๋ฅ ๋ฌธ์ ๋ถํ ๋ฐ ์ ์ฅ)
AI ์์ด์ ํธ ์ค๊ณ (RAG ์์คํ ๊ตฌํ ๋ฐ ChatGPT ์ฐ๋)
์ํฌํ๋ก์ฐ ๊ตฌ์ฑ (N8N์์ ๋ ธ๋ ์ฐ๊ฒฐ ๋ฐ ํ๋ผ๋ฏธํฐ ์ค์ )
ํ ์คํธ ๋ฐ ๋๋ฒ๊น (์ค๋ฅ ๋ฐ์ ์ง์ ํ์ธ ๋ฐ ์์ )
์ฑ๋ฅ ์ต์ ํ (Vector DB ๊ฒ์ ๊ฒฐ๊ณผ ์ ํ๋ ๊ฐ์ )
๐ 14๊ธฐ Cursor์ ์ฝ๋ฉ ์คํฐ๋
โ๏ธ ์ฒซ ์ ์ฝ๋ฉ ์์ฑ์ : Cursor์ Phyton์ผ๋ก edge-tts๋ฅผ ์ด์ฉํ์ฌ ์์ ํ์ผ์ ํ๊ธ๊ณผ ์์ด ํ ์คํธ ์์ฑ ์ฌ์ํ๊ธฐ
Jang Mi Hee
์์ฝ
Edge-TTS์ Python์ ํ์ฉํด ์์ ํ์ผ์ ํ์ ํ ์คํธ๋ฅผ ์์ฑ์ผ๋ก ๋ณํํ์ฌ ํ์ตํ๋ ์ฌ๋ก
ํ์ ํํ ํ์ต ์ ๋ฐ๋ณต์ ์ธ ์์ฑ ์ฌ์๊ณผ ํ์ต ์ง๋ ๊ด๋ฆฌ์ ๋ถํธํจ์ ์๋ํ๋ก ํด๊ฒฐํ๊ณ ์ ํจ
๐ฏ ์ ์ฝ๋ฉ๋ง์ผ๋ก๋ ์ค์ฉ์ ์ธ ํ์ต ๋๊ตฌ๋ฅผ ๋ง๋ค ์ ์์ผ๋, ์ธ๋ถ ๊ธฐ๋ฅ ์ถ๊ฐ ์ ๋จ๊ณ์ ์ ๊ทผ์ด ์ค์ํ๋ค.
ํ์ฉ ํด
Cursor - Python ์ฝ๋ ์์ฑ ๋ฐ ๋๋ฒ๊น
Edge-TTS - ํ๊ธ/์์ด ํ ์คํธ ์์ฑ ๋ณํ
Python - GUI ๊ฐ๋ฐ ๋ฐ ์์ ํ์ผ ์ฒ๋ฆฌ
์งํ ๋ฐฉ๋ฒ
ํ์ต ๋ฐ์ดํฐ ์ค๋น (9๊ฐ ์ํธ์ ํ์ ํํ ๋ฌธ์ฅ ์์ ํ์ผ ์์ฑ)
GUI ๋์์ธ ์ค๊ณ (๋ฒํผ, ์ฌ๋ผ์ด๋, ์๋ ์กฐ์ ๋ฑ ๊ธฐ๋ฅ ๊ตฌํ)
Edge-TTS ์์คํ ์ฐ๋ (ํ๊ธ/์์ด ํ ์คํธ ์์ฑ ๋ณํ ๊ตฌํ)
ํ์ต ๊ธฐ๋ฅ ๊ตฌํ (์ฌ์ ์๋, ์์ ์์น, ์ฃผ์ ์ ํ ๊ธฐ๋ฅ ์ถ๊ฐ)
์ค๋ฅ ์์ ๋ฐ ํ ์คํธ (์ฌ๋ผ์ด๋๋ฐ ๊ธฐ๋ฅ ์ถ๊ฐ ๊ณผ์ ์ ๋ฒ๊ทธ ์์ )
์คํ ํ์ผ ์์ฑ (setup.py ์์ฑ ๋ฐ exe ํ์ผ ์ปดํ์ผ)
๐ 14๊ธฐ ๋ ธ์ฝ๋ ๋ฒ๋ธ ์คํฐ๋
โ๏ธ Bubble์ ํ์ฉํ ๊ฐ์ ์น์ฌ์ดํธ ์ ์ ๊ฒฝํ_week2
๊ธฐ์จ2
์์ฝ
Bubble์ ํ์ฉํด ๊ฐ์ ์ฝํ ์ธ ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ๋ ๋ ธ์ฝ๋ ์น์ฌ์ดํธ ๊ตฌ์ถ ์ฌ๋ก
์ ํ๋ธ ๊ฐ์ ์์๊ณผ ์๋ฃ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ํ์ต์์๊ฒ ์ ๊ณตํ๊ธฐ ์ํ ํ๋ซํผ ํ์
๐ฏ ๋ ธ์ฝ๋ ๋๊ตฌ์์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค๊ณ๊ฐ ์ ์ฒด ๊ฐ๋ฐ ์ฑ๊ณต์ ์ข์ฐํ๋ค.
ํ์ฉ ํด
Bubble - ์น์ฌ์ดํธ ์ ์ฒด ๊ตฌ์ถ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ
Perplexity - ๊ฐ๋ฐ ๊ณผ์ ์ ์ค๋ฅ ํด๊ฒฐ ๋ฐ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์ ํ์
BEP Plugin - ์ฌ์ฉ์ QnA ์๋ฆผ ๊ธฐ๋ฅ ๊ตฌํ
์งํ ๋ฐฉ๋ฒ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ ์ค๊ณ (๊ฐ์, ์ฑํฐ, ํด๋ฆฝ ๊ฐ์ ๊ด๊ณ ์ ์)
๊ฐ์์ค ๋ ์ด์์ ๊ตฌ์ฑ (๋ฆฌํผํ ๊ทธ๋ฃน์ผ๋ก ์ฑํฐ๋ณ ์์ ๋ชฉ ํ์)
๋์์ ํ๋ ์ด์ด ๊ธฐ๋ฅ ๊ตฌํ (์ ํ๋ธ ์์ ์ฐ๋ ๋ฐ ์ฌ์ ์ปจํธ๋กค)
๋ฐ์ดํฐ ํํฐ๋ง ์ค์ (์ฑํฐ๋ณ ์ฝํ ์ธ ๋ถ๋ฅ ๋ฐ ํ์)
ํ์ผ ์ ๋ก๋ ์์คํ ๊ตฌ์ถ (๊ฐ์์๋ฃ ์ธ๋ถ URL ๋ฐฉ์์ผ๋ก ๋ฐฐํฌ)
QnA ๊ธฐ๋ฅ ์ถ๊ฐ (์ฌ์ฉ์ ์ ๋ ฅ์ ๋ํ ์๋ฆผ ์์คํ ๊ตฌํ)
์ด๋ฏธ์ง ๊ด๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ (์ปค์คํ ์คํ ์ดํธ๋ก ์์์ ์ฅ ๋ฐ ์ญ์ )
๋ฐ์ดํฐ ํ์ ํ์ ์ต์ ํ (์๊ฐ ๋จ์ ๋ณํ, ๋ชฉ๋ก ํํฐ๋ง)
๐ 14๊ธฐ n8n์์ด์ ํธ ์คํฐ๋
โ๏ธ ํ์ด์ฌ X -> N8N ์ผ๋ก ๋ด์ค ๋ชจ๋ํฐ๋ง ์๋ํํ๊ธฐ ๊ณ ๋ํํ๊ธฐ
ํฉ์ธ์ค
์์ฝ
N8N๊ณผ AI๋ฅผ ํ์ฉํด ๋ด์ค ๋ชจ๋ํฐ๋ง ์๋ํ ์์คํ ์ ๊ตฌ์ถํ ์ฌ๋ก
ํ์ด์ฌ์ผ๋ก ๊ตฌํํ๋ ๋ด์ค ๋ชจ๋ํฐ๋ง ์์คํ ์ ํ๊ณ๋ฅผ N8N์ผ๋ก ๊ฐ์ ํ๊ณ ์ ํจ
๐ฏ AI๋ฅผ ํ์ฉํ๋ฉด ์ธ๋ก ์ฌ๋ณ HTML ๊ตฌ์กฐ ๋ถ์ ์์ด๋ ๋ด์ค ๋ณธ๋ฌธ์ ํจ๊ณผ์ ์ผ๋ก ์ถ์ถํ ์ ์๋ค.
ํ์ฉ ํด
N8N - ์ํฌํ๋ก์ฐ ์๋ํ ๋ฐ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
OpenAI - ๋ด์ค ๋ณธ๋ฌธ ์ถ์ถ ๋ฐ ๋ด์ฉ ๋ถ์
Docker - N8N ๋ก์ปฌ ํ๊ฒฝ ๊ตฌ์ฑ
Google Sheets - ๋ด์ค ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ
์งํ ๋ฐฉ๋ฒ
ํ๊ฒฝ ๊ตฌ์ฑ (Docker๋ฅผ ํตํ N8N ์ปจํ ์ด๋ ์ค์น)
๋ด์ค ์์ง ์ํฌํ๋ก์ฐ ์ค๊ณ (Manual Trigger, HTTP Request, Loop ๋ ธ๋ ๊ตฌ์ฑ)
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ (์คํฌ๋ํ, JSON ๋ณํ, ํํฐ๋ง)
AI ๋ถ์ ์์คํ ์ฐ๋ (OpenAI๋ก ๋ณธ๋ฌธ ์ถ์ถ, ๊ธฐ์ฌ ์ ํ/์ค์๋/๊ฐ์ฑ ๋ถ์)
์คํ๋ ๋์ํธ ์ฐ๋ (์์ง/๋ถ์๋ ๋ฐ์ดํฐ ์๋ ์ ์ฅ)
์๋ฌ ์ฒ๋ฆฌ ๋ฐ ์ต์ ํ (HTTP Request ์คํจ, HTML ํ์ฑ ์ค๋ฅ ๋์)
๐ 14๊ธฐ CTO ์คํฐ๋
โ๏ธ [PTM] cursor๋ฅผ ์ด์ฉํ ๊ฐ๋ฐ์์ ํ์ด์ฌ ์ ๋ณต๊ธฐ(๋ผ๊ณ ์ฐ๊ณ ๊ณ ์๊ธฐ๋ผ๊ณ ์ฝ์)
์ด์ฌ๋ผ
์์ฝ
Cursor์ ChatGPT๋ฅผ ํ์ฉํด ํ์ด์ฌ ๋ฐฑ์๋ API๋ฅผ ํจ์จ์ ์ผ๋ก ๊ตฌํํ ์ฌ๋ก
ํ์ด์ฌ ๊ฐ๋ฐ ๊ฒฝํ์ด ์ ๋ฌดํ ์ํฉ์์ AI ๋๊ตฌ๋ฅผ ํ์ฉํด ๋ก๊ทธ์ธ/์ธ์ฆ ์์คํ ์ ๊ตฌํํ๊ณ ์ ํจ
๐ฏ API ๋ช ์ธ์์ DB ์ค๊ณ๋ฅผ ๋จผ์ ์์ฑํ๋ฉด AI๋ก ๋น ๋ฅธ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
ํ์ฉ ํด
Cursor - ํ์ด์ฌ ์ฝ๋ ์๋ ์์ฑ ๋ฐ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์ค๊ณ
ChatGPT - ์ฝ๋ ์ดํด ๋ฐ ์ค๋ฅ ํด๊ฒฐ์ ์ํ ์ง์์๋ต
Claude - ๊ฐ๊ฒฐํ ์ฝ๋ ์์ฑ ๋ฐ ์์
์งํ ๋ฐฉ๋ฒ
๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ (MySQL 8.0.40, Ubuntu 22.04 ์๋ฒ ์ธํ )
ํ์ด์ฌ ๊ฐ์ํ๊ฒฝ ์ค์ (pip3 ๋ช ๋ น์ด๋ก ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น)
๋ฐฑ์๋ API ๊ตฌํ (JWT ํ ํฐ ๊ธฐ๋ฐ ๋ก๊ทธ์ธ/์ธ์ฆ ์์คํ )
ํ๋ก ํธ์๋ ์ฝ๋ ์์ฑ (๋ฐฑ์๋ API ์์ฑ ํ ์งํ)
์์ธ์ฒ๋ฆฌ ์ถ๊ฐ (์ฌ์ฉ์ ํผ๋๋ฐฑ์ ์ํ ํ์ ์๋ฆผ ๊ตฌํ)
์ค๋ฅ ๋์ (๊ฐ์ํ๊ฒฝ ๊ฒฝ๋ก ๋ณ๊ฒฝ ์ ์ ์ฒด ์ฌ์ค์น)