Home GPT prompt for Highcharts
Post
Cancel

GPT prompt for Highcharts

GPT prompt for Highcharts ์ ‘์†ํ•˜๊ธฐ ๐Ÿ‘ˆ go!

Makerโ€™s GitHub ์ œ์ž‘์ž์˜ GitHub ๐Ÿ– Welcome๐Ÿ™ƒ

All Lists - ๋ชฉ์ฐจ

Before get Start - ์„œ๋ฌธ
- 1. ๊ฐœ๋ฐœ์ž์˜ Gpt ํ™œ์šฉ ๋ฐฉ์‹
- 2. ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ต์œก ์‹œ๊ฐ„ ํ˜„์ €ํ•˜๊ฒŒ ์ค„์ด๊ธฐ
- 3. ์ฐจํŠธ ๊ตฌํ˜„์ด๋ผ๋Š” ํ›Œ๋ฅญํ•œ ์˜ˆ์‹œ
- 4. Highcharts ๋ฌธ์„œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์–‘์˜ ๋ฐฉ๋Œ€ํ•จ
- 5. ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„ ์ข…๋ฅ˜ ๊ตฌํ˜„๊ณผ ์‹ค์‹œ๊ฐ„ ํ˜น์€ ๋น„์ •ํ˜•์ ์ธ ์งˆ๋ฌธ์ด ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ ์ œ๊ณต
How to Use - ์ค€๋น„
- 1. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰
- 2. api key ์ž…๋ ฅํ•˜๊ธฐ
- 3. Sample Chart ํ™•์ธํ•˜๊ธฐ
- 4. Highchart์˜ ๊ถ๊ธˆํ•œ ์ ์— ๋Œ€ํ•ด gpt์—๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฌผ์–ด๋ณด๊ธฐ
- 5. ๋‹ต๋ณ€ ์š”์ฒญํ•˜๊ธฐ
How to Run - ์‚ฌ์šฉ
- 1. ์ „์ฒ˜๋ฆฌ ํ”„๋กฌํ”„ํ„ฐ ํ™œ์šฉํ•˜๊ธฐ
- 2. ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€
- 3. ๋‹ต๋ณ€์„ ๊ฐ€๊ณตํ•œ ์ฐจํŠธ ์‹œ๊ฐํ™”
- 4. ์˜ˆ์‹œ ๊ทธ๋ž˜ํ”„ ๋ณด๊ธฐ
How to Set - ์„ธํŒ…
- 1. ์ŠคํŽ™
- 2. ์„œ๋น„์Šค
- 3. ๋™์  ๊ทธ๋ž˜ํ”„
ETC - ๋ฐฐํฌ/์˜ค๋ฅ˜/๋ฒ„๊ทธ
- 1. ๋ฐฐํฌ ๋ฐฉ์‹: Git Page
- 2. ์˜ค๋ฅ˜
- 3. ๋ฒ„๊ทธ/๊ฐœ์„  ๋ชฉ๋ก
Reference - ์ฐธ๊ณ 

Before get Start - ์„œ๋ฌธ


1. ๊ฐœ๋ฐœ์ž์˜ Gpt ํ™œ์šฉ ๋ฐฉ์‹

Gpt๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ, ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์™€ ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค๋ฅผ ์ˆ˜๋ฐ–์— ์—†๋‹ค. ๋‹จ์ˆœํžˆ ์งˆ๋‹ต ํ˜•์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์–ป๋Š” ๊ฒƒ ์ด์ƒ์ด ํ•„์š”ํ•˜๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ํ”Œ๋žซํผ์„ ๋งŒ๋“œ๋Š” ๋ถ€์„œ์— ์žˆ์œผ๋ฉด์„œ, ๊ด€๋ จ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ Gpt๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์„ฑ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ตฌํ˜„์— ํ•„์š”ํ•œ ๋ถ€๋ถ„๊ณผ ๋ถ€๋ถ„๋“ค์„ ํ”„๋ ˆ์ž„์›Œํฌํ™” ํ•˜์—ฌ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ , ๊ฐœ๋ฐœ์ž๋“ค์˜ ํŽธ์˜๋ฅผ ๋„๋ชจํ•˜๋ฉด ์–ด๋–จ๊นŒ?

2. ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๊ต์œก ์‹œ๊ฐ„ ํ˜„์ €ํ•˜๊ฒŒ ์ค„์ด๊ธฐ

์„ธ์ƒ์—๋Š” ์ˆ˜๋งŽ์€ ๊ฐœ๋ฐœ ์–ธ์–ด์™€ ์˜คํ”ˆ ์†Œ์Šค, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์ด ์žˆ๋‹ค. ๋‹จ์ผํ•œ ์š”์†Œ๋งŒ์„ ์‚ฌ์šฉํ•ด ๊ฐœ๋ฐœํ•œ๋‹ค๋ฉด ์ •๋ง ํŽธ๋ฆฌํ•˜๊ฒ ์ง€๋งŒ, ๊ทธ๋Ÿด ์ผ์€ ๋“œ๋ฌผ๊ณ , ์–ธ์–ด์˜ ๋ฐœ์ „ ๋˜ํ•œ ๊ฐœ์ธ์„ ๊ธฐ๋‹ค๋ ค์ฃผ์ง€ ์•Š๋Š”๋‹ค. ๋งค๋…„ ์Ÿ์•„์ ธ ๋‚˜์˜ค๋Š” ๋ฐฉ๋Œ€ํ•œ ์ง€์‹ ๋‚ด์šฉ์„ ์ข€ ๋” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์Šต๋“ํ•  ์ˆ˜ ์—†์„๊นŒ? ๊ฒ€์ƒ‰์— ์“ธ ์—๋„ˆ์ง€๋„ ์•„๊น๋‹ค๋ฉด, ๋ฌผ์–ด๋ณด๋Š” ์กฑ์กฑ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋Œ€๋‹ตํ•ด ์ฃผ๋Š” ๋ˆ„๊ตฐ๊ฐ€์™€ ํ˜‘์—…ํ•˜๋ฉด ์ •๋ง ์ข‹์ง€ ์•Š์„๊นŒ?

3. ์ฐจํŠธ ๊ตฌํ˜„์ด๋ผ๋Š” ํ›Œ๋ฅญํ•œ ์˜ˆ์‹œ

์ด ํ•ญ๋ชฉ์€ ์œ„์—์„œ ๋‚˜์˜จ ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋ชจ๋‘ ์ถฉ์กฑํ•œ๋‹ค. ๋ณต์žกํ•˜๊ณ  ๋ฐฉ๋Œ€ํ•œ ๋ฌธ์„œ๋Ÿ‰์˜ ํ†ต๊ณ„ ๊ทธ๋ž˜ํ”„๋ฅผ UI ํ”„๋ ˆ์ž„์›Œํฌํ™” ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
ํ†ต๊ณ„ ๋ฉ”๋‰ด๋Š” ์–ด๋–ค ์›น์‚ฌ์ดํŠธ๋“  ์‰ฝ๊ฒŒ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋งค๋ฒˆ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉฐ ๊ตฌํ˜„ํ•˜๊ธฐ์—๋Š” ๋‹ค์†Œ ์‹œ๊ฐ„์ด ๋“ ๋‹ค. ์ด ๊ณผ์ •์— AI๋ฅผ ๋„์ž…ํ•ด ํ™”๋ฉด ๊ตฌํ˜„์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ํš๊ธฐ์ ์œผ๋กœ ์ค„์ด๊ณ , ์„œ๋ฒ„ ๋‹จ์˜ ์ฝ”๋“œ๋‚˜ SQL ์ฟผ๋ฆฌ๋ฅผ ์งœ๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋” ํ• ์• ํ•ด ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋†’์€ ์ˆ˜์ค€์˜ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ๋‹ค!

