۶ اردیبهشت ۱۴۰۴

Techboy

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

ابزارهای Genai برای R: ابزارهای جدید برای آسانتر برنامه نویسی R

از افزونه های IDE گرفته تا Chatbots خارجی و اجرای LLMS به صورت محلی ، این ابزارهای جدید و در حال ظهور انقلاب AI مولد را به R. منتقل می کنند.

از افزونه های IDE گرفته تا Chatbots خارجی و اجرای LLMS به صورت محلی ، این ابزارهای جدید و در حال ظهور انقلاب AI مولد را به R. منتقل می کنند.

مقاله قبلی من بر روی برخی از بهترین ابزارها برای گنجاندن LLM ها در اسکریپت های R شما و گردش کار

ارائه خواهیم داد.

کمک به برنامه نویسی برای توسعه دهندگان R

کمک به کد نوشتن یکی از محبوب ترین کاربردهای مدلهای بزرگ زبان . برخی از توسعه دهندگان ترجیح می دهند از این ابزارها در محیط های توسعه یکپارچه خود (IDE) استفاده کنند. دیگران برای کپی کردن و چسباندن در ابزارهای خارجی راضی هستند. برنامه نویسان R گزینه هایی برای هر دو دارند.

gander

این یک افزودنی IDE برای RSTUDIO و POSITRON است که می تواند از کد موجود در اسکریپت های اطراف آن و همچنین متغیرهای موجود در محیط کار شما آگاه باشد. اگر کد را هنگام استناد به گاندر انتخاب کرده اید ، از شما سؤال می شود که آیا می خواهید نتیجه مدل جایگزین آن کد شود یا قبل یا بعد از آن اضافه شود.

رابط گاندر می پرسد که آیا می خواهید کد انتخاب شده را جایگزین کنید یا پیشنهادات آن را قبل یا بعد از آن قرار دهید.

رابط گاندر می پرسد که آیا می خواهید کد انتخاب شده را جایگزین کنید یا پیشنهادات آن را قبل یا بعد از آن قرار دهید.

رابط گاندر می پرسد که آیا می خواهید کد انتخاب شده را جایگزین کنید یا پیشنهادات آن را قبل یا بعد از انتخاب خود قرار دهید.

می توانید هر مدلی را که توسط المر برای استفاده در گاندر پشتیبانی می شود ، انتخاب کنید. از اوایل سال ۲۰۲۵ ، Simon Couch نویسنده بسته و توسعه دهنده POSIT ، Claude Sonnet Anthropic را برای قدرت R خود توصیه کرد. شما می توانید آن را به عنوان پیش فرض خود با گزینه های (.gander_chat = ellmer :: chat_claude ())

تنظیم کنید.

مثل همیشه هنگام استفاده از ارائه دهنده LLM تجاری ، باید یک کلید API را در محیط کار خود در دسترس قرار دهید. مانند بسیاری از بسته های فعلی R برای همکاری با LLMS ، می توانید از یک مدل محلی با استفاده از Ollama استفاده کنید. توجه داشته باشید که شما همچنین می توانید از Ellmer به عنوان یک Chatbot استفاده کنید تا در مورد R سؤال کنید و LLMS را به صورت محلی اجرا کنید. (مقاله قبلی من را برای اطلاعات بیشتر در مورد المر و اولما .) مشاهده کنید.

گاندر برای اسکریپت های R در هر دو Rstudio و Positron در دسترس است. می توانید آن را از Cran بارگیری کنید یا نسخه توسعه را با pak :: pak ("simonpcouch/gander") نصب کنید.

این دستور همچنین یک افزودنی را در RSTUDIO نصب می کند ، جایی که می توانید یک میانبر صفحه کلید را برای فراخوانی آن انتخاب کنید.

برای پوزیترون ، دستورالعمل هایی در مورد صفحه اصلی وب سایت بسته بندی برای باز کردن پالت دستور positron و اضافه کردن کد به keybindings.json پرونده

برای دیدن آنچه که داده های داده شده به مدل ارسال شده است-اطلاعات پس زمینه از جلسه اسکریپت و جلسه کار شما ، و همچنین سوالی که تایپ کرده اید-می توانید بعد از اجرای افزودنی gander_peek () را اجرا کنید.

برخی از تنظیمات Gander را می توان با گزینه های R () تغییر داد. دستورالعمل های سبک پیش فرض ابزار عبارتند از:


