۲۷ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۸ ابزار ChatGPT برای برنامه نویسی R

فناوری هوش مصنوعی مولد که ChatGPT را تقویت می کند - GPT-3.5 و GPT-4 LLM های OpenAI - با مجموعه ای رو به رشد از بسته ها و برنامه ها برای انتخاب در دسترس کاربران R است.

فناوری هوش مصنوعی مولد که ChatGPT را تقویت می کند – GPT-3.5 و GPT-4 LLM های OpenAI – با مجموعه ای رو به رشد از بسته ها و برنامه ها برای انتخاب در دسترس کاربران R است.

ChatGPT می‌تواند به سؤالات مربوط به طیف گسترده‌ای از موضوعات فناوری، از جمله نحوه نوشتن کد R پاسخ دهد. این بدان معناست که قدرت ChatGPT در دسترس همه برنامه نویسان R است، حتی کسانی که اطلاعات کمی درباره مدل های زبان بزرگ.

یک اکوسیستم در اطراف ChatGPT و R در حال شکل‌گیری است که ترکیب فناوری هوش مصنوعی را در گردش کار زبان R آسان می‌کند. اما قبل از شروع استفاده از LLM و ابزارهای مرتبط برای پروژه های R خود، چند نکته مهم وجود دارد که باید در نظر داشته باشید:

  1. هر چیزی که با استفاده از این ابزارها بخواهید به سرورهای OpenAI ارسال می شود. از ابزارهای ChatGPT برای پردازش اطلاعات حساس استفاده نکنید.
  2. ChatGPT ممکن است با اطمینان پاسخ های نادرست را برگرداند. حتی پاسخ‌های نادرست می‌تواند نقطه شروع باشد و در وقت شما صرفه‌جویی کند، اما تصور نکنید که کد دقیقاً همان چیزی است که شما انتظار دارید. کایل واکر (دانشیار دانشگاه مسیحی تگزاس و نویسنده بسته محبوب tidycensus R) در توییتی نوشت که ChatGPT می تواند “اگر موضوعی را به خوبی درک کنید، کار شما را بالا ببرد” یا می تواند شما را “در معرض خطر قرار دهد” نمی‌دانی چه می‌کنی.» تفاوت در دانستن زمانی است که خروجی هوش مصنوعی درست نیست. همیشه پاسخ‌های ChatGPT را بررسی کنید.
  3. ChatGPT همچنین می‌تواند پاسخ‌های متفاوتی به یک پرس و جو ایجاد کند—و برخی از پاسخ‌ها ممکن است دقیق باشند در حالی که برخی دیگر دقیق نیستند. به عنوان مثال، زمانی که من چندین بار برای نمودار نواری ggplot2 با نوارهای آبی درخواست کردم، کد گاهی اوقات نموداری با نوارهای آبی ایجاد می کند، اما برخی دیگر را نه، گرچه هر بار همان درخواست را ارسال می کردم< /em>. اگر به یک گردش کار قابل تکرار نیاز دارید، این کمتر از حد ایده آل است.
  4. LLM ها دارای تاریخ قطع داده های آموزشی هستند، بنابراین اگر بسته ای که استفاده می کنید اخیراً به روز رسانی شده باشد، ممکن است ابزار انتخابی شما از آن اطلاعی نداشته باشد.
  5. بیشتر منابع این مقاله به شما نیاز دارند که کلید OpenAI API خودتان، و استفاده از API رایگان نیست. در حالی که قیمت در حال حاضر پایین است، به خصوص برای GPT-3.5، هیچ تضمینی وجود ندارد که به همین شکل باقی بماند.
  6. بعید است که

  7. درخواست کمک از ChatGPT برای کدنویسی شما را در دام اخلاق تعصبات نژادی و جنسیتی هوش مصنوعی گرفتار کند. با این حال، بحث های داغ در مورد حکمت تجهیز OpenAI با داده های بیشتر وجود دارد. اخلاق نحوه خراش دادن و تغییر کاربری داده های آموزشی؛ و اینکه آیا بهتر است از LLM های منبع باز (مانند میسترال) به جای OpenAI استفاده کنید. این دوراهی ها برای هر فرد و سازمانی است که برای خود بحث کند. با این حال، از زمان نگارش این مقاله، به سادگی ابزارهای LLM مخصوص R وجود ندارند که با ابزارهایی که در اطراف ChatGPT ساخته شده اند قابل مقایسه باشند.

