Skip to content

bit2r/bitGPT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

46 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

bitGPT

Overview

chatGPT๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”, ๊ทธ๋ฆฌ๊ณ  ํ•œ๊ตญ์–ด๋ฅผ ์ง€์›ํ•˜๋Š” bitGPT.

Features:

  • open API key๋ฅผ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•œ ์†์‰ฌ์šด ์„œ๋น„์Šค ์ธํ„ฐํŽ˜์ด์‹ฑ
    • OpenAI์˜ API key
    • DeepL์˜ API key
  • OpenAI์˜ ์ฑ„ํŒ… ์ž๋™ ์™„์„ฑ
  • OpenAI์˜ ํ…์ŠคํŠธ ์ž๋™ ์™„์„ฑ
    • ํ•œ๊ตญ์–ด ํ”„๋กฌํ”„ํŠธ๋Š” ์˜์–ด ํ”„๋กฌํ”„ํŠธ๋กœ ๋ฒˆ์—ญ๋˜์–ด ์งˆ์˜ํ•˜๊ณ  ํ•œ๊ธ€ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
  • OpenAI์˜ ์ด๋ฏธ์ง€ ํ”„๋กœ์„ธ์‹ฑ
    • ์ด๋ฏธ์ง€ ์ƒ์„ฑ
      • ์˜์–ด ํ”„๋กฌํ”„ํŠธ์™€ ํ•œ๊ตญ์–ด ํ”„๋กฌํ”„ํŠธ ์ง€์›
      • ํ•œ๊ตญ์–ด ํ”„๋กฌํ”„ํŠธ๋Š” ์˜์–ด ํ”„๋กฌํ”„ํŠธ๋กœ ๋ฒˆ์—ญ๋˜์–ด ์งˆ์˜
    • ์ด๋ฏธ์ง€ ํŽธ์ง‘
      • ์˜์–ด ํ”„๋กฌํ”„ํŠธ์™€ ํ•œ๊ตญ์–ด ํ”„๋กฌํ”„ํŠธ ์ง€์›
      • ํ•œ๊ตญ์–ด ํ”„๋กฌํ”„ํŠธ๋Š” ์˜์–ด ํ”„๋กฌํ”„ํŠธ๋กœ ๋ฒˆ์—ญ๋˜์–ด ์งˆ์˜
    • ์ด๋ฏธ์ง€ ๋ณ€ํ˜•
  • ์Œ์„ฑ์˜ ๋…น์ทจ๋ฅผ ์œ„ํ•œ ์˜ค๋””์˜ค ๋…น์Œ ๊ธฐ๋Šฅ
  • OpenAI์˜ STT(Speech to Text)
  • DeepL์˜ ํ…์ŠคํŠธ ๋ฒˆ์—ญ๊ธฐ

Install bitGPT

github ๋ฆฌํŒŒ์ง€ํ† ๋ฆฌ๋กœ๋ถ€ํ„ฐ ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.:

devtools::install_github("bit2r/bitGPT")

Prepare API keys

chatGPT๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” OpenAI ๋งํฌ์—์„œ ํšŒ์›์„ ๊ฐ€์ž…ํ•˜๊ณ  OpenAI API key๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ž… ํ›„ ์ฒซ 3๋‹ฌ์€ 18 US ๋‹ฌ๋Ÿฌ credit์ด ๋ฌด๋ฃŒ์ด๋‚˜, ์ดํ›„์—๋Š” ์œ ๋ฃŒ์ž„์„ ์ธ์ง€ํ•˜๊ณ  ์ง„ํ–‰ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋˜ํ•œ ํ•œ๊ตญ์–ด ํ™˜๊ฒฝ์œผ๋กœ ์ข€ ๋” ํŽธ์•ˆํ•œ ์‚ฌ์šฉ์„ ์œ„ํ•ด์„œ๋Š” DeepL API key๋„ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”ˆ API ์ด์šฉ์‹ ์ฒญ ๋งํฌ์—์„œ DeepL API Free๋ฅผ ํ†ตํ•ด์„œ API key๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

OpenAI API key ๋“ฑ๋ก

API key๋Š” ๊ณต์œ ๋˜์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ์—์„œ๋Š” OpenAI API key๊ฐ€ XXXXXXXXXXX์ž„์„ ๊ฐ€์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

regist_openai_key()๋ฅผ ํ•œ๋ฒˆ ์ˆ˜ํ–‰ํ•˜๋ฉด, ๋ฒˆ๊ฑฐ๋กญ๊ฒŒ ๋งค๋ฒˆ ์„ธ์…˜๋งˆ๋‹ค API key๋ฅผ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

library(bitGPT)

# ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ํ• ๋‹น๋ฐ›์€ openai API key๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
regist_openai_key("XXXXXXXXXXX")

๋งŒ์•ฝ์— ๊ฐœ์ธ ์ปดํ“จํ„ฐ๊ฐ€ ์•„๋‹Œ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์— bitGPT ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด, API key์˜ ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ regist_openai_key()๋Œ€์‹  set_openai_key()๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

set_openai_key()๋Š” OpenAI API key๋ฅผ R System environment์— ์„ค์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๊ณ  ๋‹ค์‹œ R์„ ๊ตฌ๋™ํ•ด์„œ ์ƒˆ๋กœ์šด ์„ธ์…˜์ด ์ƒ๊ธฐ๋ฉด, ์žฌ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ํ• ๋‹น๋ฐ›์€ openai API key๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
set_openai_key("XXXXXXXXXXX")

DeepL API key ๋“ฑ๋ก

DeepL API key๋Š” OpenAI API key์™€ ์œ ์‚ฌํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ regist_deepl_key()๋ฅผ ํ•œ๋ฒˆ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜, set_deepl_key()๋กœ ์„ธ์…˜ ๋‚ด์—์„œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

# ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ํ• ๋‹น๋ฐ›์€ DeepL API key๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
regist_deepl_key("XXXXXXXXXXX")
# ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ํ• ๋‹น๋ฐ›์€ DeepL API key๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
set_deepl_key("XXXXXXXXXXX")

Laguage translation

DeepL ๋ฒˆ์—ญ

translate()๋Š” DeepL ๋ฒˆ์—ญ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

translate(text = NULL, target = "EN", source = "KO", deepl_api_key = Sys.getenv("DEEPL_API_KEY"))
  • text
    • character. ๋ฒˆ์—ญํ•  ํ…์ŠคํŠธ์ž…๋‹ˆ๋‹ค.
  • source
    • character. ๋ฒˆ์—ญํ•  ํ…์ŠคํŠธ ์–ธ์–ด์˜ ์–ธ์–ด ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ โ€œkoโ€๋กœ ํ•œ๊ตญ์–ด๋ฅผ ๋ฒˆ์—ญํ•ฉ๋‹ˆ๋‹ค.
  • target
    • character. ๋ฒˆ์—ญ๋  ์–ธ์–ด์˜ ์–ธ์–ด ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ โ€œenโ€๋กœ ์˜์–ด๋กœ ๋ฒˆ์—ญํ•ฉ๋‹ˆ๋‹ค.
  • deepl_api_key
    • character. DeepL API key์ž…๋‹ˆ๋‹ค.

๋ช‡ ๊ฐœ ๋ฌธ์žฅ์„ ๋ฒˆ์—ญํ•ด ๋ด…๋‹ˆ๋‹ค.

text <- "๋นˆ์„ผํŠธ ๋ฐ˜ ๊ณ ํ ์Šคํƒ€์ผ๋กœ ์ผ์ถœ๊ณผ ๊ฐˆ๋งค๊ธฐ๋ฅผ ๊ทธ๋ ค์ค˜"
translate(text)
#> [1] "Draw a sunrise and seagulls in the style of Vincent van Gogh"

