File size: 4,171 Bytes
88f3fce |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# ์ฐจํธ ์๊ฐํ ๋๊ตฌ
์ฐจํธ ์๊ฐํ ๋๊ตฌ๋ 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)๋ฅผ ์ฐธ์กฐํ์ธ์.
## ํ
์คํธ
ํ์ฌ, ์๋ก ๋ค๋ฅธ ๋์ด๋์
|