اکنون، اجازه دهید به برخی از قابل توجه ترین منابع متمرکز بر R برای استفاده از GPT-3.5 و GPT-4 LLM های OpenAI نگاه کنیم.

۸ بسته ChatGPT برای R

  • بسته هوا
  • بسته TheOpenAIR
  • RTutor
  • CodeLingo
  • askgpt
  • gptstudio
  • gpttools
  • gptchatteR

بسته هوا

بسته air R با هدف ایجاد عملکردی شبیه به گپ GitHub Copilot برای کاربران R با دو عملکرد: howto() و whatis() می توانید در مورد نحوه نوشتن کد R برای یک کار خاص با استفاده از howto()، مانند howto ("چگونه می توانم متن محور x را بر روی نمودار ggplot2 بچرخانم؟") سوال بپرسید. /code>. پاسخ ها در کنسول R شما به جای اسکریپت R نشان داده می شوند، همانطور که در GitHub Copilot اتفاق می افتد. این ممکن است کمی راحت تر باشد. از سوی دیگر، هنگام استفاده از GPT-4 به عنوان مدل اصلی، پاسخ‌ها را بسیار خوب دیدم.

به عنوان مثال، هنگام درخواست

howto("Create a bar chart in R where the bars are colored steel blue and the bars are ordered by descending Y value")

air با

پاسخ داد


# Generate example data
set.seed(42)
data <- data.frame(
  Category = factor(paste("Category", 1:10)),
  Value = sample(1:100, 10)
)

# Order data by Value in descending order
data$Category <- factor(data$Category, levels = data$Category[order(data$Value, decreasing = TRUE)])

# Load ggplot2 package
library(ggplot2)

# Create bar chart
ggplot(data, aes(x = Category, y = Value, fill = "steelblue")) +
  geom_bar(stat = "identity") +
  scale_fill_identity() +
  theme_minimal()

GitHub Copilot به من داده


# Create a bar chart in R where the bars are colored still blue and the bars are ordered by descending Y value
ggplot(data = diamonds, aes(x = cut, fill = cut)) + 
  geom_bar() + 
  scale_fill_manual(values = "steelblue") + 
  coord_flip() + 
  theme_minimal() + 
  theme(legend.position = "none") + 
  labs(x = "Cut", y = "Count", title = "Bar Chart of Diamond Cut")

کد GitHub Copilot کار نکرد (scale_fill_manual() به دنبال یک رنگ برای هر دسته است). GitHub Copilot از یک مدل OpenAI Codex برای پاسخ‌های خود استفاده می‌کند. Copilot همچنین مانند ChatGPT با مدل GPT-4 استفاده نامحدود را با هزینه ماهانه ارائه می دهد. اما استفاده از OpenAI API در برنامه‌ای مانند این، هزینه‌ای را برای هر درخواست ایجاد می‌کند. اجرای سه یا چهار جستجو برای من کمتر از یک پنی هزینه دارد، اما کاربران سنگین باید هزینه‌های احتمالی را در نظر داشته باشند.

بسته air دارای دستورالعمل‌های راه‌اندازی عالی و زیبا در صفحه GitHub README، از جمله راهی امن برای ذخیره کلید OpenAI شما. دستور air::set_key() یک پنجره بازشو برای ذخیره ایمن کلید در حلقه کلید سیستم شما راه اندازی می کند. همچنین اگر نمی‌خواهید از پیش‌فرض gpt-4 استفاده کنید، می‌توانید مدل OpenAI را که می‌خواهید با set_model() استفاده کنید، تنظیم کنید.

توجه داشته باشید که این بسته فقط برای سوالات مرتبط با R است و به سوالات مربوط به سایر زبان های برنامه نویسی پاسخ نمی دهد. لازم نیست در سوالات خود مشخص کنید که کد R را می خواهید. من این کار را در مثالم انجام دادم تا سؤال را با آنچه که از GitHub Copilot پرسیدم قابل مقایسه باشد.

بسته air توسط پروفسور Soumya Ray در دانشکده مدیریت فناوری، دانشگاه ملی Tsing Hua در تایوان ایجاد شده است. این در CRAN موجود است.

بسته TheOpenAIR

بسته TheOpenAIR یک انتخاب عالی برای گنجاندن فناوری ChatGPT در برنامه‌های کاربردی R خود، مانند برنامه براق است. که ورودی کاربر را به OpenAI API ارسال می کند. می توانید کلید خود را با تابع openai_api_key("YOUR-KEY") ثبت کنید.