text <- "Weโ€™ve trained a model called ChatGPT which interacts in a conversational way. The dialogue format makes it possible for ChatGPT to answer followup questions, admit its mistakes, challenge incorrect premises, and reject inappropriate requests."
translate(text, "KO", "EN")
#> [1] "์ €ํฌ๋Š” ๋Œ€ํ™” ๋ฐฉ์‹์œผ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ChatGPT๋ผ๋Š” ๋ชจ๋ธ์„ ํ•™์Šต์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ™” ํ˜•์‹์„ ํ†ตํ•ด ChatGPT๋Š” ํ›„์† ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ณ , ์‹ค์ˆ˜๋ฅผ ์ธ์ •ํ•˜๊ณ , ์ž˜๋ชป๋œ ์ „์ œ์— ์ด์˜๋ฅผ ์ œ๊ธฐํ•˜๊ณ , ๋ถ€์ ์ ˆํ•œ ์š”์ฒญ์„ ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

Chat completion

Create chat completion with chatGPT

chatGPT๋ฅผ ์ด์šฉํ•ด์„œ ๋Œ€ํ™”ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ๋Œ€ํ™”๋ฅผ ์ง€์†ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋‹ค์Œ ๋ฌธ์žฅ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด API๋Š” ์ด์ „ ๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๊ณ„์†ํ•ด์„œ ๋ถ„์„ํ•˜๊ณ , ๋Œ€ํ™”๋ฅผ ๋‚˜์•„๊ฐ€๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ๋‹ค์Œ์˜ chat_completion()๋กœ ์›ํ•˜๋Š” ๋Œ€ํ™”๋ฅผ ๋งŒ๋“ค์–ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

chat_completion(messages = NULL, model = c("gpt-3.5-turbo", "gpt-3.5-turbo-0301"),
    temperature = 1, top_p = 1, n = 1, stream = FALSE, stop = NULL, max_tokens = NULL,
    presence_penalty = 0, frequency_penalty = 0, logit_bias = NULL, user = NULL,
    type = c("messages", "console", "viewer"), openai_api_key = Sys.getenv("OPENAI_API_KEY"))
  • messages
    • character. ์ฑ„ํŒ…์„ ์œ„ํ•œ ๋ฉ”์‹œ์ง€๋กœ ์˜๋ฌธ๊ณผ ๊ตญ๋ฌธ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • model
    • character. Chat completion์— ์‚ฌ์šฉํ•  OpenAI์˜ ๋ชจ๋ธ๋กœ, โ€œgpt-3.5-turboโ€, โ€œgpt-3.5-turbo-0301โ€์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ โ€œgpt-3.5-turboโ€์ž…๋‹ˆ๋‹ค.
  • temperature
    • numeric. 0์—์„œ 2 ์‚ฌ์ด์—์„œ ์‚ฌ์šฉํ•  ์ƒ˜ํ”Œ๋ง ์˜จ๋„. 0.8๊ณผ ๊ฐ™์ด ๊ฐ’์ด ๋†’์œผ๋ฉด ์ถœ๋ ฅ์ด ๋” ๋ฌด์ž‘์œ„์ ์ด๊ณ , 0.2์™€ ๊ฐ™์ด ๊ฐ’์ด ๋‚ฎ์œผ๋ฉด ๋” ์ง‘์ค‘์ ์ด๊ณ  ๊ฒฐ์ •๋ก ์ ์ธ ์ถœ๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๊ฐ’ ๋˜๋Š” top_p๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ ๋‘˜ ๋‹ค ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • top_p
    • numeric. ์˜จ๋„๋ฅผ ์ด์šฉํ•œ ์ƒ˜ํ”Œ๋ง์˜ ๋Œ€์•ˆ์œผ๋กœ, ํ•ต ์ƒ˜ํ”Œ๋ง์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ชจ๋ธ์ด ์ƒ์œ„_p ํ™•๋ฅ  ์งˆ๋Ÿ‰์„ ๊ฐ€์ง„ ํ† ํฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 0.1์€ ์ƒ์œ„ 10% ํ™•๋ฅ  ์งˆ๋Ÿ‰์„ ๊ตฌ์„ฑํ•˜๋Š” ํ† ํฐ๋งŒ ๊ณ ๋ คํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๊ฐ’์ด๋‚˜ temperature๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜์ง€๋งŒ ๋‘˜ ๋‹ค ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • n
    • integer. ๊ฐ ์ž…๋ ฅ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด ์ƒ์„ฑํ•  ์ฑ„ํŒ… ์™„๋ฃŒ ์„ ํƒ ํ•ญ๋ชฉ์˜ ์ˆ˜๋กœ ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.
  • stream
    • logical. ์ด ์˜ต์…˜์„ ์„ค์ •ํ•˜๋ฉด ChatGPT์—์„œ์™€ ๊ฐ™์ด ๋ถ€๋ถ„ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ํ† ํฐ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์ง€๋ฉด data-only server-sent ์ด๋ฒคํŠธ๋กœ ์ „์†ก๋˜๋ฉฐ, ์ŠคํŠธ๋ฆผ์€ data์˜ DONE ๋ฉ”์‹œ์ง€๋กœ ์ŠคํŠธ๋ฆผ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • stop
    • character. API๊ฐ€ ์ถ”๊ฐ€ ํ† ํฐ ์ƒ์„ฑ์„ ์ค‘์ง€ํ•˜๋Š” ์‹œํ€€์Šค๋Š” 1๋ถ€ํ„ฐ ์ตœ๋Œ€ 4๊ฐœ๊นŒ์ง€์ž…๋‹ˆ๋‹ค.
  • max_tokens
    • integer. ์ƒ์„ฑ๋œ ๋‹ต๋ณ€์— ํ—ˆ์šฉ๋˜๋Š” ํ† ํฐ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋ธ์ด ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ† ํฐ ์ˆ˜๋Š” (4096 - ํ”„๋กฌํ”„ํŠธ ํ† ํฐ).
  • presence_penalty
    • numeric. -2.0์—์„œ 2.0 ์‚ฌ์ด์˜ ์ˆซ์ž. ์–‘์ˆ˜ ๊ฐ’์€ ์ง€๊ธˆ๊นŒ์ง€ ํ…์ŠคํŠธ์— ๋“ฑ์žฅํ•œ ํ† ํฐ์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ํ† ํฐ์— ๋ถˆ์ด์ต์„ ์ฃผ๋ฏ€๋กœ ๋ชจ๋ธ์ด ์ƒˆ๋กœ์šด ์ฃผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.
  • frequency_penalty
    • numeric. -2.0์—์„œ 2.0 ์‚ฌ์ด์˜ ์ˆซ์ž. ์–‘์ˆ˜ ๊ฐ’์€ ์ง€๊ธˆ๊นŒ์ง€ ํ…์ŠคํŠธ์—์„œ ๊ธฐ์กด ๋นˆ๋„์— ๋”ฐ๋ผ ์ƒˆ ํ† ํฐ์— ๋ถˆ์ด์ต์„ ์ฃผ์–ด ๋ชจ๋ธ์ด ๊ฐ™์€ ์ค„์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜๋ณตํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋‚ฎ์ถฐ์ค๋‹ˆ๋‹ค.
  • logit_bias
    • ์™„๋ฃŒ์— ์ง€์ •๋œ ํ† ํฐ์ด ํ‘œ์‹œ๋  ๊ฐ€๋Šฅ์„ฑ์„ ์ˆ˜์ •. ํ† ํฐ(ํ† ํฐํ™”๊ธฐ์—์„œ ํ† ํฐ ID๋กœ ์ง€์ •)์„ -100์—์„œ 100 ์‚ฌ์ด์˜ ์—ฐ๊ด€๋œ ๋ฐ”์ด์–ด์Šค ๊ฐ’์— ๋งคํ•‘ํ•˜๋Š” json ๊ฐ์ฒด๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™์ ์œผ๋กœ ๋ฐ”์ด์–ด์Šค๋Š” ์ƒ˜ํ”Œ๋ง ์ „์— ๋ชจ๋ธ์—์„œ ์ƒ์„ฑ๋œ ๋กœ๊ทธ์— ์ถ”๊ฐ€๋˜๋ฉฐ, ์ •ํ™•ํ•œ ํšจ๊ณผ๋Š” ๋ชจ๋ธ๋งˆ๋‹ค ๋‹ค๋ฅด์ง€๋งŒ -1์—์„œ 1 ์‚ฌ์ด์˜ ๊ฐ’์€ ์„ ํƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ฑฐ๋‚˜ ๋Š˜๋ฆฌ๊ณ , -100 ๋˜๋Š” 100๊ณผ ๊ฐ™์€ ๊ฐ’์€ ๊ด€๋ จ ํ† ํฐ์„ ๊ธˆ์ง€ํ•˜๊ฑฐ๋‚˜ ๋…์ ์ ์œผ๋กœ ์„ ํƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • user
    • character. ์ตœ์ข… ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณ ์œ  ์‹๋ณ„์ž๋กœ, OpenAI๊ฐ€ ์•…์šฉ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ฐ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • type
    • character. ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฐ๊ณผ ํƒ€์ž…. โ€œmessagesโ€, โ€œconsoleโ€, โ€œviewerโ€์—์„œ ์„ ํƒํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์ธ โ€œmessagesโ€๋Š” ๊ฒฐ๊ณผ๋ฅผ assistant ์ปดํฌ๋„ŒํŠธ์— ์ถ”๊ฐ€ํ•œ messages ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. โ€œconsoleโ€๋Š” R ์ฝ˜์†”์— ํ”„๋ฆฐํŠธ ์•„์›ƒ๋˜๋ฉฐ, โ€œviewerโ€๋Š” HTML ํฌ๋งท์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๊ฒฐ๊ณผ์— R ์ฝ”๋“œ๊ฐ€ chunk๋กœ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋ฉด, ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ ๊ฒฐ๊ณผ๋„ HTML ๋ฌธ์„œ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • openai_api_key
    • character. OpenAI API key์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ regist_openai_key(), sett_openai_key()๋กœ API key๋ฅผ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ์ด ์ธ์ˆ˜๊ฐ’์„ ์ง€์ •ํ•  ํ•„์š”์—†์Šต๋‹ˆ๋‹ค.