4. Highcharts ๋ฌธ์„œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์–‘์˜ ๋ฐฉ๋Œ€ํ•จ

  • Highcharts API ๋ฌธ์„œ ์ผ๋ถ€
    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
    
    accessibility:{...}
    annotations:[{...}]
    boost:{...}
    caption:{...}
    chart:{...}
    colorAxis:[{...}]
    colors:[ "#2caffe", "#544fc5", "#00e272", "#fe6a35", "#6b8abc", "#d568fb", "#2ee0ca", "#fa4b42", "#feb56a", "#91e8e12 ]
    credits:{...}
    data:{...}
    defs:{...}
    drilldown:{...}
    exporting:{...}
    legend:{...}
    loading:{...}
    navigation:{...}
    noData:{...}
    pane:{...}
    plotOptions:{...}
    responsive:{...}
    series:[{...}]
    sonification:{...}
    subtitle:{...}
    time:{...}
    title:{...}
    tooltip:{...}
    xAxis:[{...}]
    yAxis:[{...}]
    zAxis:[{...}]
    

์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ, ํ†ต๊ณ„ ๊ทธ๋ž˜ํ”„์˜ ๋ฌธ์„œ๋Š” ์–‘์ด ๋ฐฉ๋Œ€ํ•˜๋‹ค. X์ถ•, Y์ถ•, ๋ฒ”๋ก€, ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ์ฒด์˜ ๋ชจ์–‘๊ณผ ๋ผ๋ฒจ ๋‚ด์šฉ๊นŒ์ง€, ๋ฌด์ˆ˜ํ•œ property์˜ ์—ฐ์†์ด๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ์ œ์ผ ์„ฑ๊ฐ€์‹  ์ ์€, ๊ฐœ๋ฐœ์ด ๋๋‚œ ํ›„์—๋Š” ๋‚ด์šฉ์„ ์žŠ์–ด๋ฒ„๋ฆฐ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ตฌํ˜„ ๋นˆ๋„๋Š” ์žฆ์ง€๋งŒ ๋ณดํ†ต ๋ฉ”๋‰ด์˜ ํ•œ ์ชฝ๋งŒ ์ฐจ์ง€ํ•˜๋Š” ๋‚ด์šฉ์ด๋ผ ๊ฐœ๋ฐœ๊ณผ ๊ฐœ๋ฐœ ์‚ฌ์ด์˜ ํ…€์ด ๊ธธ๊ณ , ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์ฒœ์ฐจ๋งŒ๋ณ„์ด์–ด์„œ ๊ทธ๋ ‡๋‹ค.

5. ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„ ์ข…๋ฅ˜ ๊ตฌํ˜„๊ณผ ์‹ค์‹œ๊ฐ„ ํ˜น์€ ๋น„์ •ํ˜•์ ์ธ ์งˆ๋ฌธ์ด ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ ์ œ๊ณต

์˜ˆ์‹œ๋กœ ๊ตฌํ˜„๋œ GPT prompt for Highcharts๋Š” ์ˆ˜๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค ์ค‘ Highcharts๋งŒ ํŠน์ •ํ•œ๋‹ค. ์‚ฌ์šฉ์ž(๊ฐœ๋ฐœ์ž)๊ฐ€ ์ฐจํŠธ์— ๊ด€ํ•œ ๊ฒƒ์„ ๋ฌผ์œผ๋ฉด, ์ž๋™์œผ๋กœ Highcharts์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ต๋ณ€ํ•ด ์ค€๋‹ค. ๋˜ํ•œ, ๊ฐœ๋ฐœ์ž์˜ ์ž…์žฅ์—์„œ ํ•„์š”ํ•  ๋ฒ•ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ฒญ์‚ฌ์ง„์„ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ๊ธฐ์— ์™„๋ฒฝํ•˜์ง„ ์•Š์ง€๋งŒ.

How to Use - ์ค€๋น„


1. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰

  • ๋ฐฐํฌ ์ฃผ์†Œ

GPT prompt for Highcharts ์ ‘์†ํ•˜๊ธฐ ๐Ÿ‘ˆ go!

  • ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ
    1
    2
    
    $ npm install
    $ npm run dev
    

2. api key ์ž…๋ ฅํ•˜๊ธฐ

๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์˜จ์ „ํžˆ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด, openai ํ™ˆํŽ˜์ด์ง€ ์—์„œ ์ œ๊ณต๋˜๋Š” ๊ฐœ์ธ api key๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. Untitled

3. Sample Chart ํ™•์ธํ•˜๊ธฐ

์ฐจํŠธ ๊ตฌ์กฐ๊ฐ€ ์ƒ์†Œํ•˜๋‹ค๋ฉด, ๊ธฐ๋ณธ line chart ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ„์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ๋ช…์นญ ์„ค๋ช…๊ณผ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด ๋†“์•˜๋‹ค.
Untitled

4. Highchart์˜ ๊ถ๊ธˆํ•œ ์ ์— ๋Œ€ํ•ด Gpt์—๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฌผ์–ด๋ณด๊ธฐ

์ „์ฒ˜๋ฆฌ ๋ช…๋ น ํ”„๋กฌํ”„ํ„ฐ ์—ญํ• ์„ ํ•˜๋Š” System๋ž€์— ์ „์ œ๋ฅผ ๊น”์•„๋‘˜ ์ˆ˜ ์žˆ๋‹ค. ์ด ์„ธํŒ… ๋•๋ถ„์—, ์‚ฌ์šฉ์ž๊ฐ€ ์ฐจํŠธ ์ข…๋ฅ˜๋ฅผ ํŠน์ •ํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋ฐ˜๋“œ์‹œ Highchart์— ๊ด€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋„์ถœ๋œ๋‹ค.
Untitled

๋ฒˆ์—ญ: Highcharts, Vue2 ๋ฒ„์ „์„ ๊ธฐ์ค€์œผ๋กœ, ํ•˜๋‚˜์˜ json ํ˜•์‹ markdown ์ฝ”๋“œ ๋ธ”๋ก์„ ์ œ์‹œํ•˜๊ณ , chartOptions ๋ผ๋Š” ๊ฐ์ฒด๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ํฌ๋งท์€ ๋‹ค์Œ๊ณผ ๊ฐ™๊ณ , html ์ด๋‚˜ import ์ฝ”๋“œ๋Š” ๋„ฃ์ง€ ๋ง ๊ฒƒ. ์„ค๋ช…์„ ๋ง๋ถ™์ผ ์ˆœ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜ ๋ฌธ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ž์œ ๋กญ๊ฒŒ ๋ฌผ์–ด๋ณด๊ธฐ
    Highcharts์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. Untitled
  • ์ž์„ธํ•œ ์˜ˆ์‹œ ์ฐจํŠธ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๋‹ต๋ณ€ ๋ฐ›๊ธฐ
    sample๋กœ ์ œ์‹œ๋œ line chart ๋ณด๋‹ค ๋‹ค์†Œ ๋ณต์žกํ•œ ํ˜•์‹์˜ ์ฐจํŠธ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ , ๊ทธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
    Untitled

5. ๋‹ต๋ณ€ ์š”์ฒญํ•˜๊ธฐ

๋ชจ๋“  ์š”์†Œ๊ฐ€ ์ถฉ์กฑ๋˜์—ˆ์œผ๋ฉด, SEND MESSAGE ๋ฒ„ํŠผ ํด๋ฆญ! Untitled

How to Run - ์‚ฌ์šฉ


1. ์ „์ฒ˜๋ฆฌ ํ”„๋กฌํ”„ํ„ฐ ํ™œ์šฉํ•˜๊ธฐ

system์€ ์•ž์„œ ์„ค๋ช…ํ–ˆ๋“ฏ ์งˆ๋ฌธ์— ์ „์ œ๋˜๋Š” ๊ทœ์น™์ด๋‚˜ ํ˜•์‹ ๋“ฑ์„ ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํ˜„์žฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” ๊ณ ์ •ํ•ด ๋†“์•˜์ง€๋งŒ, ์ž…๋ ฅ๋ฐ›๋Š” ํ˜•์‹์œผ๋กœ ๋งŒ๋“ค๋ฉด ์ž์‹ ์ด ์›ํ•˜๋Š” ์ฃผ์ œ์— ๋Œ€ํ•œ ๊ทœ์น™์ด๋‚˜ ํ˜•์‹์„ ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ™œ์šฉ์„ฑ์ด ๋†’๋‹ค. Gpt๋Š” ๋ฐฉ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๊ทธ ์ค‘์—์„œ ๋‹ต๋ณ€์„ ๋„์ถœํ•ด๋‚ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ์‚ฌ์šฉํ•ด ๋ฒ”์œ„๋ฅผ ์ขํžˆ๋Š” ์ž‘์—…์ด ํ•„์ˆ˜์ ์ด๋‹ค.
๋งŒ์•ฝ system์ด ๊ณต๋ž€์ธ ์ƒํƒœ์—์„œ chart์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์งˆ๋ฌธํ•œ๋‹ค๋ฉด, Gpt๋Š” Highcharts ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ google chart, chart js, AmCharts์— ๊ด€๋ จ๋œ ๋‹ต์„ ๋Œ๋ ค ์ค„ ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๋Š” ์ผ๊ด€์ ์ธ ๋‹ต๋ณ€์„ ์ œ๊ณต๋ฐ›์ง€ ๋ชปํ•œ๋‹ค. ์ด๋ฏธ ๋ฌด์ˆ˜ํ•œ ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

2. ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€

์งˆ๋ฌธ: ๊ฐ„๋‹จํ•œ Column Chart ์ฝ”๋“œ๋ฅผ ์จ ์ค˜.
๋‹ต๋ณ€: chart ๋ฐ์ดํ„ฐ๋ฅผ chartOptions ๊ฐ์ฒด๋กœ ๊ฐ์‹ธ ๋‹ต๋ณ€ + ๊ฐ„๋‹จํ•œ ์„ค๋ช… + ๋™์  ์ฐจํŠธ ์‹œ๊ฐํ™”

Untitled json์ฝ”๋“œ ๋ฆฌํ„ด(์ค‘๋žต) Untitled ๊ฐ„๋‹จํ•œ ์„ค๋ช…๊ณผ ์‘๋‹ต๋œ ๊ฐ’์„ ํ† ๋Œ€๋กœ ์ฐจํŠธ ์‹œ๊ฐํ™”

3. ๋‹ต๋ณ€์„ ๊ฐ€๊ณตํ•œ ์ฐจํŠธ ์‹œ๊ฐํ™”

์—ฌ๊ธฐ์„œ system ์ „์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด ๋น›์„ ๋ฐœํ•œ๋‹ค. ์‘๋‹ต๋œ json ๊ฐ์ฒด๋ฅผ ๊ฐ€๊ณตํ•ด ์ฐจํŠธ๋ฅผ ์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด, ์‘๋‹ต ๊ฐ์ฒด์˜ ์ด๋ฆ„์€ chartOptions๋กœ ํ•œ๋‹ค๋Š” ์ „์ œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
Untitled

4. ์˜ˆ์‹œ ๊ทธ๋ž˜ํ”„ ๋ณด๊ธฐ

ํ•˜์ง€๋งŒ, ์ฐจํŠธ์˜ ๊ฐ api ์š”์†Œ๋ฅผ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ ์งˆ๋ฌธ์„ ํ•˜๊ธฐ๋ž€ ์‰ฝ์ง€ ์•Š๋‹ค. "Column ์ฐจํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด ์ค˜." ๋ผ๋Š” ์š”์ฒญ์„ ํ•ด๋„, ๊ทธ์•ผ๋ง๋กœ ์‹ค์ œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์— ํ•„์š”ํ•œ ์š”์†Œ๋ฅผ ์ถฉ๋ถ„ํžˆ ๋ฆฌํ„ดํ•ด ์ฃผ์ง€๋Š” ์•Š๋Š”๋‹ค. ์ด ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋ณด๋‹ค ๋ณต์žกํ•œ ์ฐจํŠธ๋ฅผ ์˜ˆ์‹œ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. ์ถ”๊ฐ€๋กœ ์„ค๋ช…๋„ ๋ง๋ถ™์—ฌ ์ค€๋‹ค. (ํ˜„์žฌ๋Š” ์ปฌ๋Ÿผ, ์Šคํƒ ์ปฌ๋Ÿผ, ํ’€ ์Šคํƒ ์ปฌ๋Ÿผ, ๋‹ค์ค‘ x์ถ•, ํŠธ๋ฆฌ ๋งต ์ฐจํŠธ ์˜ˆ์‹œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.) Untitled OVERLAP ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ Untitled TREEMAP ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ

How to Set - ์„ธํŒ…


1. ์ŠคํŽ™

  • ๊ตฌํ˜„: Vue3
  • Gpt model: gpt-3.5-turbo
  • chart: vue3-highcharts
  • markdown ui: vue3-markdown-it

๊ตฌํ˜„์€ Vue3, ์ฝ”๋“œ ์˜ˆ์‹œ๋Š” Vue2์ธ ์ด์œ 
: Vue2 ๋ฒ„์ „์œผ๋กœ ๋ฆฌํ„ด๋˜๋Š” json ํ˜•์‹์ด ๋ณด๋‹ค ์ •ํ˜•ํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ดํ•ด๊ฐ€ ์‰ฌ์›€.

2. ์„œ๋น„์Šค

  • openai.js ๋‚ด ์ฝ”๋“œ๋กœ ํ†ต์‹  ๋ฐ ์‘๋‹ต ๋ฆฌ์ŠคํŠธ ์ „์†ก
    1
    2
    3
    4
    5
    6
    
    const createCompletion = (client) => ({
      messages,
    }) => client.post('/v1/chat/completions', {
      model: 'gpt-3.5-turbo',
      messages,
    });
    
  • ์‘๋‹ต ํ˜•์‹
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    message = [
      // ๋จผ์ € ๋ฉ”์„ธ์ง€ ํ˜•์‹ํ™”
      { "role": "system", "content": systemMessage }, 
      // user - assistant ๋ฉ”์„ธ์ง€๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ํ‘œ์‹œ
      { "role": "user", "content": userMessage },
      { "role": "assistant", "content": assistantMessage },
      { "role": "user", "content": userMessage },
      // ...
    ]
    

3. ๋™์  ๊ทธ๋ž˜ํ”„

  • chartOptions ๊ฐ์ฒด๋ฅผ ์ถ”์ถœํ•ด๋‚ด๋Š” regex
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    const chartOptions = async (content) => {
    let regex = new RegExp(/(```(.|\n)*```)/, "g");
      let reply = content.match(regex);
      try {
        const chartData = reply[0].split('\n').filter((item) => !!item);
        let result = [];
        for (let i=0; i<chartData.length - 1; i++) {
          if (i!==0) {
            result += chartData[i]
          }
        }
        data.chartOptions = JSON.parse(result);
      } catch (err) {
        data.error = err?.response?.data?.error?.message || err.message;
      }
    }
    

๋งŒ์ผ Gpt๊ฐ€ system ํ˜•์‹์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋Š” ๋‹ต์„ ๋„์ถœํ•  ์‹œ, ํ•ด๋‹น ๋‹ต๋ณ€์˜ ๊ทธ๋ž˜ํ”„ ์‹œ๊ฐํ™”๋Š” ์ค‘๋‹จ๋˜๊ณ  ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

  • ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ
    1
    
    data.resultMessages.push(new Message(ROLE_ASSISTANT, message.content, data.chartOptions))
    

ETC - ๋ฐฐํฌ/์˜ค๋ฅ˜/๋ฒ„๊ทธ


1. ๋ฐฐํฌ ๋ฐฉ์‹: Git Pages

  • deploy yml file .github/workflows/gh-pages.yaml
    • ๋ฐฐํฌ์— ํ•„์š”ํ•œ ๋ช…๋ น์–ด๋“ค์„ ์ž‘์„ฑํ•œ ํŒŒ์ผ.
    • ์ฐธ๊ณ ์— ๋‚˜์˜ค๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, npm run build๋ฅผ ํ˜ธ์ถœํ•ด ์••์ถ• ํŒŒ์ผ๋“ค์„ /dist์— ์ˆ˜๋™์œผ๋กœ ์ €์žฅํ•  ํ•„์š” ์—†์Œ.
    • gitHub deploy์‹œ, ์ž๋™์œผ๋กœ gh-pages ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋ฐฐํฌํ•  ๊ฒฐ๊ณผ๋ฌผ์ด ์ €์žฅ๋œ๋‹ค.
  • [Settings] - choose deploy method
    • ๋ฐฐํฌ์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Œ.
      1. git actions ์‚ฌ์šฉ, 2. git ๋ธŒ๋žœ์น˜๋กœ ๋ฐฐํฌ(Deploy from a branch)
    • ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๋Š” 2. ๋ฐฉ์‹ ์ฑ„ํƒ.
    • ๋ฐฐํฌ ๊ฒฐ๊ณผ๋ฌผ์ด gh-pages์— ์ €์žฅ๋˜๋ฏ€๋กœ ๋ฐฐํฌ ๋ธŒ๋žœ์น˜๋Š” main์ด ์•„๋‹Œ gh-pages.
    • ํ•˜์ง€๋งŒ, gh-pages ๋ธŒ๋žœ์น˜๋ฅผ ๋จผ์ € ๋งŒ๋“ค์–ด ์ค˜์•ผ ํ•˜๋ฏ€๋กœ gh-pages.yml ํŒŒ์ผ์„ push -> ํŒŒ์ผ ๋‚ด์šฉ์— ์˜ํ•ด Actions ํƒญ์—์„œ ์ž๋™์œผ๋กœ deploy๋จ -> gh-pages ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ ๋ฐฐํฌ ํŒŒ์ผ ์ž๋™ ์ €์žฅ๋จ. image
    • ๊ทธ ๋‹ค์Œ, Settings - Actions ํƒญ์—์„œ main์œผ๋กœ ๋˜์–ด ์žˆ๋Š” ์„ค์ •์„ gh-pages๋กœ ๋ฐ”๊ฟˆ. image
  • [Actions] - check build & deploy
    • ์œ„ [Settings]์—์„œ gh-pages ๋ธŒ๋žœ์น˜ ์„ค์ • ํ›„, Actions ํƒญ์—์„œ ๋‹ค์‹œ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐฐํฌ๋จ.
    • ๊ทธ ์™ธ, ์ฝ”๋“œ ์ˆ˜์ • ํ›„ git push -> ๋ฐฐํฌ ์ž๋™ ์‹คํ–‰ ๋ฐ ๋กœ๊ทธ ํ™•์ธ ๊ฐ€๋Šฅ. image
    • reference

2. ์˜ค๋ฅ˜

2-1. npm install ์˜ค๋ฅ˜

1
2
3
4
5
6
7
8
9
10
11
$ npm i --save vue3-highcharts

โœ˜ [ERROR] Could not resolve "highcharts"

    node_modules/highcharts-vue/dist/highcharts-vue.min.js:1:90:
      1 โ”‚ ...?module.exports=e(require("highcharts"),require("vue")):"functio...
        โ•ต                              ~~~~~~~~~~~~

  You can mark the path "highcharts" as external to exclude it from the bundle,
  which will remove this error. You can also surround this "require" call with a
  try/catch block to handle this failure at run-time instead of bundle-time.
  • solution

    Excluding highcharts via optimizeDeps.exclude would clear the error, but that would defeat your ultimate goal of using highcharts in your project. Youโ€™ll notice that after using that config, your project still is not able to import highcharts. The error is indicating that your project is missing that dependency. The solution would be to install highcharts: => references

    1
    
    $ npm install -S highcharts
    
  • conclusion
    1
    2
    
    $ npm i --save vue3-highcharts
    $ npm install -S highcharts
    

2-2. deploy ์˜ค๋ฅ˜

  • permission write&read
    1
    2
    3
    
    remote: Permission to NRCHKB/node-red-contrib-homekit-docker.git denied to github-actions[bot].
    fatal: unable to access 'https://github.com/NRCHKB/node-red-contrib-homekit-docker.git/': The requested URL returned error: 403
    Error: Invalid exit code: 128
    
    1. deploy yml file์— ๋ช…๋ น์–ด๋กœ ๋„ฃ๋Š” ๋ฐฉ์‹, 2. ํ”„๋กœ์ ํŠธ settings ์—์„œ ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Œ. ํ˜„์žฌ ํ”„๋กœ์ ํŠธ๋Š” 2. ๋ฐฉ์‹ ์ฑ„ํƒ Settings -> Actions -> general image
  • deploy is waiting for github-pages deployment approval

    image
    deploy ์ƒํƒœ๊ฐ€ waiting์—์„œ ์•ˆ ๋„˜์–ด๊ฐ€๊ธธ๋ž˜ ๋ณ„์ง“์„ ๋‹ค ํ•ด๋ดค๋Š”๋ฐ ์•Œ๊ณ  ๋ดค๋”๋‹ˆ gitHub ์ž์ฒด ์—…๋ฐ์ดํŠธ ๋•Œ๋ฌธ์— ๋ฒŒ์–ด์ง„ ์ผ์ด์—ˆ๋‹ค. ์•ž์œผ๋ก  ์•ˆ ๋œ๋‹ค๊ณ  ๋ƒ…๋‹ค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‚ ๋ฆฌ์ง€ ๋ง๊ณ  gitHub Status ์ƒํƒœ๋„ ํ™•์ธํ•˜์žโ€ฆ
    image

3. ๋ฒ„๊ทธ/๊ฐœ์„  ๋ชฉ๋ก

2023/06/30

  • ๋™์  ์ฐจํŠธ ์ผ๊ด„ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฌธ์ œ -> append๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ ๊ณ ๋ ค(x) -> ๊ฐ์ฒด ๋ถ„๋ฆฌ โญ•
  • ์‘๋‹ต ์ฝ”๋“œ ์‹ค์‹œ๊ฐ„ ํƒ€์ดํ•‘์œผ๋กœ ๋ณ€๊ฒฝ -> ์–ธ์  ๊ฐ€
  • system ๋ฐ์ดํ„ฐ ์ž…๋ ฅ๋ฐ›๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝ -> ์–ธ์  ๊ฐ€
  • favicon ๋ณ€๊ฒฝ โญ•
  • header: docs ์ฃผ์†Œ ๋ณ€๊ฒฝ โญ•
  • treemap ์ฐจํŠธ click event ์ถ”๊ฐ€ -> ์–ธ์  ๊ฐ€
  • user message ๊ณต๋ž€์ผ ๋•Œ send message = return false;(x) -> data.userMessage ๋นˆ๊ฐ’์ผ ์‹œ ๋ฒ„ํŠผ disabled โญ•
  • ๊ฐ€๋” ์—‰๋šฑํ•œ ๋‹ต๋ณ€&๋Š๋ฆฐ ์‘๋‹ต -> gpt ์ž˜๋ชป์ด๋‹ˆ ์‹ ๊ฒฝ ์•ˆ ์“ธ ์˜ˆ์ •

Reference - ์ฐธ๊ณ 


  • vue3 global settings | global variable | vuex | setup

    refer 1 , 2

  • global component/dynamic component

    refer 1 , 2 , 3

  • vue3 vuex

    refer 1 ,2 ,3 ,4 ,5 ,6 ,7

  • gpt

    refer 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10

  • regex

    refer 1

  • git status

    refer 1 , 2

  • git actions & deploy

    refer 1 , 2 , 3

This post is licensed under CC BY 4.0 by the author.
Contents