عملکرد chat() آن به شما این امکان را می دهد که با

نتایج را در کنسول خود چاپ کنید.

chat(“My request”), save results as text with my_results <- chat(“My request”, output = “message”), or return a complete API response object with my_results_object <- chat(“My request”, output = “response object”)

شیء پاسخ لیستی است که شامل اطلاعاتی مانند نشانه های استفاده شده نیز می شود.

توابع مفید دیگر عبارتند از count_tokens() برای شمارش تعداد نشانه‌های ChatGPT که یک رشته کاراکتر هنگام ارسال به API هزینه خواهد داشت، extract_r_code() برای دریافت کد R از آن یک پاسخ ChatGPT که شامل توضیح متنی با کد، و get_chatlog_id() برای دریافت شناسه ChatGPT فعلی است (مفید است اگر می خواهید یک برنامه پیچیده را به توابع کوچکتر تقسیم کنید).

این بسته دارای برخی عملکردهای کدگذاری عمومی نیز هست. به عنوان مثال، write_code("filename") یک درخواست برای ورودی شما و اینکه به چه زبانی می خواهید کد نوشته شود را ایجاد می کند. نحو refactor() مخصوص R است و آنچه را که انتظار دارید انجام می دهد:

بسته TheOpenAIR به شما امکان می دهد زبان کد خود را انتخاب کنید.

شکل ۱. زبان کد تولید شده خود را انتخاب کنید.

همچنین توابعی برای تبدیل بین Python و R یا Java و R وجود دارد، اگرچه ممکن است با یک پیام هشدار مبنی بر اینکه تبدیل از R به Python ممکن است منجر شود در کد پایتون نامعتبر.

help(package = "TheOpenAIR") را در کنسول R خود اجرا کنید تا بسیاری از عملکردهای دیگر آن را مشاهده کنید.

بسته TheOpenAIR توسط استادیار اولریش ماتر و دانشجوی دکترا جاناتان شاسوت در دانشگاه سنت گالن در سوئیس ایجاد شده است. در CRAN در دسترس است.

RTutor

این برنامه روشی زیبا و آسان برای نمونه‌برداری از ChatGPT و R است. مجموعه داده‌ها را آپلود کنید، سؤال بپرسید و مشاهده کنید که کد R و نتایج شما از جمله گرافیک تولید می‌کند. اگرچه این برنامه RTutor نام دارد، اما می‌تواند کد پایتون را نیز تولید کند.

RTutor در وب موجود است. در حال حاضر این تنها برنامه یا بسته لیست شده است که برای استفاده نیازی به کلید ChatGPT API ندارد، اما از شما خواسته می‌شود کلید خود را برای استفاده سنگین تهیه کنید تا صورتحساب حساب سازندگان را دریافت نکنید.

نمودار میله‌ای با درخواست برای میله‌ها به رنگ آبی فولادی در صورت مقدار > ۰ و قرمز اگر <0، مرتب شده است، ایجاد می‌شود.

شکل ۲. هنگام درخواست از RTutor برای ایجاد نمودار میله‌ای نتیجه می‌گیرد.

صفحه درباره برنامه توضیح می‌دهد که هدف اصلی RTutor "کمک به افرادی با تجربه R برای یادگیری R یا بهره‌وری بیشتر است... از RTutor می‌توان برای سرعت بخشیدن به فرآیند کدگذاری با استفاده از R استفاده کرد. یک پیش‌نویس به شما ارائه می‌دهد. کد را برای آزمایش و اصلاح کنید. مراقب اشکالات و خطاها باشید."

کد کد RTutor منبع باز است و در GitHub موجود است< /a>، بنابراین می توانید نسخه محلی خود را نصب کنید. با این حال، مجوز اجازه استفاده از برنامه را فقط برای استفاده غیرانتفاعی یا غیرتجاری یا برای آزمایش تجاری. RTutor یک پروژه شخصی دکتر استیون جی، استاد بیوانفورماتیک در دانشگاه ایالتی داکوتای جنوبی است.

CodeLingo

این برنامه چند زبانه کد را از یک زبان برنامه نویسی به زبان دیگر "ترجمه" می کند. زبان‌های موجود عبارتند از Java، Python، JavaScript، C، C++، PHP و غیره، از جمله R. این یک برنامه کاربردی وب است و در https://analytica.shinyapps.io/codelingo . برای استفاده از آن باید کلید OpenAI API خود را وارد کنید (ممکن است بخواهید بعد از آزمایش کلید را دوباره تولید کنید).