๋ช‡๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ์˜ ์ฑ„ํŒ…์„ ์ˆ˜ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

type = โ€œconsoleโ€

์ด ๋ฐฉ๋ฒ•์€ message ๊ฐ์ฒด์˜ ๊ฒฐ๊ณผ๋ฅผ ์ข€๋” ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ฝ˜์†”์— ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

> chat_completion("๋„ค ์ด๋ฆ„์€ ๋ญ๋‹ˆ?", type = "console")
โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• user โ•โ•
๋„ค ์ด๋ฆ„์€ ๋ญ๋‹ˆ?

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• assistant โ•โ•
์ œ ์ด๋ฆ„์€ OpenAI Assistive์ž…๋‹ˆ๋‹ค. ์ €๋Š” OpenAI์˜ ์ธ๊ณต์ง€๋Šฅ ์–ด์‹œ์Šคํ„ดํŠธ์ž…๋‹ˆ๋‹ค.
> chat_completion("๋ฏธ์„ธ๋จผ์ง€๊ฐ€ ๋งŽ์€ ๋‚ ์€ ์–ด๋–ป๊ฒŒ ์ค€๋น„ํ•ด์•ผํ• ๊นŒ?", type = "console")
โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• user โ•โ•
๋ฏธ์„ธ๋จผ์ง€๊ฐ€ ๋งŽ์€ ๋‚ ์€ ์–ด๋–ป๊ฒŒ ์ค€๋น„ํ•ด์•ผํ• ๊นŒ?

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• assistant โ•โ•
๋ฏธ์„ธ๋จผ์ง€๊ฐ€ ๋งŽ์€ ๋‚ ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค€๋น„๋ฅผ ํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

1. ๋งˆ์Šคํฌ ์ฐฉ์šฉ : ๋ฏธ์„ธ๋จผ์ง€๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ๋งˆ์Šคํฌ๋ฅผ ์ฐฉ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ์„ธ๋จผ์ง€๊ฐ€ ์‹ฌํ•œ ๋‚ ์—๋Š” KF94 ๋“ฑ๊ธ‰ ์ด์ƒ์˜ ๋งˆ์Šคํฌ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2. ์‹ค๋‚ด ํ™˜๊ธฐ ๋ฐฉ์ง€ : ์‹ค๋‚ด ๊ณต๊ธฐ๋ฅผ ์ง‘์ค‘์ ์œผ๋กœ ์ •ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ฐฝ๋ฌธ, ๋ฌธ์„ ๋‹ซ๊ณ  ์—์–ด์ปจ, ๊ณต๊ธฐ์ฒญ์ •๊ธฐ๋ฅผ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

3. ์™ธ์ถœ ์ œํ•œ : ๋ฏธ์„ธ๋จผ์ง€ ๋†๋„๊ฐ€ ๋งค์šฐ ๋†’์€ ๋‚ ์—๋Š” ๊ฐ€๋Šฅํ•œ ์‹ค๋‚ด์—์„œ ํ™œ๋™์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์œผ๋ฉฐ, ์™ธ์ถœ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋งˆ์Šคํฌ๋ฅผ ๊ผญ ์ฐฉ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4. ์ ์ •ํ•œ ์ˆ˜๋ถ„ ์„ญ์ทจ : ๋ฏธ์„ธ๋จผ์ง€๋กœ ์ธํ•ด ๋ชฉ์ด ๊ฑด์กฐํ•ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ, ์ถฉ๋ถ„ํ•œ ์ˆ˜๋ถ„์„ ์„ญ์ทจํ•ด ๋ชฉ์„ ์ ์ •ํ•œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

5. ๋ˆˆ ๊ฑด๊ฐ• ๋ณดํ˜ธ : ๋ฏธ์„ธ๋จผ์ง€๋Š” ๋ˆˆ์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์•ˆ๊ฒฝ์ด๋‚˜ ๋ˆˆ์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธ€์„ ์ฐฉ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‘ํ†ต, ๊ฒฐ๋ง‰์—ผ ๋“ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ณ‘์› ์„ ์ƒ๋‹˜ ์ƒ๋‹ด์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
> chat_completion("๊ทผ์˜ ๊ณต์‹์„ ์„ค๋ช…ํ•ด์ค˜", type = "console")
โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• user โ•โ•
๊ทผ์˜ ๊ณต์‹์„ ์„ค๋ช…ํ•ด์ค˜

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• assistant โ•โ•
๊ทผ์˜ ๊ณต์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ax^2 + bx + c = 0 (a โ‰  0)๋ผ๋Š” ์ด์ฐจ๋ฐฉ์ •์‹์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ๋ฐฉ์ •์‹์˜ ๊ทผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณต์‹์„ ์ด์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

x = (-b ยฑ โˆš(b^2 - 4ac)) / 2a

์—ฌ๊ธฐ์—์„œ,

- b๋Š” ์ด์ฐจํ•ญ์˜ ๊ณ„์ˆ˜์ด๋ฉฐ, x์— ๊ณฑํ•ด์ง„ ๊ณ„์ˆ˜์˜ ํ•ฉ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
- a๋Š” ์ด์ฐจํ•ญ์˜ ๊ณ„์ˆ˜์ž…๋‹ˆ๋‹ค.
- c๋Š” ์ƒ์ˆ˜ํ•ญ์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค.
- โˆš๋Š” ๋ฃจํŠธ ๊ธฐํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
- ยฑ๋Š” ์–‘์ˆ˜์™€ ์Œ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š”๋ฐ, ์ด๋Š” ๋‘ ๊ฐœ์˜ ์‹์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์ด ๊ณต์‹์„ ์ด์šฉํ•˜์—ฌ ์ด์ฐจ๋ฐฉ์ •์‹์˜ ๊ทผ์„ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ณต์‹์€ ๊ทผ์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๊ทผ์˜ ์‹ค์ˆ˜, ํ—ˆ์ˆ˜, ์ค‘๊ทผ ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทผ์„ ๊ตฌํ•˜๊ธฐ ์ „์— ํ•ด๋‹น ๋ฐฉ์ •์‹์˜ ๊ทผ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์–ด๋–ค์ง€ ํŒ๋ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
> chat_completion("ํ”ผํƒ€๊ณ ๋ผ์Šค์˜ ์ •๋ฆฌ๋Š” ๋ฌด์—‡์ด์ง€?", type = "console")