Use tidyverse style and, when relevant, tidyverse packages. For example, when asked to plot something, use ggplot2, or when asked to transform data, using dplyr and/or tidyr unless explicitly instructed otherwise.

شما می توانید آن پیش فرض را با کد مانند گزینه های (.gander_style = "از پایه r استفاده کنید.") با اجرای ؟ gander_options در کنسول R خود را مشاهده کنید.

.

شما می توانید در مورد گاندر در وب سایت بسته بندی گاندر و وبلاگ را مطرح کنید .

chatgpt

"رابط کاربری از چتگپ از R" ، chatgpt حدود ۱۰ افزودنی rstudio برای مواردی از قبیل افتتاح جلسه چت تعاملی ، اظهار نظر کد انتخاب شده ، ایجاد آزمون های واحد ، مستندات کد و کد بهینه است. اگر هیچ کدی برای کارهای خاص برنامه نویسی انتخاب نکنید ، کل پرونده فعال را ارزیابی می کند.

این می تواند یک انتخاب خوب برای افرادی باشد که از مدل های زبان بزرگ غالباً یا نمی خواهند ارسال های خود را برای کارهای منظم بنویسند. و اگر نمی خواهید برای هر کار با افزودنیهای مختلف تماس بگیرید ، می توانید از توابع آن در ترمینال استفاده کنید ، مانند comment_code () و کامل_code () .

شما می توانید تنظیمات مدل را با متغیرهای محیط R سفارشی کنید ، مانند Openai_model (GPT-4O-mini پیش فرض است) ، OpenAi_Temperature (که به طور پیش فرض به ۱ انتخاب من ۰ خواهد بود) ، و OpenAi_Max_Tokens (Destaults to 256).

توجه داشته باشید که بسته chatgpt فقط از مدل های OpenAI پشتیبانی می کند.

gptstudio

gptstudio ، در کران ، یک افزودنی دیگر RSTUDIO است که دسترسی به LLMS را ارائه می دهد. این ویژگی ها گزینه های تعریف شده برای املا و دستور زبان ، چت و اظهار نظر کد را دارد. من رابط را کمی مخرب تر از برخی گزینه های دیگر پیدا کردم ، اما احتمالاً نظرات در این مورد متفاوت خواهد بود.

بسته gptstudio از بغل کردن ، اولاما ، انسان شناسی ، سرگیجه ، گوگل ، لاجورد و به همراه OpenAi پشتیبانی می کند.

pkgprompt

pkgprompt می تواند مستندات بسته R را بچرخاند – همه از آن یا فقط موضوعات خاص – یک رشته کاراکتر واحد با استفاده از pkg_prompt () . این امر ارسال آن مستندات به LLM را به عنوان بخشی از سریع ، آسان می کند. به عنوان مثال ، دستور


library(pkgprompt)
pkg_docs <- pkg_prompt(pkg = "dplyr", topics = c("across", "coalesce"))

مستندات را برای dplyr در سراسر و coincsce به عنوان یک رشته شخصیت واحد برمی گرداند. سپس می توانید رشته را به هر فرایند LLM ، چه در R یا با کپی کردن و چسباندن به یک ابزار خارجی ، اضافه کنید. این یکی دیگر از بسته های R توسط Simon Couch است. نصب با: pak :: pak ("simonpcouch/pkgprompt") .

به خارج از ایده خود کمک کنید

اگر مایل هستید برای پرس و جو از LLM به خارج از محیط برنامه نویسی خود بروید ، علاوه بر یک چت بابات با هدف کلی مانند کلود ، برخی از گزینه های خاص R وجود دارد که می داند برخی از r.

دستیار براق

اگر برنامه های وب براق ایجاد می کنید ، posit دستیار براق یک منبع بزرگ است. این ابزار مبتنی بر وب رایگان از LLM برای پاسخ به سؤالات مربوط به ساختن برنامه های براق برای هر دو براق و براق برای پایتون استفاده می کند. توجه داشته باشید که تیم براق می گوید که آنها ممکن است برای بهبود ابزار به سؤالات شما نگاه کنند ، بنابراین از نسخه وب برای کارهای حساس استفاده نکنید. شما همچنین می توانید کد دستیار براق را از github بارگیری کنید و ترفند خود را برای اجرای خود انجام دهید.

R و R استودیو معلم + کد nerd