کد ggplot2 با استفاده از پانداها و کتابخانه‌های matplotlib به پایتون ترجمه می‌شود.

شکل ۳. ChatGPT در برنامه CodeLingo تلاش می کند تا کد گراف ggplot2 را به پایتون ترجمه کند.

درخواستی برای ترجمه کد برای یک نمودار ggplot2 R به خروجی ایجاد شده جاوا اسکریپت با استفاده از کتابخانه جاوا اسکریپت D3 که یادگیری آن سخت است، برخلاف چیزی که یک تازه کار جاوا اسکریپت به احتمال زیاد چنین چیزی را می خواهد. به عنوان نقشه قابل مشاهده یا Vega-Lite.

درخواست ترجمه به پایتون، که در شکل ۳ نشان داده شده است، ساده‌تر بود و از کتابخانه‌هایی استفاده می‌کرد که انتظار داشتم. با این حال، ChatGPT متوجه نشد که «Set1» یک پالت رنگی ColorBrewer است و نمی‌تواند مستقیماً در پایتون استفاده شود. همانطور که در مورد بسیاری از استفاده های ChatGPT وجود دارد، ترجمه کد بین زبان های برنامه نویسی ممکن است نقطه شروع مفیدی به شما بدهد، اما باید بدانید که چگونه اشتباهات را برطرف کنید.

این برنامه توسط Analytica Data Science Solutions ایجاد شده است.

askgpt

این بسته در https://github موجود است .com/JBGruber/askgpt، می‌تواند نقطه شروع خوبی برای کاربرانی باشد که برای اولین بار می‌خواهند ChatGPT را در کنسول خود داشته باشند، تا حدی به این دلیل که دستورالعمل‌هایی را هنگام راه‌اندازی اولیه ارائه می‌دهد. بسته را با library(askgpt) بارگیری کنید و با:

پاسخ می‌دهد


Hi, this is askgpt ☺.
• To start error logging, run `log_init()` now.
• To see what you can do use `?askgpt()`.
• Or just run `askgpt()` with any question you want!

از تابع login() بدون ذخیره کردن کلید استفاده کنید و پیامی در مورد نحوه دریافت یک کلید API خواهید دید:


ℹ It looks like you have not provided an API key yet.
۱. Go to <https://platform.openai.com/account/api-keys>
۲. (Log into your account if you haven't done so yet)
۳. On the site, click the button + Create new secret key to create an API key
۴. Copy this key into R/RStudio

از شما خواسته می شود که کلید خود را در دسته کلید خود ذخیره کنید و سپس برای جلسات بعدی آماده هستید. اگر کلید شما قبلاً ذخیره شده است، login() هیچ پیامی برمی‌گرداند.

پیش‌فرض

askgpt این است که نتایج جستجوی شما را به عنوان یک شی ذخیره می‌کند تا بتوانید آنها را در متغیری مانند این ذخیره کنید:


barchart_instructions <- askgpt("How do I make a bar chart with custom colors with ggplot2?")

یک درخواست ارسال کنید و ابتدا خواهید دید:


GPT is thinking ⠴ 

به این ترتیب، می‌دانید که درخواست شما ارسال شده است و باید پاسخی دریافت کنید—بهتر از این که فکر کنید پس از زدن ارسال چه اتفاقی می‌افتد.

به همراه تابع کلی askgpt() بسته، چند توابع خاص کدگذاری مانند annotate_code()، explain_code()، و test_function(). این شامل برش و چسباندن پاسخ ها به کد منبع شما می شود.

برای کسانی که با OpenAI API آشنا هستند، تابع chat_api() بسته به شما امکان می‌دهد پارامترهای API مانند مدلی که می‌خواهید استفاده کنید، حداکثر نشانه‌هایی را که می‌خواهید در هر درخواست خرج کنید، تنظیم کنید. و دمای پاسخ دلخواه شما (که به زودی توضیح خواهم داد).

عملکرد chat_api() فهرستی را با بخش متنی پاسخ در YourVariableName$choices[[1]]$message$content برمی‌گرداند. اطلاعات مفید دیگری مانند تعداد نشانه های استفاده شده نیز در لیست ذخیره می شود.

بسته askgpt توسط Johannes Gruber، محقق فوق دکتری در Vrije Universiteit Amsterdam ایجاد شد. می توان آن را از CRAN نصب کرد.