ํ”ผํƒ€๊ณ ๋ผ์Šค์˜ ์ •๋ฆฌ๋Š” ์ง๊ฐ์‚ผ๊ฐํ˜•์—์„œ ๋น—๋ณ€์˜ ์ œ๊ณฑ์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ์ œ๊ณฑ์˜ ํ•ฉ๊ณผ ๊ฐ™๋‹ค๋Š” ์ •๋ฆฌ์ด๋‹ค. ์ฆ‰, $a^2+b^2=c^2$๋กœ ํ‘œํ˜„๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ฆฌ๋Š” ์ˆ˜ํ•™๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ณตํ•™, ๋ฌผ๋ฆฌํ•™ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ํ™œ์šฉ๋œ๋‹ค.

type = โ€œmessagesโ€

์ด ๋ฐฉ๋ฒ•์€ ์งˆ๋ฌธ๊ณผ ๋‹ต์„ ์„œ๋กœ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ฑ„ํŒ…์„ ๊ตฌํ˜„ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฐ˜ํ™˜ํ•˜๋Š” messages ๊ฐ์ฒด์—๋Š” ์ฃผ๊ณ  ๋ฐ›์€ ๋ฉ”์‹œ์ง€์™€ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ role์ด ๋ฆฌ์ŠคํŠธ๋กœ ๋“ค์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

bitGPT ํŒจํ‚ค์ง€๋Š” messages ๊ฐ์ฒด๋ฅผ ํ•ธ๋“ค๋งํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์Œ์˜ ํ•จ์ˆ˜(๋ฉ”์†Œ๋“œ)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • create_messages()
    • ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด ์ƒ์„ฑ
  • add()
    • ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด์— ๋ฉ”์‹œ์ง€ ์ถ”๊ฐ€
  • show()
    • ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด์˜ ๋ฉ”์‹œ์ง€ ์กฐํšŒ

๋‹ค์Œ์€ ๋‹จ์ผ ๋ฉ”์‹œ์ง€์˜ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

> chat_completion("R์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๋ฌด์—‡์ผ๊นŒ?.", type = "messages")
[[1]]
[[1]]$role
[1] "user"

[[1]]$content
[1] "R์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๋ฌด์—‡์ผ๊นŒ?."


[[2]]
[[2]]$role
[1] "assistant"

[[2]]$content
[1] "R์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋“ค์ด ํ’๋ถ€ํ•˜๊ฒŒ ์ œ๊ณต๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. R์€ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋กœ์„œ, ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž ๋ฐ ํ†ต๊ณ„ํ•™์ž๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ถ„์„, ์‹œ๊ฐํ™”ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์— ํฌํ•จ๋œ ํŒจํ„ด ๋ฐ ํŠธ๋ Œ๋“œ๋ฅผ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ R์€ ํ†ต๊ณ„ํ•™์  ์ธก๋ฉด์—์„œ ๊ฐ•ํ•˜๋ฉฐ, ํ†ต๊ณ„ ๋ถ„์„ ๋ฐ ๋ชจ๋ธ๋ง์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ๊ณผํ•™ ๋ถ„์•ผ์—์„œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."


attr(,"class")
[1] "messages" "list" 

messages ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฑ„ํŒ…์„ ์ˆ˜ํ–‰ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

> # ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ์‚ฌ๋ก€
> msg <- create_messages(user = "R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ํ•™์˜ ์ดํ•ด ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋ถ€ํƒํ•ด",
+                        system = "assistant๋Š” R์„ ์ด์šฉํ•ด์„œ ํ†ต๊ณ„ํ•™์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ฐ•์‚ฌ์ž…๋‹ˆ๋‹ค.")
> # ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด๋กœ ๋ฐ˜ํ™˜
> answer <- chat_completion(msg, type = "messages")
> answer
[[1]]
[[1]]$role
[1] "system"

[[1]]$content
[1] "assistant๋Š” R์„ ์ด์šฉํ•ด์„œ ํ†ต๊ณ„ํ•™์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ฐ•์‚ฌ์ž…๋‹ˆ๋‹ค."


[[2]]
[[2]]$role
[1] "user"

[[2]]$content
[1] "R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ํ•™์˜ ์ดํ•ด ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋ถ€ํƒํ•ด"


[[3]]
[[3]]$role
[1] "assistant"

[[3]]$content
[1] "R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ํ•™ ์ปค๋ฆฌํ˜๋Ÿผ์ž…๋‹ˆ๋‹ค.\n\n1. ๊ธฐ์ดˆ ํ†ต๊ณ„ ์ดํ•ด\n- ๊ธฐ์ˆ ํ†ต๊ณ„ํ•™: ์ค‘์‹ฌ ๊ฒฝํ–ฅ์„ฑ, ๋ถ„์‚ฐ, ํ‘œ์ค€ํŽธ์ฐจ ๋“ฑ\n- ์ถ”๋ก ํ†ต๊ณ„ํ•™: ๊ฐ€์„ค๊ฒ€์ •, ์‹ ๋ขฐ๊ตฌ๊ฐ„, p-value ๋“ฑ\n- ํ™•๋ฅ ์˜ ์ดํ•ด: ํ™•๋ฅ ์˜ ์ •์˜, ๋ง์…ˆ๊ณผ ๊ณฑ์…ˆ ๋ฒ•์น™ ๋“ฑ\n\n2. R ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐ R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต\n- R ํ™˜๊ฒฝ ๊ตฌ์ถ•: R ์„ค์น˜, RStudio ๊ตฌ์ถ• ๋“ฑ\n- R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต: ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋ฒกํ„ฐ, ํ–‰๋ ฌ ๋“ฑ\n\n3. ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ์‹œ๊ฐํ™”\n- ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ: ๊ฒฐ์ธก์น˜, ์ด์ƒ์น˜ ์ฒ˜๋ฆฌ ๋“ฑ\n- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ํžˆ์Šคํ† ๊ทธ๋žจ, ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„, ์‚ฐ์ ๋„ ๋“ฑ\n- ํ†ต๊ณ„ ๋ถ„์„: ์„ ํ˜• ํšŒ๊ท€, ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€, ANOVA, t-test ๋“ฑ\n\n4. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰\n- ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ: ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ, ๊ณต๊ณต๋ฐ์ดํ„ฐ ๋“ฑ ์‚ฌ์šฉ\n- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ๋ถ„์„: ์ฃผ์ œ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ถ„์„ ๊ธฐ๋ฒ• ์‚ฌ์šฉ\n- ๋ณด๊ณ ์„œ ์ž‘์„ฑ: ๋ถ„์„ ๊ฒฐ๊ณผ ํ•ด์„ ๋ฐ ๊ฒฐ๋ก  ๋„์ถœ\n\n์œ„ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด, ํ•™์ƒ๋“ค์€ R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™”์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ดํ•ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค."


attr(,"class")
[1] "messages" "list"   

show() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ณด๊ธฐ์ข‹๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

> show(answer)
โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• system โ•โ•
assistant๋Š” R์„ ์ด์šฉํ•ด์„œ ํ†ต๊ณ„ํ•™์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ฐ•์‚ฌ์ž…๋‹ˆ๋‹ค.

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• user โ•โ•
R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ํ•™์˜ ์ดํ•ด ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋ถ€ํƒํ•ด

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• assistant โ•โ•
R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ํ•™ ์ปค๋ฆฌํ˜๋Ÿผ์ž…๋‹ˆ๋‹ค.