r و r استودیوی مدرس یک GPT سفارشی است که اطلاعات R خاصی را به chatgpt اساسی اضافه می کند. این توسط خوزه A فرناندز کالوو ساخته شده است و برای پاسخ به سؤالات خاص در مورد R و RSTUDIO طراحی شده است.

کد nerd توسط کریستین Czymara یکی دیگر از GPT های سفارشی است که به سؤالات r پاسخ می دهد.

r tutor + chatilize

یکی از اولین ورودی های موجود در Genai برای فضای R ، r Tutor هنوز هم آنلاین وجود دارد. یک مجموعه داده را بارگذاری کنید ، یک سؤال بپرسید و به عنوان کد R و نتایج شما از جمله گرافیک ایجاد کنید.

r معلم به شما امکان می دهد در مورد یک مجموعه داده سؤال کنید و در پاسخ کد R ایجاد کنید.

r معلم به شما امکان می دهد در مورد یک مجموعه داده سؤال کنید و در پاسخ کد R ایجاد کنید.

R Tutor به شما امکان می دهد در مورد یک مجموعه داده سؤال کنید و در پاسخ کد R ایجاد کنید.

کد Rtutor موجود در github است ، بنابراین می توانید نسخه محلی خود را نصب کنید. با این حال ، صدور مجوز فقط استفاده از برنامه را برای استفاده غیرانتفاعی یا غیر تجاری یا برای آزمایش تجاری امکان پذیر می کند. Rtutor یک پروژه شخصی دکتر استیون ژئو ، استاد بیوانفورماتیک در دانشگاه ایالتی داکوتای جنوبی بود ، اما اکنون توسط شرکتی که او تأسیس کرده است ، ساخته و نگهداری می شود.

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

تولید کند.

تعامل با LLM های نصب شده به صورت محلی

LLM های بزرگ در ابر ممکن است هنوز هم از مدلهایی که می توانید به صورت محلی بارگیری و اجرا کنید ، اما مدل های بازتر باز در تمام مدت بهتر می شوند. و ، آنها ممکن است در حال حاضر به اندازه کافی برای برخی از کارهای خاص خوب باشند – تنها راه دانستن این است که امتحان کنید. مدل های محلی همچنین از مزیت عظیمی از حریم خصوصی برخوردار هستند ، بنابراین شما هرگز مجبور نیستید داده های خود را برای تجزیه و تحلیل به سرور شخص دیگری ارسال کنید. به علاوه ، لازم نیست نگران مدلی باشید که دوست دارید از آن جدا شود. آنها همچنین فراتر از هر هزینه ای هستند که برای اجرای رایانه رومیزی شما هزینه دارند. بسته المر با هدف کلی به شما امکان می دهد LLM های محلی را نیز اجرا کنید ، اما بسته های R نیز به طور خاص برای AI تولید کننده محلی طراحی شده اند.

رولاما و اولمار

بسته های Rollama و Ollamar به شما امکان می دهد از R برای اجرای مدل های محلی از طریق پروژه محبوب Ollama استفاده کنید ، اما نحو آنها متفاوت است. اگر می خواهید یک بسته خاص Ollama داشته باشید ، من پیشنهاد می کنم هر دو را امتحان کنید تا ببینید کدام یک را ترجیح می دهید.

علاوه بر یک (یا هر دو) از این بسته های R ، به خود برنامه Ollama نیاز دارید. Ollama را به عنوان یک بسته نرم افزاری معمولی بارگیری و نصب کنید – این یک کتابخانه R نیست – برای ویندوز ، مک یا لینوکس. اگر Ollama قبلاً در حال اجرا نیست ، می توانید Ollama Serve را از یک دستور یا ترمینال فرمان (نه کنسول R) اجرا کنید تا سرور Ollama را شروع کنید. (تنظیم Ollama برای اجرای پس زمینه هنگامی که سیستم شما در صورت استفاده از آن به طور مکرر ارزش انجام دادن دارد.)

پس از بارگذاری بسته Rollama r با کتابخانه (Rollama) ، می توانید با عملکرد ping_ollama () تست کنید تا کشف کنید که آیا سرور اولاما را می بیند.

