| # ์ฐจํธ ์๊ฐํ ๋๊ตฌ | |
| ์ฐจํธ ์๊ฐํ ๋๊ตฌ๋ Python์ ํตํด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์ต์ข ์ ์ผ๋ก [@visactor/vmind](https://github.com/VisActor/VMind)๋ฅผ ํธ์ถํ์ฌ ์ฐจํธ ์ฌ์์ ์ป์ต๋๋ค. ์ฐจํธ ๋ ๋๋ง์ [@visactor/vchart](https://github.com/VisActor/VChart)๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ฉ๋๋ค. | |
| ## ์ค์น (Mac / Linux) | |
| 1. Node.js 18 ์ด์ ์ค์น | |
| ```bash | |
| 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 | |
| ``` | |
| 2. ์์กด์ฑ ์ค์น | |
| ```bash | |
| # ํ์ฌ ์ ์ฅ์์์ ํด๋น ์์น๋ก ์ด๋ | |
| cd app/tool/chart_visualization | |
| npm install | |
| ``` | |
| ## ์ค์น (Windows) | |
| 1. nvm-windows ์ค์น | |
| [๊ณต์ GitHub ํ์ด์ง](https://github.com/coreybutler/nvm-windows?tab=readme-ov-file#readme)์์ ์ต์ ๋ฒ์ ์ `nvm-setup.exe`๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ค์นํฉ๋๋ค. | |
| 2. nvm์ ์ฌ์ฉํ์ฌ Node.js ์ค์น | |
| ```powershell | |
| # ๊ทธ๋ฐ ๋ค์ ์ต์ ์์ ๋ฒ์ ์ Node ์ค์น | |
| nvm install node | |
| # ์ฌ์ฉ ํ์ฑํ, ์๋ฅผ ๋ค์ด ์ต์ ์์ ๋ฒ์ ์ด 22์ธ ๊ฒฝ์ฐ use 22 | |
| nvm use 22 | |
| ``` | |
| 3. ์์กด์ฑ ์ค์น | |
| ```bash | |
| # ํ์ฌ ์ ์ฅ์์์ ํด๋น ์์น๋ก ์ด๋ | |
| cd app/tool/chart_visualization | |
| npm install | |
| ``` | |
| ## ๋๊ตฌ | |
| ### python_execute | |
| Python ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ถ์์ ํ์ํ ๋ถ๋ถ(๋ฐ์ดํฐ ์๊ฐํ ์ ์ธ)์ ์คํํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ฐ์ดํฐ ์์ฝ, ๋ณด๊ณ ์ ์์ฑ ๋ฐ ์ผ๋ถ ์ผ๋ฐ์ ์ธ Python ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ํฌํจ๋ฉ๋๋ค. | |
| #### ์ ๋ ฅ | |
| ```typescript | |
| { | |
| // ์ฝ๋ ์ ํ: ๋ฐ์ดํฐ ์ฒ๋ฆฌ/๋ฐ์ดํฐ ๋ณด๊ณ ์/๊ธฐํ ์ผ๋ฐ ์์ | |
| code_type: "process" | "report" | "others" | |
| // ์ต์ข ์คํ ์ฝ๋ | |
| code: string; | |
| } | |
| ``` | |
| #### ์ถ๋ ฅ | |
| Python ์คํ ๊ฒฐ๊ณผ, ์ค๊ฐ ํ์ผ ์ ์ฅ ๋ฐ ์ถ๋ ฅ ๊ฒฐ๊ณผ ํฌํจ. | |
| ### visualization_preparation | |
| ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํ ์ฌ์ ๋๊ตฌ๋ก ๋ ๊ฐ์ง ๋ชฉ์ ์ด ์์ต๋๋ค. | |
| #### ๋ฐ์ดํฐ -> ์ฐจํธ | |
| ๋ถ์์ ํ์ํ ๋ฐ์ดํฐ(.csv)์ ํด๋น ์๊ฐํ ์ค๋ช ์ ๋ฐ์ดํฐ์์ ์ถ์ถํ์ฌ ์ต์ข ์ ์ผ๋ก JSON ๊ตฌ์ฑ ํ์ผ์ ์ถ๋ ฅํฉ๋๋ค. | |
| #### ์ฐจํธ + ์ธ์ฌ์ดํธ -> ์ฐจํธ | |
| ๊ธฐ์กด ์ฐจํธ์ ํด๋น ๋ฐ์ดํฐ ์ธ์ฌ์ดํธ๋ฅผ ์ ํํ๊ณ , ๋ฐ์ดํฐ ์ฃผ์ ํํ๋ก ์ฐจํธ์ ์ถ๊ฐํ ๋ฐ์ดํฐ ์ธ์ฌ์ดํธ๋ฅผ ์ ํํ์ฌ ์ต์ข ์ ์ผ๋ก JSON ๊ตฌ์ฑ ํ์ผ์ ์์ฑํฉ๋๋ค. | |
| #### ์ ๋ ฅ | |
| ```typescript | |
| { | |
| // ์ฝ๋ ์ ํ: ๋ฐ์ดํฐ ์๊ฐํ ๋๋ ๋ฐ์ดํฐ ์ธ์ฌ์ดํธ ์ถ๊ฐ | |
| code_type: "visualization" | "insight" | |
| // ์ต์ข JSON ํ์ผ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ Python ์ฝ๋ | |
| code: string; | |
| } | |
| ``` | |
| #### ์ถ๋ ฅ | |
| `data_visualization tool`์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํ ๊ตฌ์ฑ ํ์ผ. | |
| ## data_visualization | |
| `visualization_preparation`์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํน์ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์์ฑํฉ๋๋ค. | |
| ### ์ ๋ ฅ | |
| ```typescript | |
| { | |
| // ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก | |
| 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๋ ์ฌ๋ฌ ํ ๋ง๋ฅผ ์ง์ํฉ๋๋ค. [ํ ๋ง](https://www.visactor.io/vchart/guide/tutorial_docs/Theme/Theme_Extension)๋ฅผ ์ฐธ์กฐํ์ธ์. | |
| ## ํ ์คํธ | |
| ํ์ฌ, ์๋ก ๋ค๋ฅธ ๋์ด๋์ | |