1. ๊ธฐ์ดˆ ํ†ต๊ณ„ ์ดํ•ด
- ๊ธฐ์ˆ ํ†ต๊ณ„ํ•™: ์ค‘์‹ฌ ๊ฒฝํ–ฅ์„ฑ, ๋ถ„์‚ฐ, ํ‘œ์ค€ํŽธ์ฐจ ๋“ฑ
- ์ถ”๋ก ํ†ต๊ณ„ํ•™: ๊ฐ€์„ค๊ฒ€์ •, ์‹ ๋ขฐ๊ตฌ๊ฐ„, p-value ๋“ฑ
- ํ™•๋ฅ ์˜ ์ดํ•ด: ํ™•๋ฅ ์˜ ์ •์˜, ๋ง์…ˆ๊ณผ ๊ณฑ์…ˆ ๋ฒ•์น™ ๋“ฑ

2. R ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐ R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต
- R ํ™˜๊ฒฝ ๊ตฌ์ถ•: R ์„ค์น˜, RStudio ๊ตฌ์ถ• ๋“ฑ
- R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต: ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋ฒกํ„ฐ, ํ–‰๋ ฌ ๋“ฑ

3. ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ์‹œ๊ฐํ™”
- ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ: ๊ฒฐ์ธก์น˜, ์ด์ƒ์น˜ ์ฒ˜๋ฆฌ ๋“ฑ
- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ํžˆ์Šคํ† ๊ทธ๋žจ, ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„, ์‚ฐ์ ๋„ ๋“ฑ
- ํ†ต๊ณ„ ๋ถ„์„: ์„ ํ˜• ํšŒ๊ท€, ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€, ANOVA, t-test ๋“ฑ

4. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰
- ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ: ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ, ๊ณต๊ณต๋ฐ์ดํ„ฐ ๋“ฑ ์‚ฌ์šฉ
- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ๋ถ„์„: ์ฃผ์ œ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ถ„์„ ๊ธฐ๋ฒ• ์‚ฌ์šฉ
- ๋ณด๊ณ ์„œ ์ž‘์„ฑ: ๋ถ„์„ ๊ฒฐ๊ณผ ํ•ด์„ ๋ฐ ๊ฒฐ๋ก  ๋„์ถœ

์œ„ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด, ํ•™์ƒ๋“ค์€ R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™”์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ดํ•ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

type = โ€œviewerโ€

์ด ๋ฐฉ๋ฒ•์€ ๋‹ต๋ณ€์˜ ๊ฒฐ๊ณผ์— R ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ๋ฅผ R ๋งˆํฌ๋‹ค์šด์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์—ฌ HTML๋กœ ๋งŒ๋“  ํ›„ ๋ธŒ๋ผ์šฐ์ €์— ๋„์›Œ์ค๋‹ˆ๋‹ค.

๋‹ค๋งŒ, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ ๋‹ต๋ณ€์˜ ๊ฒฐ๊ณผ ํฌํ•จ๋œ R ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰ ์ค‘์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถˆ์™„์ „ํ•œ Pseudo ์ฝ”๋“œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ž์„œ chatGPT assistant์˜ ๋‹ต๋ณ€์— ๋ถ€์กฑํ•จ์ด ๋ณด์—ฌ์„œ, ์ปค๋ฆฌํ˜๋Ÿผ์— tidyverse ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ add() ํ•จ์ˆ˜๋กœ ์ด์ „ ์งˆ๋ฌธ์˜ ๊ฒฐ๊ณผ์— ์ถ”๊ฐ€ ์งˆ๋ฌธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

# ๋ฐ˜ํ™˜๋ฐ›์€ ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด์— ์งˆ์˜๋ฅผ ์œ„ํ•œ user role์˜ ๋ฉ”์‹œ์ง€ ์ถ”๊ฐ€
> msg <- add(answer, user = "์ปค๋ฆฌํ˜๋Ÿผ์— tidyverse ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•ด์ค˜.")

์ถ”๊ฐ€๋œ ์งˆ๋ฌธ์€ type ์ธ์ˆ˜๋ฅผ โ€œviewerโ€๋กœ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ธŒ๋ผ์šฐ์ €๋กœ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๊ฒ ์ง€๋งŒ, ํ• ๋‹น ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด์„œ ๊ฒฐ๊ณผ์ธ message ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•ด๋‘˜ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

# ์ด์ „ ๋ฉ”์‹œ์ง€๋ฅผ ํฌํ•จํ•˜์—ฌ ์ถ”๊ฐ€ ์งˆ์˜
> answer2 <- chat_completion(msg, type = "viewer")

์ด ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉด, ๋‹ค์Œ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋ฉ”์‹œ์ง€๋“ค์ด ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์˜ HTML ํ”„๋ผ์šฐ์ง• ํ™”๋ฉด

๊ฒฐ๊ณผ์˜ HTML ํ”„๋ผ์šฐ์ง• ํ™”๋ฉด

ํ• ๋‹นํ•ด ๋‘์—ˆ๋˜ message ๊ฐ์ฒด์ธ answer2๋ฅผ ๋‹ค์Œ์ฒ˜๋Ÿผ show() ํ•จ์ˆ˜๋กœ ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ถœ๋ ฅํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋ฉ”์‹œ์ง€๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋‹ค์‹œ ์งˆ์˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

> show(answer2)
โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• system โ•โ•
assistant๋Š” R์„ ์ด์šฉํ•ด์„œ ํ†ต๊ณ„ํ•™์„ ๊ฐ€๋ฅด์น˜๋Š” ๊ฐ•์‚ฌ์ž…๋‹ˆ๋‹ค.

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• user โ•โ•
R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ํ•™์˜ ์ดํ•ด ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋ถ€ํƒํ•ด

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• assistant โ•โ•
R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ํ•™ ์ปค๋ฆฌํ˜๋Ÿผ์ž…๋‹ˆ๋‹ค.

1. ๊ธฐ์ดˆ ํ†ต๊ณ„ ์ดํ•ด
- ๊ธฐ์ˆ ํ†ต๊ณ„ํ•™: ์ค‘์‹ฌ ๊ฒฝํ–ฅ์„ฑ, ๋ถ„์‚ฐ, ํ‘œ์ค€ํŽธ์ฐจ ๋“ฑ
- ์ถ”๋ก ํ†ต๊ณ„ํ•™: ๊ฐ€์„ค๊ฒ€์ •, ์‹ ๋ขฐ๊ตฌ๊ฐ„, p-value ๋“ฑ
- ํ™•๋ฅ ์˜ ์ดํ•ด: ํ™•๋ฅ ์˜ ์ •์˜, ๋ง์…ˆ๊ณผ ๊ณฑ์…ˆ ๋ฒ•์น™ ๋“ฑ

2. R ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐ R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต
- R ํ™˜๊ฒฝ ๊ตฌ์ถ•: R ์„ค์น˜, RStudio ๊ตฌ์ถ• ๋“ฑ
- R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต: ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋ฒกํ„ฐ, ํ–‰๋ ฌ ๋“ฑ

3. ๋ฐ์ดํ„ฐ ๋ถ„์„๊ณผ ์‹œ๊ฐํ™”
- ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ: ๊ฒฐ์ธก์น˜, ์ด์ƒ์น˜ ์ฒ˜๋ฆฌ ๋“ฑ
- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ํžˆ์Šคํ† ๊ทธ๋žจ, ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„, ์‚ฐ์ ๋„ ๋“ฑ
- ํ†ต๊ณ„ ๋ถ„์„: ์„ ํ˜• ํšŒ๊ท€, ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€, ANOVA, t-test ๋“ฑ

4. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰
- ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ: ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ, ๊ณต๊ณต๋ฐ์ดํ„ฐ ๋“ฑ ์‚ฌ์šฉ
- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ๋ถ„์„: ์ฃผ์ œ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ถ„์„ ๊ธฐ๋ฒ• ์‚ฌ์šฉ
- ๋ณด๊ณ ์„œ ์ž‘์„ฑ: ๋ถ„์„ ๊ฒฐ๊ณผ ํ•ด์„ ๋ฐ ๊ฒฐ๋ก  ๋„์ถœ

์œ„ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด, ํ•™์ƒ๋“ค์€ R์„ ์ด์šฉํ•œ ํ†ต๊ณ„ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™”์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ดํ•ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• user โ•โ•
์ปค๋ฆฌํ˜๋Ÿผ์— tidyverse ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•ด์ค˜.

โ•โ• Chat with chatGPT โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• assistant โ•โ•
๋ฌผ๋ก ์ž…๋‹ˆ๋‹ค. tidyverse ํŒจํ‚ค์ง€๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ์‹œ๊ฐํ™”๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋งŽ์€ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์ปค๋ฆฌํ˜๋Ÿผ์— tidyverse ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๊ธฐ์ดˆ ํ†ต๊ณ„ ์ดํ•ด
- ๊ธฐ์ˆ ํ†ต๊ณ„ํ•™: ์ค‘์‹ฌ ๊ฒฝํ–ฅ์„ฑ, ๋ถ„์‚ฐ, ํ‘œ์ค€ํŽธ์ฐจ ๋“ฑ
- ์ถ”๋ก ํ†ต๊ณ„ํ•™: ๊ฐ€์„ค๊ฒ€์ •, ์‹ ๋ขฐ๊ตฌ๊ฐ„, p-value ๋“ฑ
- ํ™•๋ฅ ์˜ ์ดํ•ด: ํ™•๋ฅ ์˜ ์ •์˜, ๋ง์…ˆ๊ณผ ๊ณฑ์…ˆ ๋ฒ•์น™ ๋“ฑ

2. R ํ™˜๊ฒฝ ๊ตฌ์ถ• ๋ฐ R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต
- R ํ™˜๊ฒฝ ๊ตฌ์ถ•: R ์„ค์น˜, RStudio ๊ตฌ์ถ• ๋“ฑ
- R ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ํ•™์Šต: ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๋ฒกํ„ฐ, ํ–‰๋ ฌ ๋“ฑ

3. ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ์‹œ๊ฐํ™”
- tidyverse ํŒจํ‚ค์ง€: dplyr, ggplot2 ๋“ฑ์˜ ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ์‹œ๊ฐํ™” ๊ธฐ๋ฒ•
- ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ: ๊ฒฐ์ธก์น˜, ์ด์ƒ์น˜ ์ฒ˜๋ฆฌ ๋“ฑ
- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”: ํžˆ์Šคํ† ๊ทธ๋žจ, ๋ง‰๋Œ€๊ทธ๋ž˜ํ”„, ์‚ฐ์ ๋„ ๋“ฑ

4. ํ†ต๊ณ„ ๋ถ„์„๊ณผ ์ ์šฉ
- ํ†ต๊ณ„ ๋ถ„์„: ์„ ํ˜• ํšŒ๊ท€, ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€, ANOVA, t-test ๋“ฑ
- ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„์„: tidyverse ํŒจํ‚ค์ง€์™€ ํ†ต๊ณ„ ๋ถ„์„์„ ํ™œ์šฉํ•œ ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ถ„์„

5. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰
- ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ: ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ, ๊ณต๊ณต๋ฐ์ดํ„ฐ ๋“ฑ ์‚ฌ์šฉ
- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ๋ถ„์„: ์ฃผ์ œ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ถ„์„ ๊ธฐ๋ฒ• ์‚ฌ์šฉ
- ๋ณด๊ณ ์„œ ์ž‘์„ฑ: ๋ถ„์„ ๊ฒฐ๊ณผ ํ•ด์„ ๋ฐ ๊ฒฐ๋ก  ๋„์ถœ

์œ„ ์ปค๋ฆฌํ˜๋Ÿผ์„ ํ™œ์šฉํ•˜์—ฌ tidyverse ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ์‹œ๊ฐํ™” ๊ธฐ๋ฒ•์„ ํ•™์ƒ๋“ค์ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๋ถ„์„์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ๋†’์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Image processing

Create image with chatGPT

chatGPT๋ฅผ ์ด์šฉํ•ด์„œ, ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€๋ฅผ ์„ค๋ช…ํ•˜๋Š” ํ”„๋กฌํ”„ํŠธ์— ๋ถ€ํ•ฉํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ๋‹ค์Œ์˜ draw_img()๋กœ ์›ํ•˜๋Š” ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋Š” ํ™”๊ฐ€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

draw_img(prompt, ko2en = TRUE, n = 1L, size = c("1024x1024", "256x256",
    "512x512"), type = c("url", "image", "file"), format = c("png", "jpeg",
    "gif"), path = "./", fname = "aidrawing", openai_api_key = Sys.getenv("OPENAI_API_KEY"))
  • prompt
    • character. ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ํ”„๋กฌํ”„ํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๊ณ ์ž ํ•˜๋Š” ํ™”๊ฐ€์˜ ์ƒ์ƒ์„ ์˜์–ด๋‚˜ ํ•œ๊ธ€๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ko2en
    • logical. ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ•œ๊ตญ์–ด์ผ ๋•Œ, ์˜์–ด๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ์งˆ์˜ํ•˜๋Š” ์—ฌ๋ถ€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. TRUE์ด๋ฉด ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์˜์–ด๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์งˆ์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ธ€๋กœ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, ๊ทธ๋ ค์ง„ ๊ทธ๋ฆผ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•œ ๊ฒฝํ—˜์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ TRUE๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • n
    • integer. ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ 1๊ณผ 10 ์‚ฌ์ด์˜ ์ •์ˆ˜๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1๋กœ ํ•˜๋‚˜์˜ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
  • size
    • character. ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋กœ โ€œ1024x1024โ€, โ€œ256x256โ€, โ€œ512x512โ€์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ •์‚ฌ๊ฐํ˜• ํฌ๊ธฐ๋งŒ ์ง€์›ํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์€ โ€œ1024x1024โ€์ž…๋‹ˆ๋‹ค.
  • type
    • character. ๋ฐ˜ํ™˜ํ•˜๋Š” ์ด๋ฏธ์ง€ ํƒ€์ž…์„ ๋‹ค์Œ 3๊ฐ€์ง€์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      • โ€œurlโ€ : ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” OpenAI์˜ URL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
      • โ€œimageโ€ : ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ R ํ™˜๊ฒฝ์˜ ํ”Œ๋กฏ์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
      • โ€œfileโ€ : ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • format
    • character. ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ํฌ๋งท์œผ๋กœ type์˜ ๊ฐ’์ด โ€œfileโ€์ผ ๊ฒฝ์šฐ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. โ€œpngโ€, โ€œjpegโ€, โ€œgifโ€์—์„œ ์„ ํƒํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์€ โ€œpngโ€์ž…๋‹ˆ๋‹ค.
  • path
    • character. ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋กœ type์˜ ๊ฐ’์ด โ€œfileโ€์ผ ๊ฒฝ์šฐ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • fname
    • character. ๊ฒฝ๋กœ์™€ ํ™•์žฅ์ž๋ฅผ ์ œ์™ธํ•œ ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ์ด๋ฆ„์œผ๋กœ, type์˜ ๊ฐ’์ด โ€œfileโ€์ผ ๊ฒฝ์šฐ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • openai_api_key
    • character. OpenAI API key์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ regist_openai_key(), sett_openai_key()๋กœ API key๋ฅผ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ์ด ์ธ์ˆ˜๊ฐ’์„ ์ง€์ •ํ•  ํ•„์š”์—†์Šต๋‹ˆ๋‹ค.