اگر قبلاً LLM های محلی نصب شده با Ollama را ندارید ، می توانید این کار را در R با pull_model ("the_model_name) یا ollama the_model_name در یک ترمینال انجام دهید. شما می توانید <یک href =" href = "https://ollama.search" وب سایت.

برای بارگیری پارامتر ۳B LLAMA 3.2 مدل ، به عنوان مثال ، می توانید pull_model ("llama3.2: 3b") را اجرا کنید در r.

برای تنظیم یک مدل به عنوان پیش فرض خود برای جلسه ، از گزینه های Syntax استفاده کنید (Rollama_model = "the_model_name) . یک مثال این است: گزینه ها (Rollama_model =" Llama3.2: 3b ").

.

برای یک سوال واحد ، از عملکرد query () استفاده کنید:


query("How do you rotate text on the x-axis of a ggplot2 graph?")

اگر می خواهید چت کنید که سؤالات و پاسخ های قبلی در حافظه باقی بماند ، از گپ () استفاده کنید. آرگومان های اختیاری هر دو کارکرد شامل صفحه (که آیا پاسخ ها باید به صفحه چاپ شوند) و model_params (لیست نامگذاری شده پارامترهایی مانند دما). query () همچنین شامل یک آرگومان است که مقدار برگشتی آن می تواند یک موضوع پاسخ ، متن ، لیست ، داده ها ، ، httr2_response یا httr2_request باشد.

نمایش داده شد و چت ها همچنین می توانند شامل تصاویر بارگذاری شده با آرگومان تصاویر باشند.

بسته اولامار به طور مشابه شروع می شود ، با یک تابع test_connection () برای بررسی اینکه R می تواند به یک سرور در حال اجرا Ollama متصل شود ، و Pull ("The_Model_name") برای بارگیری مدل مانند pull ("gemma3: 4b") یا کشش ("gemma3: 12b> p> p> p>

عملکرد تولید () یک تکمیل از LLM ایجاد می کند و یک httr2_response را برمی گرداند ، که می تواند توسط عملکرد resp_process () پردازش شود.


library(ollamar)

resp <- generate("gemma2", "What is ggplot2?")
resp_text <- resp_process(resp)

یا ، می توانید پاسخ متن را مستقیماً با نحوی مانند resp <- تولید ("gemma2" ، "ggplot2؟" ، output = "text" ) درخواست کنید. گزینه ای برای پخش متن با stream = true وجود دارد:


resp <- generate("gemma2", "Tell me about the data.table R package", output = "text", stream = TRUE)

اوللار عملکرد دیگری دارد ، از جمله تولید تعبیه متن ، ابزارهای تعریف و فراخوانی و درخواست خروجی JSON فرمت شده. جزئیات را ببینید در github .

رولما توسط یوهانس B. گروبر ایجاد شده است. Ollamar توسط Hause Lin.

خود را رول کنید

اگر تمام آنچه شما می خواهید یک رابط اساسی چت بابات برای Ollama است ، یک گزینه آسان ترکیب المر ، براق و بسته Shinychat برای تهیه یک برنامه ساده براق است. پس از نصب این موارد ، با فرض اینکه شما Ollama را نیز نصب و اجرا کرده اید ، می توانید یک اسکریپت اساسی مانند این را اجرا کنید:


library(shiny)
library(shinychat)

ui <- bslib::page_fluid(
  chat_ui("chat")
)

server <- function(input, output, session) {
  chat <- ellmer::chat_ollama(system_prompt = "You are a helpful assistant", model = "phi4")
  
  observeEvent(input$chat_user_input, {
    stream <- chat$stream_async(input$chat_user_input)
    chat_append("chat", stream)
  })
}

shinyApp(ui, server)

که باید یک رابط چت بسیار اساسی با یک مدل سخت کد باز کند. اگر مدلی را انتخاب نکنید ، برنامه اجرا نمی شود. برای مشخص کردن یک مدل به همراه آنهایی که قبلاً به صورت محلی نصب کرده اید ، یک پیام خطا دریافت خواهید کرد.

من یک نسخه کمی قوی تر از این ساخته ام ، از جمله انتخاب مدل کشویی و یک دکمه برای بارگیری گپ. شما می توانید آن کد را در اینجا ببینید .

نتیجه گیری

تعداد فزاینده ای از گزینه ها برای استفاده از مدل های بزرگ زبان با R وجود دارد ، خواه بخواهید عملکردی را به اسکریپت ها و برنامه های خود اضافه کنید ، با کد خود کمک بگیرید ، یا LLM ها را به صورت محلی با Ollama اجرا کنید. ارزش این را دارد که چند گزینه را برای مورد استفاده خود امتحان کنید تا یکی از مواردی را پیدا کنید که متناسب با نیازهای شما و ترجیحات شما باشد.