Skip to content

๐Ÿ”ฅ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด๋ชจ๋ธ(LLM)๊ณผ RAG ๊ธฐ๋ฐ˜์˜ ์ง€๋Šฅํ˜• ์งˆ์˜์‘๋‹ต ์‹œ์Šคํ…œ, ๋Œ€ํ™”ํ˜• ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ํ˜์‹  ๋„๊ตฌ! Text-to-SQL Generation via LLMs using RAG.

License

Notifications You must be signed in to change notification settings

DramaticCollaboration/SQLBot

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1,649 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

SQL๋ด‡

๋Œ€ํ˜• ๋ชจ๋ธ ๋ฐ RAG ๊ธฐ๋ฐ˜ ์ง€๋Šฅํ˜• ์งˆ๋ฌธ ์‹œ์Šคํ…œ

์ตœ์‹  ๋ฆด๋ฆฌ์Šค ๋ณ„ ๋‹ค์šด๋กœ๋“œ


SQLBot์€ ๋Œ€๊ทœ๋ชจ ๋ชจ๋ธ๊ณผ RAG(์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ง€๋Šฅํ˜• ์งˆ์˜์‘๋‹ต ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. SQLBot์˜ ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ: ๋น… ๋ชจ๋ธ๊ณผ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ์—ฌ์ •์„ ์‹œ์ž‘ํ•˜์„ธ์š”. ๋น… ๋ชจ๋ธ๊ณผ RAG๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๊ณ ํ’ˆ์งˆ์˜ Text2SQL์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ†ตํ•ฉ์ด ์‰ฝ์Šต๋‹ˆ๋‹ค: ํƒ€์‚ฌ ๋น„์ฆˆ๋‹ˆ์Šค ์‹œ์Šคํ…œ์— ๋น ๋ฅด๊ฒŒ ๋‚ด์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ n8n, MaxKB, Dify, Coze์™€ ๊ฐ™์€ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ๊ณผ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์–ด ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋น ๋ฅด๊ฒŒ ์ง€๋Šฅํ˜• ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•ˆ์ „ํ•˜๊ณ  ์ œ์–ด ๊ฐ€๋Šฅ: ์„ธ๋ถ„ํ™”๋œ ๋ฐ์ดํ„ฐ ๊ถŒํ•œ ์ œ์–ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ž‘์—… ๊ณต๊ฐ„ ๊ธฐ๋ฐ˜ ๋ฆฌ์†Œ์Šค ๊ฒฉ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ž‘๋™ ์›๋ฆฌ

system-arch

๋น ๋ฅธ ์‹œ์ž‘

์„ค์น˜ ๋ฐ ๋ฐฐํฌ

Linux ์„œ๋ฒ„๋ฅผ ์ค€๋น„ํ•˜๊ณ  Docker๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๋‹ค์Œ์˜ ์›ํด๋ฆญ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

docker run -d \
  --name sqlbot \
  --restart unless-stopped \
  -p 8000:8000 \
  -p 8001:8001 \
  -v ./data/sqlbot/excel:/opt/sqlbot/data/excel \
  -v ./data/sqlbot/file:/opt/sqlbot/data/file \
  -v ./data/sqlbot/images:/opt/sqlbot/images \
  -v ./data/sqlbot/logs:/opt/sqlbot/app/logs \
  -v ./data/postgresql:/var/lib/postgresql/data \
  --privileged=true \
  dataease/sqlbot

1Panel App Store๋ฅผ ํ†ตํ•ด์„œ๋„ SQLBot์„ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํŠธ๋ผ๋„ท์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์˜คํ”„๋ผ์ธ ์„ค์น˜ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQLBot์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ‘๊ทผ ๋ฐฉ๋ฒ•

  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ฝ๋‹ˆ๋‹ค: http://<์„œ๋ฒ„ IP>:8000/
  • ์‚ฌ์šฉ์ž ์ด๋ฆ„: admin
  • ๋น„๋ฐ€๋ฒˆํ˜ธ: SQLBot@123456

UI

image

์Šคํƒ€ ์—ญ์‚ฌ

๋ณ„ ์—ญ์‚ฌ ์ฐจํŠธ

Feizhiyun์˜ ๋‹ค๋ฅธ ์Šคํƒ€ ํ”„๋กœ์ ํŠธ

  • DataEase - ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค BI ๋„๊ตฌ 1ํŒจ๋„ - ์ตœ์‹  ์˜คํ”ˆ์†Œ์Šค Linux ์„œ๋ฒ„ ๊ด€๋ฆฌ ๋ฐ ์šด์˜ ํŒจ๋„์ž…๋‹ˆ๋‹ค.
  • MaxKB - ๊ฐ•๋ ฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์ง€๋Šฅํ˜• ์—์ด์ „ํŠธ ํ”Œ๋žซํผ
  • JumpServer - ์ธ๊ธฐ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ์š”์ƒˆ ์„œ๋ฒ„
  • Cordys CRM - ์ฐจ์„ธ๋Œ€ ์˜คํ”ˆ์†Œ์Šค AI CRM ์‹œ์Šคํ…œ
  • Halo - ๊ฐ•๋ ฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์˜คํ”ˆ ์†Œ์Šค ์›น์‚ฌ์ดํŠธ ๊ตฌ์ถ• ๋„๊ตฌ
  • MeterSphere - ์˜คํ”ˆ ์†Œ์Šค ์ง€์†์  ํ…Œ์ŠคํŠธ ๋„๊ตฌ์˜ ์ƒˆ๋กœ์šด ์„ธ๋Œ€

๋ผ์ด์„ผ์Šค

์ด ์ €์žฅ์†Œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ GPLv3์ด์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ๋Š” FIT2CLOUD ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ ์Šค ์˜คํ”ˆ ์†Œ์Šค ๊ณ„์•ฝ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

SQLBot ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ 2์ฐจ ๊ฐœ๋ฐœ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹ค์Œ ๊ทœ์ •์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • SQLBot ๋กœ๊ณ  ๋ฐ ์ €์ž‘๊ถŒ ์ •๋ณด๋Š” ๊ต์ฒดํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • 2์ฐจ ๊ฐœ๋ฐœ ํ›„์˜ ํŒŒ์ƒ ์ €์ž‘๋ฌผ์€ GPL V3์˜ ์˜คํ”ˆ์†Œ์Šค ์˜๋ฌด๋ฅผ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ณตํ•ด์ฃผ์‹  ์†Œ์Šค๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ SQLBot ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ธ ํ•œ๊ตญ์–ด ๋งค๋‰ด์–ผ์„ ์ž‘์„ฑํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค. SQLBot์€ **๋Œ€ํ˜• ์–ธ์–ด ๋ชจ๋ธ(LLM)**๊ณผ RAG(๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ) ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์ž์—ฐ์–ด ์งˆ๋ฌธ์„ SQL ์ฟผ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ง€๋Šฅํ˜• ์งˆ์˜/์‘๋‹ต ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

SQLBot ๋งค๋‰ด์–ผ

I. SQLBot ๊ฐœ์š”

SQLBot์€ DataEase ์˜คํ”ˆ์†Œ์Šค ํŒ€์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ํ…์ŠคํŠธ-ํˆฌ-SQL(Text-to-SQL) ๋ณ€ํ™˜ ๊ธฐ๋Šฅ์„ ํ•ต์‹ฌ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ๋ฒ„์ „ v1.2.0์—์„œ ํ•œ๊ตญ์–ด ํ˜„์ง€ํ™” ๋‚ด์šฉ์ด ์—…๋ฐ์ดํŠธ๋˜๊ณ  ๋ณด์™„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง• ๋ฐ ์žฅ์ 

  • ์‰ฌ์šด ํ†ตํ•ฉ (Easy Integration): n8n, MaxKB, Dify, Coze ๋“ฑ ๋‹ค์–‘ํ•œ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์— ๋น ๋ฅด๊ฒŒ ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์•ˆ์ „์„ฑ ๋ฐ ์ œ์–ด: ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ธฐ๋ฐ˜์˜ ๋ฆฌ์†Œ์Šค ๊ฒฉ๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋ฉฐ, ์„ธ๋ถ„ํ™”๋œ ๋ฐ์ดํ„ฐ ๊ถŒํ•œ ์„ค์ •์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์˜ ๋ณด์•ˆ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • LLM ๊ธฐ๋ฐ˜: ๊ฐ•๋ ฅํ•œ ์ž์—ฐ์–ด ์ดํ•ด ๋ฐ SQL ์ƒ์„ฑ ๋Šฅ๋ ฅ์„ ํ™œ์šฉํ•˜๋ฉฐ, RAG ๊ธฐ์ˆ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒ์„ฑ ์ •ํ™•๋„๋ฅผ ๋†’์ž…๋‹ˆ๋‹ค.
  • ์ฃผ์š” ๊ธฐ๋Šฅ: ์งˆ์˜/์‘๋‹ต ๋ถ„์„, ์‹ฌ์ธต ํƒ์ƒ‰, ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ, ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์ถ• ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

II. ์„ค์น˜ ๋ฐ ์ ‘์†

SQLBot์€ 1Panel, ์˜จ๋ผ์ธ, ์˜คํ”„๋ผ์ธ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ค์น˜ ํ™˜๊ฒฝ์œผ๋กœ Ubuntu 22.04 ๋˜๋Š” CentOS 7 (์ปค๋„ ๋ฒ„์ „ โ‰ฅ 3.10), 4์ฝ”์–ด 8G CPU/๋ฉ”๋ชจ๋ฆฌ, 100G ๋””์Šคํฌ ๊ณต๊ฐ„์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

1. 1Panel์„ ์ด์šฉํ•œ ์„ค์น˜

1Panel ์„ค์น˜ ๋ฐ ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์Šคํ† ์–ด์—์„œ SQLBot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ฐพ์•„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  • ์„ค์น˜ ์‹œ PostgreSQL์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ•„์ˆ˜ ์„ค์ •: SQLBot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฆ„, ์Šˆํผ ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž๋ช… ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ.
  • ๊ธฐ๋ณธ ํฌํŠธ: SQLBot ์„œ๋น„์Šค ํฌํŠธ๋Š” 8000, MCP ์„œ๋น„์Šค ํฌํŠธ๋Š” 8001๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

2. ์˜จ๋ผ์ธ ์„ค์น˜ (Docker)

Docker ํ™˜๊ฒฝ์ด ๊ตฌ์„ฑ๋œ ์„œ๋ฒ„์—์„œ ๋‹ค์Œ ํฌํŠธ๊ฐ€ ๊ฐœ๋ฐฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

ํฌํŠธ ์šฉ๋„ ์„ค๋ช…
8000 Web ์„œ๋น„์Šค ํฌํŠธ ๊ธฐ๋ณธ ์›น ์„œ๋น„์Šค ์ ‘๊ทผ ํฌํŠธ
8001 MCP ์„œ๋น„์Šค ํฌํŠธ ๊ธฐ๋ณธ MCP ์„œ๋น„์Šค ์ ‘๊ทผ ํฌํŠธ
22 SSH ์„ค์น˜, ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ๊ด€๋ฆฌ์— ์‚ฌ์šฉ

3. ARM ์˜จ๋ผ์ธ ์„ค์น˜

์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „์€ ๊ณต์‹ ARM ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๊ฐœ๋ฐœ ๋ฒ„์ „์˜ ์ฒดํ—˜ ์ด๋ฏธ์ง€๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

4. ๋กœ๊ทธ์ธ ๋ฐ ์ ‘์†

์„ค์น˜์— ์„ฑ๊ณตํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด http://[๋Œ€์ƒ ์„œ๋ฒ„ IP ์ฃผ์†Œ]:8000 ์ฃผ์†Œ๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ๊ด€๋ฆฌ์ž ๊ณ„์ •:
    • ์‚ฌ์šฉ์ž ์ด๋ฆ„: admin
    • ๊ธฐ๋ณธ ๋น„๋ฐ€๋ฒˆํ˜ธ: SQLBot@123456

III. ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ฐ ๊ตฌ์„ฑ

SQLBot์€ [์ง€๋Šฅํ˜• ์งˆ์˜/์‘๋‹ต], [๋ฐ์ดํ„ฐ ์†Œ์Šค], [๋Œ€์‹œ๋ณด๋“œ], **[์„ค์ •]**์˜ ๋„ค ๊ฐ€์ง€ ํ•ต์‹ฌ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

1. ์ง€๋Šฅํ˜• ์งˆ์˜/์‘๋‹ต (ํ•ต์‹ฌ ๊ธฐ๋Šฅ)

์‚ฌ์šฉ์ž๊ฐ€ ์ž์—ฐ์–ด๋กœ ์งˆ๋ฌธ์„ ํ•˜๋ฉด, ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์ด ์งˆ๋ฌธ ์˜๋„๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์„ ํƒ๋œ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฐจํŠธ์™€ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • ๋Œ€ํ™” ์ƒ์„ฑ: [์ƒˆ ๋Œ€ํ™”] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์„ ํƒํ•˜์—ฌ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ ์ถ”์ฒœ ์งˆ๋ฌธ: ์‹œ์Šคํ…œ์€ ํ˜„์žฌ ๋ฐ์ดํ„ฐ ์†Œ์Šค์˜ ๊ตฌ์กฐ์™€ ์‚ฌ์šฉ์ž์˜ ๊ณผ๊ฑฐ ์งˆ์˜ ๊ธฐ๋ก์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”์ฒœ ์งˆ๋ฌธ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ ํ™œ์šฉ:
    • SQL ๋ณด๊ธฐ: ๋ชจ๋“  ์งˆ์˜/์‘๋‹ต์—๋Š” ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ SQL ์ฟผ๋ฆฌ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ, ์ด๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‹ฌ์ธต ๋ถ„์„: ์ƒ์„ฑ๋œ ์ฐจํŠธ์˜ [๋ฐ์ดํ„ฐ ๋ถ„์„] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด LLM์ด ์ถ”์„ธ ๋ถ„์„ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ํ•ด์„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์˜ˆ์ธก: ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ(์˜ˆ: ์›”๋ณ„, ๋ถ„๊ธฐ๋ณ„ ๋ฐ์ดํ„ฐ)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ [๋ฐ์ดํ„ฐ ์˜ˆ์ธก] ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฏธ๋ž˜ ์ง€ํ‘œ ๊ฐ’์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ ์†Œ์Šค ๊ด€๋ฆฌ

SQLBot์˜ ๋ถ„์„ ๋Œ€์ƒ์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ง€์› ๋ฐ์ดํ„ฐ ์†Œ์Šค ์œ ํ˜•:
    • OLTP: MySQL, SQL Server, Oracle, PostgreSQL, ่พพๆขฆ(Dameng).
    • OLAP: ClickHouse, Apache Doris.
    • ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค/๋ ˆ์ดํฌ: AWS RedShift.
    • ๋ฐ์ดํ„ฐ ํŒŒ์ผ: Excel/CSV.
  • ๋ฐ์ดํ„ฐ ์›๋ณธ ์„ค์ •: ๋ฐ์ดํ„ฐ ์†Œ์Šค ์œ ํ˜•์„ ์„ ํƒํ•˜๊ณ , IP, ํฌํŠธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ž๊ฒฉ ์ฆ๋ช…(์‚ฌ์šฉ์ž ์ด๋ฆ„/๋น„๋ฐ€๋ฒˆํ˜ธ) ๋“ฑ์„ ์ž…๋ ฅํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  • ํ‘œ ๊ด€๊ณ„ ๊ด€๋ฆฌ: ๋‹ค์ค‘ ํ…Œ์ด๋ธ” ์ฟผ๋ฆฌ ์‹œ ์ •ํ™•ํ•œ SQL ์ƒ์„ฑ์„ ๋•๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์†Œ์Šค ๋‚ด ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•„๋“œ ๊ตฌ์กฐ: ๋ฐ์ดํ„ฐ ์†Œ์Šค ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ํ…Œ์ด๋ธ”๋ณ„ ํ•„๋“œ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•˜๊ณ , ์ง€๋Šฅํ˜• ์งˆ์˜ ์‹œ ์ธ์‹ํ•  ํ•„๋“œ๋ฅผ ์„ ํƒ์ ์œผ๋กœ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๋Œ€์‹œ๋ณด๋“œ

[์ง€๋Šฅํ˜• ์งˆ์˜/์‘๋‹ต] ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฐจํŠธ๋ฅผ ๋ชจ์•„ ์‚ฌ์šฉ์ž ์ •์˜ ์‹œ๊ฐํ™” ๋ฐ์ดํ„ฐ ๋ณด๋“œ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž๋Š” ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ, ๋ ˆ์ด์•„์›ƒ ์กฐ์ •, ์„ค๋ช… ์ถ”๊ฐ€ ๋“ฑ์„ ํ†ตํ•ด ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ณด๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

IV. ๊ณ ๊ธ‰ ์„ค์ • ๋ฐ ๊ด€๋ฆฌ

์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” [์„ค์ •] ๋ฉ”๋‰ด์—์„œ ์‚ฌ์šฉ์ž, ๊ถŒํ•œ, AI ๋ชจ๋ธ ๋“ฑ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

1. AI ๋ชจ๋ธ ์„ค์ •

SQLBot์€ DeepSeek๋“ฑ ์ฃผ์š” LLM๊ณผ์˜ ํ†ตํ•ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋ธ ์ถ”๊ฐ€: ๋ชจ๋ธ ์ œ๊ณต์—…์ฒด๋ฅผ ์„ ํƒํ•˜๊ณ , ๋ชจ๋ธ ์ด๋ฆ„, API ์ฃผ์†Œ, Key, ๋ชจ๋ธ ๋งค๊ฐœ๋ณ€์ˆ˜(์˜จ๋„, ์ตœ๋Œ€ ์‘๋‹ต ๊ธธ์ด ๋“ฑ)๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ๊ธฐ๋ณธ ๋ชจ๋ธ: ์—ฌ๋Ÿฌ ๋ชจ๋ธ์ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ, ์‹œ์Šคํ…œ ๊ธฐ๋ณธ ๋ชจ๋ธ์„ ์„ค์ •ํ•˜์—ฌ ์ง€๋Šฅํ˜• ์งˆ์˜ ์‹œ ํ˜ธ์ถœํ•  ๊ธฐ๋ณธ LLM์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Ollama ํ†ตํ•ฉ: Ollama๋กœ ๋ฐฐํฌ๋œ ๋ชจ๋ธ(์˜ˆ: Qwen3)์„ ์ง์ ‘ ์—ฐ๋™ํ•˜๊ฑฐ๋‚˜, DeepSeek R1์ฒ˜๋Ÿผ OpenAI ์ธํ„ฐํŽ˜์ด์Šค์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ชจ๋ธ์€ One API๋ฅผ ํ†ตํ•ด ๋ณ€ํ™˜ํ•˜์—ฌ SQLBot์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๊ถŒํ•œ ๋ฐ ์ •ํ™•๋„ ํ–ฅ์ƒ ์„ค์ •

  • ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ: ๋ฐ์ดํ„ฐ ์†Œ์Šค, ๋Œ€ํ™” ๊ธฐ๋ก, ๋Œ€์‹œ๋ณด๋“œ ๋“ฑ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ  ๊ถŒํ•œ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
  • ๊ถŒํ•œ ์„ค์ •: ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
    • ๊ทœ์น™ ๊ทธ๋ฃน ๋‹จ์œ„๋กœ ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ํ–‰ ๊ถŒํ•œ(ํŠน์ • ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ณด๊ธฐ) ๋ฐ ์—ด ๊ถŒํ•œ(๋ฏผ๊ฐ ์ •๋ณด ํ•„๋“œ ์ˆจ๊ธฐ๊ธฐ)์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์šฉ์–ด ์„ค์ •: ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์˜ ์ „๋ฌธ ์šฉ์–ด, ์„ค๋ช…, ๋™์˜์–ด๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ LLM์ด SQL์„ ์ƒ์„ฑํ•  ๋•Œ ์ •ํ™•๋„๋ฅผ ๋†’์ด๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.
  • SQL ์˜ˆ์‹œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ๊ณผ ํ•ด๋‹น SQL ์˜ˆ์‹œ๋ฅผ ๋“ฑ๋กํ•ด๋‘๋ฉด, ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์ด ์ด์— ๋งค์นญ๋  ๊ฒฝ์šฐ ์˜ˆ์‹œ SQL์„ LLM์— ํ•จ๊ป˜ ์ „์†กํ•˜์—ฌ ์ •ํ™•ํ•œ SQL์„ ์ƒ์„ฑํ•˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ •์˜ ํ”„๋กฌํ”„ํŠธ: (X-Pack ๊ธฐ๋Šฅ) LLM์ด ์˜ˆ์ƒ๋˜๋Š” SQL ์ฟผ๋ฆฌ, ๋ฐ์ดํ„ฐ ๋ถ„์„, ๋ฐ์ดํ„ฐ ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ๋•๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ง€์ • ํ”„๋กฌํ”„ํŠธ(Prompt)๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ํ†ตํ•ฉ ๋ฐ ํ™•์žฅ์„ฑ (Embedding/MCP)

SQLBot์˜ ์ง€๋Šฅํ˜• ์งˆ์˜/์‘๋‹ต ๊ธฐ๋Šฅ์„ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž„๋ฒ ๋””๋“œ(Embedded) ๋ฐฉ์‹: [์†Œ๋„์šฐ๋ฏธ ์ž„๋ฒ ๋”ฉ] ๋˜๋Š” [์›น ํŽ˜์ด์ง€ ์ž„๋ฒ ๋”ฉ] ๋ฐฉ์‹์œผ๋กœ ์™ธ๋ถ€ ํŽ˜์ด์ง€์— ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ๋ฐฑ์—”๋“œ ์—ฐ๋™์ด ํ•„์š” ์—†์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ ๊ถŒํ•œ ์„ค์ •์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค (๋ฐฉ๋ฌธ์ž/์ง์› ๊ถŒํ•œ).
    • ๊ณ ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ๋ฐ์ดํ„ฐ ๊ถŒํ•œ ์ œ์–ด๊ฐ€ ์—„๊ฒฉํ•˜๊ฒŒ ํ•„์š”ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•˜๋ฉฐ, SQLBot์ด ์‚ฌ์šฉ์ž ์‹๋ณ„์ž๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ์‹œ์Šคํ…œ์— ์ „๋‹ฌํ•˜๋ฉด, ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค ๋ชฉ๋ก์„ API ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • MCP ์„œ๋น„์Šค (Micro-service Chart Processing): ์„œ๋ฒ„ ์ธก ์ฐจํŠธ ๋ Œ๋”๋ง ๋ฐ ์ง€๋Šฅํ˜• ์งˆ์˜ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค๋กœ, ๊ธฐ๋ณธ ํฌํŠธ๋Š” 8001์ž…๋‹ˆ๋‹ค.
    • ํ™œ์šฉ: MCP๋Š” ์™ธ๋ถ€ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ(MaxKB, Dify, Coze ๋“ฑ)๊ณผ์˜ ๋Œ€ํ™”ํ˜• ํ†ตํ•ฉ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ฃผ์š” ๋„๊ตฌ: mcp_start (์ธ์ฆ ํ† ํฐ access_token ๋ฐ ๋Œ€ํ™” ID chat_id ํš๋“)์™€ mcp_question (ํš๋“ํ•œ ํ† ํฐ๊ณผ ID๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์งˆ๋ฌธ ์ œ์ถœ ๋ฐ SQL, ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

4. DataEase ์—ฐ๋™

SQLBot v1.1.3 ์ด์ƒ ๋ฒ„์ „์€ DataEase v2.10.13 ์ด์ƒ ๋ฒ„์ „์— ์ ‘์†ํ•˜์—ฌ ์ง€๋Šฅํ˜• ์งˆ์˜/์‘๋‹ต ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • SQLBot ํ”Œ๋žซํผ์—์„œ ๊ณ ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ณ  DataEase ์„œ๋น„์Šค์˜ ์ ‘๊ทผ ์ฃผ์†Œ๋ฅผ ํฌ๋กœ์Šค ๋„๋ฉ”์ธ ์„ค์ •์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • DataEase ์ธก์—์„œ๋Š” ๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ํ›„ **[์‹œ์Šคํ…œ ์„ค์ •] > [์‹œ์Šคํ…œ ๋งค๊ฐœ๋ณ€์ˆ˜] > [ํƒ€์‚ฌ ์ž„๋ฒ ๋””๋“œ]**์—์„œ SQLBot ์„œ๋ฒ„ URL๊ณผ ๊ณ ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ID๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

About

๐Ÿ”ฅ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด๋ชจ๋ธ(LLM)๊ณผ RAG ๊ธฐ๋ฐ˜์˜ ์ง€๋Šฅํ˜• ์งˆ์˜์‘๋‹ต ์‹œ์Šคํ…œ, ๋Œ€ํ™”ํ˜• ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ํ˜์‹  ๋„๊ตฌ! Text-to-SQL Generation via LLMs using RAG.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 70.8%
  • CSS 14.6%
  • TypeScript 6.3%
  • JavaScript 6.1%
  • Shell 0.8%
  • HTML 0.8%
  • Other 0.6%