๋นˆ์„ผํŠธ ๋ฐ˜ ๊ณ ํ ์Šคํƒ€์ผ๋กœ ํ•ด๋ณ€์—์„œ์˜ ์ผ์ถœ๊ณผ ๊ฐˆ๋งค๊ธฐ๋ฅผ ๊ทธ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜์–ด ํ”„๋กฌํ”„ํŠธ๋กœ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ko2en ์ธ์ˆ˜๊ฐ’์€ FALSE๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ๋Š” ๊ทธ๋ ค์ง„ ์ด๋ฏธ์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” URL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

prompt_en <- "Draw a sunrise and a seagull in Vincent van Gogh style."
draw_img(prompt_en, ko2en = FALSE)

ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ๋กœ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ ค์ง„ ๊ฒฐ๊ณผ๋Š” R ํ”Œ๋กฏ์œผ๋กœ ๋ฐ˜ํ™˜๋˜๋ฏ€๋กœ RStudio ํ™˜๊ฒฝ์ด๋ผ๋ฉด, Plots ํŒจ๋„์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

prompt_ko <- "๋นˆ์„ผํŠธ ๋ฐ˜ ๊ณ ํ ์Šคํƒ€์ผ๋กœ ์ผ์ถœ๊ณผ ๊ฐˆ๋งค๊ธฐ๋ฅผ ๊ทธ๋ ค์ค˜"
draw_img(prompt_ko, type = "image")

ํŒŒ์ผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด type์˜ ๊ฐ’์„ โ€œfileโ€๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์™€ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์—, ํ˜„์žฌ์˜ working directory์— โ€œaidrawing.pngโ€๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

draw_img(prompt_ko, type = "file")

๊ทธ๋ฆฌ๋Š” ๊ทธ๋ฆผ์˜ ๋ชจ์–‘์€ ๋งค๋ฒˆ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ณ ํ๊ฐ€ ๊ทธ๋ฆฐ ์ผ์ถœ๊ณผ ๊ฐˆ๋งค๊ธฐ ์ž‘ํ’ˆ์ž…๋‹ˆ๋‹ค.

๊ณ ํํ’ ๋“œ๋กœ์ž‰ ๊ณ ํํ’ ๋“œ๋กœ์ž‰ ๊ณ ํํ’ ๋“œ๋กœ์ž‰

Edit image with chatGPT

chatGPT๋ฅผ ์ด์šฉํ•ด์„œ, ์ด๋ฏธ์ง€๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ๋‹ค์Œ์˜ draw_img_edit()๋กœ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€์˜ ํŠน์ • ๋ถ€๋ถ„์„ ํˆ์ง‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋Š” draw_img_variation()์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. image ์ธ์ˆ˜์— ํŽธ์ง‘ํ•  ์›๋ž˜์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„, mask์— ํŽธ์ง‘ํ•  ๋ถ€๋ถ„์„ ์„ ํƒํ•˜๋Š”(mask) ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  prompt์—๋Š” ํŽธ์ง‘ํ•  ๋ถ€๋ถ„์˜ ํŽธ์ง‘ ๋‚ด์šฉ์„ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.

draw_img_edit(image, mask, prompt, ko2en = TRUE, n = 1L, size = c("1024x1024",
    "256x256", "512x512"), type = c("url", "image", "file"), format = c("png",
    "jpeg", "gif"), path = "./", fname = "aiedit", openai_api_key = Sys.getenv("OPENAI_API_KEY"))
  • image
    • character. ํŽธ์ง‘ํ•  ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
  • mask
    • character. ํˆฌ๋ช…ํ•œ(alpha ๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ) ์˜์—ญ์ด ์ด๋ฏธ์ง€๋ฅผ ํŽธ์ง‘ํ•˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ถ”๊ฐ€ ์ด๋ฏธ์ง€๋กœ, 4MB ๋ฏธ๋งŒ์˜ ์œ ํšจํ•œ PNG ํŒŒ์ผ์ด์–ด์•ผ ํ•˜๋ฉฐ ์ด๋ฏธ์ง€์™€ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • prompt
    • character. ํŽธ์ง‘์„ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 1000์ž์ž…๋‹ˆ๋‹ค.
  • ko2en
    • logical. ํ”„๋กฌํ”„ํŠธ๊ฐ€ ํ•œ๊ตญ์–ด์ผ ๋•Œ, ์˜์–ด๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ์งˆ์˜ํ•˜๋Š” ์—ฌ๋ถ€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. TRUE์ด๋ฉด ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์˜์–ด๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์งˆ์˜ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ธ€๋กœ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, ๊ทธ๋ ค์ง„ ๊ทธ๋ฆผ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•œ ๊ฒฝํ—˜์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•œ๊ธ€ ํ”„๋กฌํ”„ํŠธ์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ TRUE๋กœ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • n
    • integer. ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ 1๊ณผ 10 ์‚ฌ์ด์˜ ์ •์ˆ˜๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1๋กœ ํ•˜๋‚˜์˜ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
  • size
    • character. ์ƒ์„ฑํ•  ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋กœ โ€œ1024x1024โ€, โ€œ256x256โ€, โ€œ512x512โ€์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ •์‚ฌ๊ฐํ˜• ํฌ๊ธฐ๋งŒ ์ง€์›ํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์€ โ€œ1024x1024โ€์ž…๋‹ˆ๋‹ค.
  • type
    • character. ๋ฐ˜ํ™˜ํ•˜๋Š” ์ด๋ฏธ์ง€ ํƒ€์ž…์„ ๋‹ค์Œ 3๊ฐ€์ง€์—์„œ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      • โ€œurlโ€ : ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ƒ์„ฑ๋œ ์ด๋ฏธ์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” OpenAI์˜ URL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
      • โ€œimageโ€ : ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ R ํ™˜๊ฒฝ์˜ ํ”Œ๋กฏ์œผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
      • โ€œfileโ€ : ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • format
    • character. ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ํฌ๋งท์œผ๋กœ type์˜ ๊ฐ’์ด โ€œfileโ€์ผ ๊ฒฝ์šฐ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. โ€œpngโ€, โ€œjpegโ€, โ€œgifโ€์—์„œ ์„ ํƒํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์€ โ€œpngโ€์ž…๋‹ˆ๋‹ค.
  • path
    • character. ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋กœ type์˜ ๊ฐ’์ด โ€œfileโ€์ผ ๊ฒฝ์šฐ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • fname
    • character. ๊ฒฝ๋กœ์™€ ํ™•์žฅ์ž๋ฅผ ์ œ์™ธํ•œ ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ์ด๋ฆ„์œผ๋กœ, type์˜ ๊ฐ’์ด โ€œfileโ€์ผ ๊ฒฝ์šฐ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • openai_api_key
    • character. OpenAI API key์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ regist_openai_key(), sett_openai_key()๋กœ API key๋ฅผ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ์ด ์ธ์ˆ˜๊ฐ’์„ ์ง€์ •ํ•  ํ•„์š”์—†์Šต๋‹ˆ๋‹ค.

bitGPT ํŒจํ‚ค์ง€์—๋Š” โ€œcloud.pngโ€ ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ์ •์‚ฌ๊ฐํ˜• ๊ทœ๊ฒฉ์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์› ์†Œ์Šค ์ด๋ฏธ์ง€

์› ์†Œ์Šค ์ด๋ฏธ์ง€

๊ทธ๋ฆฌ๊ณ  mask๋ฅผ ์œ„ํ•œ ํŒŒ์ผ๋กœ โ€œcloud_mask.pngโ€ ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ ์—ญ์‹œ ์ •์‚ฌ๊ฐํ˜• ๊ทœ๊ฒฉ์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋Š” โ€œcloud.pngโ€ ํŒŒ์ผ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์Šคํฌ ์ด๋ฏธ์ง€

๋งˆ์Šคํฌ ์ด๋ฏธ์ง€

โ€œcloud.pngโ€ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# ํŽธ์ง‘ํ•  ์ด๋ฏธ์ง€
image <- system.file("images", "cloud.png", package = "bitGPT")

# Mask ์ด๋ฏธ์ง€
mask <- system.file("images", "cloud_mask.png", package = "bitGPT")

