Speedofmastery's picture
Upload folder using huggingface_hub
88f3fce verified

์ฐจํŠธ ์‹œ๊ฐํ™” ๋„๊ตฌ

์ฐจํŠธ ์‹œ๊ฐํ™” ๋„๊ตฌ๋Š” Python์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ตœ์ข…์ ์œผ๋กœ @visactor/vmind๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ฐจํŠธ ์‚ฌ์–‘์„ ์–ป์Šต๋‹ˆ๋‹ค. ์ฐจํŠธ ๋ Œ๋”๋ง์€ @visactor/vchart๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

์„ค์น˜ (Mac / Linux)

  1. Node.js 18 ์ด์ƒ ์„ค์น˜
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# nvm ํ™œ์„ฑํ™”, ์˜ˆ๋ฅผ ๋“ค์–ด Bash
source ~/.bashrc
# ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์˜ Node ์„ค์น˜
nvm install node
# ์‚ฌ์šฉ ํ™œ์„ฑํ™”, ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์ด 22์ธ ๊ฒฝ์šฐ use 22
nvm use 22
  1. ์˜์กด์„ฑ ์„ค์น˜
# ํ˜„์žฌ ์ €์žฅ์†Œ์—์„œ ํ•ด๋‹น ์œ„์น˜๋กœ ์ด๋™
cd app/tool/chart_visualization
npm install

์„ค์น˜ (Windows)

  1. nvm-windows ์„ค์น˜

    ๊ณต์‹ GitHub ํŽ˜์ด์ง€์—์„œ ์ตœ์‹  ๋ฒ„์ „์˜ nvm-setup.exe๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  2. nvm์„ ์‚ฌ์šฉํ•˜์—ฌ Node.js ์„ค์น˜

# ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์˜ Node ์„ค์น˜
nvm install node
# ์‚ฌ์šฉ ํ™œ์„ฑํ™”, ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ์‹  ์•ˆ์ • ๋ฒ„์ „์ด 22์ธ ๊ฒฝ์šฐ use 22
nvm use 22
  1. ์˜์กด์„ฑ ์„ค์น˜
# ํ˜„์žฌ ์ €์žฅ์†Œ์—์„œ ํ•ด๋‹น ์œ„์น˜๋กœ ์ด๋™
cd app/tool/chart_visualization
npm install

๋„๊ตฌ

python_execute

Python ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ํ•„์š”ํ•œ ๋ถ€๋ถ„(๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์ œ์™ธ)์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ ์š”์•ฝ, ๋ณด๊ณ ์„œ ์ƒ์„ฑ ๋ฐ ์ผ๋ถ€ ์ผ๋ฐ˜์ ์ธ Python ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ

{
  // ์ฝ”๋“œ ์œ ํ˜•: ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ/๋ฐ์ดํ„ฐ ๋ณด๊ณ ์„œ/๊ธฐํƒ€ ์ผ๋ฐ˜ ์ž‘์—…
  code_type: "process" | "report" | "others"
  // ์ตœ์ข… ์‹คํ–‰ ์ฝ”๋“œ
  code: string;
}

์ถœ๋ ฅ

Python ์‹คํ–‰ ๊ฒฐ๊ณผ, ์ค‘๊ฐ„ ํŒŒ์ผ ์ €์žฅ ๋ฐ ์ถœ๋ ฅ ๊ฒฐ๊ณผ ํฌํ•จ.

visualization_preparation

๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ์‚ฌ์ „ ๋„๊ตฌ๋กœ ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ -> ์ฐจํŠธ

๋ถ„์„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ(.csv)์™€ ํ•ด๋‹น ์‹œ๊ฐํ™” ์„ค๋ช…์„ ๋ฐ์ดํ„ฐ์—์„œ ์ถ”์ถœํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ JSON ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ฐจํŠธ + ์ธ์‚ฌ์ดํŠธ -> ์ฐจํŠธ

๊ธฐ์กด ์ฐจํŠธ์™€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ฃผ์„ ํ˜•ํƒœ๋กœ ์ฐจํŠธ์— ์ถ”๊ฐ€ํ•  ๋ฐ์ดํ„ฐ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ JSON ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ

{
  // ์ฝ”๋“œ ์œ ํ˜•: ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ธ์‚ฌ์ดํŠธ ์ถ”๊ฐ€
  code_type: "visualization" | "insight"
  // ์ตœ์ข… JSON ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Python ์ฝ”๋“œ
  code: string;
}

์ถœ๋ ฅ

data_visualization tool์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ.

data_visualization

visualization_preparation์˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠน์ • ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ

{
  // ๊ตฌ์„ฑ ํŒŒ์ผ ๊ฒฝ๋กœ
  json_path: string;
  // ํ˜„์žฌ ๋ชฉ์ , ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋˜๋Š” ์ธ์‚ฌ์ดํŠธ ์ฃผ์„ ์ถ”๊ฐ€
  tool_type: "visualization" | "insight";
  // ์ตœ์ข… ์ œํ’ˆ png ๋˜๋Š” html; html์€ vchart ๋ Œ๋”๋ง ๋ฐ ์ƒํ˜ธ์ž‘์šฉ ์ง€์›
  output_type: 'png' | 'html'
  // ์–ธ์–ด, ํ˜„์žฌ ์ค‘๊ตญ์–ด ๋ฐ ์˜์–ด ์ง€์›
  language: "zh" | "en"
}

VMind ๊ตฌ์„ฑ

LLM

VMind๋Š” ์ง€๋Šฅํ˜• ์ฐจํŠธ ์ƒ์„ฑ์„ ์œ„ํ•ด LLM ํ˜ธ์ถœ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ config.llm["default"] ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ƒ์„ฑ ์„ค์ •

์ฃผ์š” ๊ตฌ์„ฑ์—๋Š” ์ฐจํŠธ ํฌ๊ธฐ, ํ…Œ๋งˆ ๋ฐ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ƒ์„ฑ ๋ฐฉ๋ฒ•

๊ธฐ๋ณธ๊ฐ’: png. ํ˜„์žฌ LLM์ด ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ output_type์„ ์ž๋™์œผ๋กœ ์„ ํƒํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

ํฌ๊ธฐ

๊ธฐ๋ณธ ํฌ๊ธฐ๋Š” ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. HTML ์ถœ๋ ฅ์˜ ๊ฒฝ์šฐ ์ฐจํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค. PNG ์ถœ๋ ฅ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ 1000*1000์ž…๋‹ˆ๋‹ค.

ํ…Œ๋งˆ

๊ธฐ๋ณธ ํ…Œ๋งˆ: 'light'. VChart๋Š” ์—ฌ๋Ÿฌ ํ…Œ๋งˆ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ๋งˆ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ…Œ์ŠคํŠธ

ํ˜„์žฌ, ์„œ๋กœ ๋‹ค๋ฅธ ๋‚œ์ด๋„์˜