# ์ด๋ฏธ์ง€๋ฅผ ๋ฐ˜ํ™˜
draw_img_edit(image, mask, prompt = "ํ•˜๋Š˜์„ ๋‚ ์•„๋‹ค๋‹ˆ๋Š” UFO", type = "image")

ํŽธ์ง‘๋œ ์ด๋ฏธ์ง€

ํŽธ์ง‘๋œ ์ด๋ฏธ์ง€

Variate image with chatGPT

chatGPT๋ฅผ ์ด์šฉํ•ด์„œ, ์ด๋ฏธ์ง€๋ฅผ ๋ณ€ํ˜•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ๋‹ค์Œ์˜ draw_img_variation()๋กœ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์œ ์‚ฌํ•˜๊ฒŒ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€ํ˜•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋Š” draw_img()์™€ ๊ฑฐ์˜ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. image ์ธ์ˆ˜์— ๋ณ€ํ˜•ํ•˜๊ณ ์ž ํ•  ์›๋ž˜์˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

draw_img_variation(image, n = 1L, size = c("1024x1024", "256x256", "512x512"),
    type = c("url", "image", "file"), format = c("png", "jpeg", "gif"),
    path = "./", fname = "aivariation", openai_api_key = Sys.getenv("OPENAI_API_KEY"))

์•ž์—์„œ ์†Œ๊ฐœํ•œ โ€œcloud.pngโ€ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋ณ€ํ˜•ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# ๋ณ€ํ˜•ํ•  ์ด๋ฏธ์ง€
image <- system.file("images", "cloud.png", package = "bitGPT")

draw_img_variation(image, type = "image")

๋ณ€ํ˜•๋œ ์ด๋ฏธ์ง€

๋ณ€ํ˜•๋œ ์ด๋ฏธ์ง€

Speech to text

Speech to Text with chatGPT

chatGPT๋ฅผ ์ด์šฉํ•ด์„œ, ์Œ์„ฑ ์˜ค๋””์˜ค ํŒŒ์ผ๋กœ STT(Speech to Text )๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ transcript_audio()๋กœ STT๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

transcript_audio(file, language = "ko", openai_api_key = Sys.getenv("OPENAI_API_KEY"))
  • file
    • character. ์Œ์„ฑ ์˜ค๋””์˜ค ํŒŒ์ผ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋””์˜ค ํŒŒ์ผ์˜ ํฌ๋งท์€ mp3, mp4, mpeg, mpga, m4a, wav, webm์ค‘ ํ•˜๋‚˜๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • language
    • character. ์Œ์„ฑ ์˜ค๋””์˜ค ํŒŒ์ผ์˜ ์–ธ์–ด๋กœ ISO-639-1 ํฌ๋งท์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์€ ํ•œ๊ตญ์–ด์ธ โ€œkoโ€์ž…๋‹ˆ๋‹ค. ๋‹ค๊ตญ์–ด ์Œ์„ฑํŒŒ์ผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • openai_api_key
    • character. OpenAI API key์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ regist_openai_key(), sett_openai_key()๋กœ API key๋ฅผ ์„ค์ •ํ–ˆ๋‹ค๋ฉด ์ด ์ธ์ˆ˜๊ฐ’์„ ์ง€์ •ํ•  ํ•„์š”์—†์Šต๋‹ˆ๋‹ค.

bitGPT ํŒจํ‚ค์ง€์—๋Š” โ€œkorea_r_user.m4aโ€ ํŒŒ์ผ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ํ•œ๊ตญR์‚ฌ์šฉ์žํšŒ ์†Œ๊ฐœํ•˜๋Š” ์งง์€ ์Œ์„ฑํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š๋Š” ์Šคํ”ผ์น˜์˜ ํ…์ŠคํŠธ ์ „ํ™˜์˜ ์„ฑ๋Šฅ์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์Šคํ”ผ์น˜์˜ ์„ฑ๋Šฅ์€ ๋†’์ง€ ์•Š๊ฒŒ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป ๋ฐœ์Œํ•˜์—ฌ ๋‹ค์‹œ ๋ฐœ์Œํ•˜๊ฑฐ๋‚˜, ๋ฌธ์žฅ๋‚ด์—์„œ ๋„์–ด ์ฝ๋Š” ๋ถ€๋ถ„์ด ๋ถ€์ž์—ฐ์Šค๋Ÿฌ์šด ๊ณณ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

# ์Œ์„ฑ ์˜ค๋””์˜ค ํŒŒ์ผ
speech <- system.file("audios", "korea_r_user.m4a", package = "bitGPT")

# ์Œ์„ฑ ์˜ค๋””์˜ค๋ฅผ ํ…์ŠคํŠธ๋กœ ์ „ํ™˜
transcript_audio(speech)
text
"์‚ฌ๋‹จ๋ฒ•์ธ ํ•œ๊ตญR ์‚ฌ์šฉ์ž์˜ˆ๋Š” ๋””์ง€ํ„ธ ๋ถ„ํ‰ ๋“ฑ ํ•ด์†Œ์™€ ํ†ต๊ณ„ ๋Œ€์ค‘ํ™”๋ฅผ ์œ„ํ•ด 2020๋…„ ์„ค๋ฆฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 
์˜คํ”ˆ ํ†ต๊ณ„ ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ์„ ๋น„๋กฏํ•˜์—ฌ ์ตœ๊ทผ์— ํ†ต๊ณ„ ๋ฐ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ๊ด€๋ จ ์˜คํ”ˆ ์ „์ž์ฑ…๋„ ํ•จ๊ป˜ ์ œ์ž‘ํ•˜์—ฌ ๋ฐœ๊ฐ„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 
ํ†ต๊ณ„ ํŒจํ‚ค์ง€์™€ ํ†ต๊ณ„ ๋ฐ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ์ฑ…์€ ์‚ฌ์šฉ์ž์˜ ํšŒ์›๋“ค์˜ ์ž๋ฐœ์ ์ธ ์ฐธ์—ฌ๋กœ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๋ณด์ˆ˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 
๋ฐ์ดํ„ฐ ๊ณผํ•™ ๋ถ„์•ผ์˜ ์ธ๊ณต์ง€๋Šฅ ai ์ฒด์งˆ ๋น„ํŠธ์™€ ๊ณต์กด์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค."

์Šคํ”ผ์น˜์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ์›๋ฌธ ๋ฌธ์žฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‚ฌ๋‹จ๋ฒ•์ธ ํ•œ๊ตญ R ์‚ฌ์šฉ์žํšŒ๋Š” ๋””์ง€ํ„ธ ๋ถˆํ‰๋“ฑ ํ•ด์†Œ์™€ ํ†ต๊ณ„ ๋Œ€์ค‘ํ™”๋ฅผ ์œ„ํ•ด 2022๋…„ ์„ค๋ฆฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 
์˜คํ”ˆ ํ†ต๊ณ„ ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ์„ ๋น„๋กฏํ•˜์—ฌ ์ตœ๊ทผ์— ํ†ต๊ณ„ ๋ฐ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ๊ด€๋ จ ์˜คํ”ˆ ์ „์ž์ฑ…๋„ ํ•จ๊ป˜ ์ œ์ž‘ํ•˜์—ฌ ๋ฐœ๊ฐ„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 
ํ†ต๊ณ„ ํŒจํ‚ค์ง€์™€ ํ†ต๊ณ„ ๋ฐ ๋ฐ์ดํ„ฐ ๊ณผํ•™ ์ „์ž์ฑ…์€ ์‚ฌ์šฉ์žํšŒ ํšŒ์›๋“ค์˜ ์ž๋ฐœ์ ์ธ ์ฐธ์—ฌ๋กœ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 
๋ฐ์ดํ„ฐ ๊ณผํ•™ ๋ถ„์•ผ ์ธ๊ณต์ง€๋Šฅ AI chatGPT์™€ ๊ณต์กด์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. 

About

Tools to use chatGPT for Koreans

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages