自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

八個用于R編程的ChatGPT工具

譯文
人工智能
ChatGPT無需進行微調(diào)或接受特定主題的訓(xùn)練,就可以回答有關(guān)各種技術(shù)主題的問題——包括如何編寫R代碼。這意味著任何R語言編程人員都可以使用ChatGPT的功能,即使是那些對大型語言模型知之甚少的編程人員也是如此。大型語言模型(LLM)是OpenAI公司的ChatGPT等人工智能聊天機器人的基礎(chǔ)技術(shù)。

譯者 | 李睿

審校 | 重樓

ChatGPT無需進行微調(diào)或接受特定主題的訓(xùn)練,就可以回答有關(guān)各種技術(shù)主題的問題——包括如何編寫R代碼。這意味著任何R語言編程人員都可以使用ChatGPT的功能,即使是那些對大型語言模型知之甚少的編程人員也是如此。大型語言模型(LLM)是OpenAI公司的ChatGPT等人工智能聊天機器人的基礎(chǔ)技術(shù)。

圍繞ChatGPT和R語言的生態(tài)系統(tǒng)正在形成,這使得將人工智能技術(shù)整合到R語言工作流程中變得很容易。但是在人們開始在R中使用ChatGPT和與之相關(guān)的工具之前,有一些重要的事情需要記?。?/span>

(1)用戶對這些工具的所有要求都會被發(fā)送到OpenAI公司的服務(wù)器,因此不要使用ChatGPT工具處理敏感信息。

(2)ChatGPT可以自信地返回錯誤的答案。即使是錯誤的響應(yīng)也可以作為節(jié)省時間的起點,但不要假設(shè)代碼將完全按照用戶的期望執(zhí)行。德克薩斯基督教大學(xué)副教授、流行的tidycensus R軟件包的開發(fā)者Kyle Walker最近在推特上表示,“ChatGPT可以在用戶很好地理解一個主題的情況下為其工作提供助力,也可能讓用戶暴露出他們不知道自己在做什么”。其區(qū)別在于知道什么時候人工智能輸出不正確。而用戶需要檢查ChatGPT的響應(yīng)。

(3)ChatGPT可以對同一個查詢生成不同的響應(yīng),有些答案可能是準(zhǔn)確的,而另一些則不是。例如,當(dāng)多次請求一個帶有藍色條形圖的ggplot2條形圖時,其代碼有時會生成一個帶有藍色條形圖,但有時不會,即使提交了完全相同的請求。如果需要一個可再現(xiàn)的工作流,這種結(jié)果顯然不太理想。

(4)如果用戶正在使用的軟件包最近進行了更新,ChatGPT也不會知道,因為它的訓(xùn)練數(shù)據(jù)截止到2021年。

(5)本文中的大多數(shù)資源都要求用戶擁有自己的OpenAI API密鑰,并且這一API并不是免費使用的。雖然目前價格很低,但不能保證它會一直保持這種狀態(tài)。ChatGPT 3.5渦輪模型目前的定價是每10,000個令牌為0.2美分。那么令牌能帶來什么?例如,從234行mpg數(shù)據(jù)集創(chuàng)建散點圖的請求花費38個令牌。

(6)向ChatGPT尋求編碼幫助不太可能讓用戶陷入人工智能種族和性別偏見的倫理困境。然而,關(guān)于向OpenAI公司提供更多數(shù)據(jù)是否明智的討論也很激烈。例如,訓(xùn)練數(shù)據(jù)如何被抓取和重新利用的倫理問題;如果使用開源的大型語言模型(例如H2O.aih2oGPT)而不是OpenAI公司的問題。這些問題需要組織和個人自己去分析。然而在撰寫本文時,根本沒有特定于R語言的大型語言模型(LLM)工具可以與圍繞ChatGPT構(gòu)建的工具相媲美。

現(xiàn)在了解目前可用的一些最著名的以R為中心的ChatGPT資源。

1.RTutor

這個應(yīng)用程序是一種優(yōu)雅而簡單的方法來對ChatGPT和R進行采樣。用戶上傳一個數(shù)據(jù)集,問一個問題,然后看著它生成R代碼和結(jié)果,其中包括圖形。雖然它被命名為RTutor,但這個應(yīng)用程序也可以生成Python代碼。

RTutor的網(wǎng)址是https://rtutor.ai/。它是目前列出的唯一一個不需要ChatGPT API密鑰使用的應(yīng)用程序或軟件包,但用戶需要為大量使用提供自己的密鑰,以免向創(chuàng)建者的帳戶收費。

圖1要求RTutor創(chuàng)建條形圖時的結(jié)果

該應(yīng)用程序的“關(guān)于”頁面解釋說,“RTutor的主要目標(biāo)是幫助有R語言使用經(jīng)驗的人學(xué)習(xí)R或提高工作效率……RTutor可以用來加快使用R的編碼過程。它為用戶提供了一個測試和完善的代碼草案。小心出現(xiàn)漏洞和錯誤?!?/span>

RTutor的代碼是開源的,可以在GitHub上找到,所以用戶可以安裝自己的本地版本。然而,許可只允許用戶使用應(yīng)用程序用于非營利或非商業(yè)用途,或用于商業(yè)測試。RTutor是南達科他州立大學(xué)生物信息學(xué)教授Steven Ge博士個人創(chuàng)建的項目。

2.CodeLingo

這個多語言應(yīng)用程序可以將代碼從一種編程語言“翻譯”到另一種語言??捎玫恼Z言包括Java、Python、JavaScript、C、C++、PHP等,包括R。這只是一個Web應(yīng)用程序,可在https://analytica.shinyapps.io/codelingo/上獲得。用戶需要輸入OpenAI API密鑰才能使用它(用戶可能希望在測試后重新生成密鑰)。

圖2 CodeLingo應(yīng)用程序中的ChatGPT嘗試將ggplot2圖形代碼轉(zhuǎn)換為Python

將ggplot2 R圖的代碼轉(zhuǎn)換為JavaScript生成輸出的請求使用相當(dāng)難學(xué)的D3 JavaScript庫,而不是JavaScript新手更可能想要的內(nèi)容,例如Observable Plot或Vega-Lite。

轉(zhuǎn)換為Python的請求(如圖2所示)更為直接,并且使用了用戶所期望的庫。然而,ChatGPT不明白“Set1”是一個ColorBrewer調(diào)色板,不能直接在Python中使用。與許多ChatGPT使用的情況一樣,在編程語言之間翻譯代碼可能會給用戶提供一個有用的起點,但是需要知道如何修復(fù)錯誤。

這款應(yīng)用由Analytica Data Science Solutions開發(fā)。

3.askgpt

這個軟件包可以在https://github.com/JBGruber/askgpt獲得,對于在控制臺中首次使用ChatGPT的用戶來說,這可能是一個很好的起點,部分原因是它在初次啟動時會給出一些指示。加載帶有庫的包(askgpt),它的響應(yīng)是:

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()函數(shù),將看到一條關(guān)于如何獲取API密鑰的消息:

It looks like you have not provided an API key yet.

  1. Go to <https://platform.openai.com/account/api-keys>
  2. (Log into your account if you haven't done so yet)
  3. On the site, click the button + Create new secret key to create an API key
  4. Copy this key into R/RStudio

看起來用戶還沒有提供API密鑰。

系統(tǒng)會要求用戶將密鑰保存在密匙環(huán)中,然后就可以為以后的會話做好準(zhǔn)備了。如果用戶的密鑰已經(jīng)存儲,login()將不返回任何消息。

Askgpt的默認設(shè)置是將查詢結(jié)果存儲為一個對象,這樣就可以將它們保存到一個變量中,如下所示:

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

提交一個查詢,用戶會首先看到:

GPT is thinking ? 

這樣,用戶就知道其請求已經(jīng)被發(fā)送了,并且應(yīng)該會得到答復(fù),而不是想知道在用戶點擊提交后會發(fā)生什么。

除了軟件包的通用askgpt()函數(shù)外,還有一些特定于編碼的函數(shù),例如annstate_code()、explain_code()和test_function()。這將涉及到將響應(yīng)剪切并粘貼回源代碼中。

對于那些熟悉OpenAI API的人員來說,軟件包的chat_api()函數(shù)允許用戶設(shè)置API參數(shù),例如想要使用的模型、每個請求愿意花費的最大令牌以及所需的響應(yīng)溫度(將在本文后面詳細解釋)。

chat_api()函數(shù)返回一個列表,其中響應(yīng)的文本部分在YourVariableName$choices[b[1]]$message$content中。其他有用的信息也存儲在列表中,例如使用的令牌數(shù)量。

askgpt包是由阿姆斯特丹自由大學(xué)的博士后研究員Johannes Gruber創(chuàng)建的。它可以從CRAN安裝。

4.gptstudio

這個軟件包和gpttools(如下所述)具有RStudio插件可以與ChatGPT一起使用,盡管也有一些命令行函數(shù)可以在任何IDE或終端中使用。

用戶可以從代碼源窗格上方的插件下拉菜單或通過RStudio命令調(diào)色板(Ctrl-shift-p)搜索插件來訪問RStudio中的外接工具。

根據(jù)軟件包網(wǎng)站的介紹,“gptstudio是一個通用的助手,讓R程序員可以輕松地將大型語言模型(LLM)的使用整合到他們的項目工作流中?!?/span>

其中一個插件ChatGPT啟動了一個基于瀏覽器的應(yīng)用程序,用于詢問用戶的R編碼問題,并提供編程風(fēng)格(整潔、基礎(chǔ)或無偏好)和熟練程度(初學(xué)者、中級、高級和天才)的選項。

在下面的截圖中,用戶詢問了作為一個具有整潔(tidyverse)風(fēng)格的中級程序員,如何在R中創(chuàng)建散點圖,

圖3查詢gptstudio的ChatGPT插件

使用基本編程風(fēng)格詢問相同的問題,生成的代碼使用基礎(chǔ)R的plot函數(shù)作為答案。

雖然gptstudio是為R編碼提供幫助而設(shè)計的,但它可以利用更多的ChatGPT功能,所以可以問它任何問題,就像最初的基于Web的ChatGPT一樣。例如,該應(yīng)用程序的工作原理與ChatGPT工具一樣好,可以編寫Python代碼并回答諸如“什么行星離太陽最遠?”之類的一般問題。

gptstudio包的另一個插件,Source插件中的ChatGPT似乎最接近魔法。用戶可以像往常一樣在源代碼窗格中編寫代碼,在代碼中添加請求更改的注釋,選擇包含注釋的代碼塊,然后應(yīng)用插件。然后所要求的更改已完成。

當(dāng)將插件應(yīng)用到以下代碼時:

# Sort bars by descending Y value, rotate x-axis text 90 degrees, color bars steel blue
ggplot(states, aes(x = State, y = Pop_2020)) +
 geom_col()

代碼被替換為圖4中突出顯示的選擇:

圖4 Source插件中的ChatGPT示例

太酷了,但是如果運行這段代碼,這些條就不會顯示為鋼藍色。在geom_col()中移動fill = "steelblue"使其工作。這個錯誤與這個特定的插件無關(guān),而是與ChatGPT本身的變幻莫測有關(guān)。正如以上提到的,在其他時間運行了相同的請求,其結(jié)果是準(zhǔn)確的。

將以下代碼發(fā)送到ChatGPT的源代碼插件生成了一個Shiny應(yīng)用程序的完整指令和代碼:

# Create an R Shiny app with this data
states<- readr::read_csv("https://raw.githubusercontent.com/smach/SampleData/main/states.csv")

然而,兩次提交請求返回了兩個完全不同的結(jié)果——第一個是兩個文件的應(yīng)用程序,在使用它之前忘記加載ggplot2庫:第二個調(diào)用的列實際上不在數(shù)據(jù)中。編寫處理現(xiàn)有數(shù)據(jù)集細節(jié)的查詢需要更多的工作,但是代碼仍然可以作為構(gòu)建的框架。

gptstudio由Michel Nivard和James Wade撰寫。

5.gpttools

據(jù)軟件包網(wǎng)站介紹,gpttools軟件包的目的“是為R軟件包開發(fā)人員擴展gptstudio,使其更容易將大型語言模型(LLM)的使用納入項目工作流程”。截至本文撰寫之時,gpttools包還沒有在CRAN上發(fā)布。與其相反,用戶可以從JamesHWade/gptools GitHub repo或R Universe安裝gpttools,其方法如下:

# Enable repository from jameshwade
options(repos = c(
 jameshwade = "https://jameshwade.r-universe.dev",
 CRAN = "https://cloud.r-project.org"
))
# Download and install gpttools in R
install.packages("gpttools")

該軟件包的插件包括:

  • ChatGPT檢索
  • 將腳本轉(zhuǎn)換為函數(shù)
  • 將roxygen添加到Function(記錄一個函數(shù))
  • 建議進行單元測試
  • 文檔數(shù)據(jù)
  • 提出改進建議

要運行插件,突出顯示其代碼,然后從RStudio Addins下拉菜單中選擇該插件,或者在命令調(diào)色板中搜索它(在RStudio Addins菜單中使用Tools >顯示命令調(diào)色板,在Windows上使用Ctrl-Shift-P,在Mac上使用Cmd-Shift-P)。

當(dāng)用戶運行插件時,并不總是看到消息告訴他發(fā)生了什么,所以要有耐心。

建議改進插件在一個R文件中的函數(shù)下面生成了未注釋的文本,后面跟著修改的代碼。有些建議并不是很有幫助。例如,對于下面的代碼

if (exportcsv) {
 filename_root <- strsplit(filename, "\\.")[[1]][1]
 filename_with_winner <- paste0(filename_root, "_winners.csv")
 rio::export(data, filename_with_winner)
 }

推薦的插件

Use `paste()` instead of `paste0()` to ensure a space is included between the names of the winners.

用戶不想要文件名中有空格!盡管如此,還是無法否認書中的所有建議。以下建議似乎是合理的:

Use a switch statement instead of multiple if statements, to allow for additional functionality in the future

在這種情況下,用戶更有可能使用dplyr的case_hen()或data.table的fcase(),而不是baseR的switch()。

如果用戶正在使用任何軟件包的ChatGPT插件,請確保有代碼的原始副本,因為代碼有被覆蓋的風(fēng)險,而用戶不一定想要這樣做。

6.ChatGPT

ChatGPT包提供了在R中使用ChatGPT的函數(shù)和RStudio插件,在測試時記錄了10個插件。

特定于代碼的函數(shù)包括comment_code()、complete_code()、create_unit_tests()、document_code()、find_issues_in_code()和refactor_code()。還有一個通用的ask_chatgpt()函數(shù)和插件,如果用戶想將ChatGPT用于與代碼無關(guān)的內(nèi)容。

將密鑰存儲在.Renviron文件中

OPENAI_API_KEY="your key"

如果用戶試圖在存儲密鑰之前運行其中一個插件,將得到一條錯誤消息,告訴他如何進行密鑰設(shè)置。

該包位于CRAN上,或者可以使用

remotes::install_github("jcrodriguez1989/chatgpt", build_vignettes = TRUE)

當(dāng)用戶在沒有加載軟件包的情況下嘗試加載插件時,什么也沒有發(fā)生。然后用庫(chatgpt)加載了這個包,得到了這個消息:

Warning message:
In run_addin("document_code") :
 Please set one of `OPENAI_ADDIN_REPLACE=TRUE` or `OPENAI_VERBOSE=TRUE` 

按照R環(huán)境文件中的說明操作,將verbose選項設(shè)置為TRUE,因為不希望替換初始代碼。

這導(dǎo)致在控制臺中顯示對ChatGPT的查詢,并在控制臺中顯示響應(yīng)。

在R環(huán)境文件中使用OPENAI_ADDIN_REPLACE=TRUE選項,并且在RStudio中選擇了代碼,當(dāng)添加文檔時,用戶的一些初始代碼偶爾會消失。用戶最終堅持使用這個包的命令行函數(shù)而不是插件,但是可能會發(fā)現(xiàn)插件很有用,只要記住在試驗之前復(fù)制其代碼。

這個聊天軟件包由Juan Cruz Rodriguez創(chuàng)建。

7.gptchatteR

gptchatteR號稱“一個實驗性的非官方包裝器,用于在R中與OpenAI GPT模型進行交互,其中一個優(yōu)點是它的chatter.plot()函數(shù)。

安裝軟件包

remotes::install_github("isinaltinkaya/gptchatteR", build_vignettes = TRUE, dependencies = TRUE)

這確保了它還安裝了所需的openai包。然后,可以加載個包并使用

library(gptchatteR)
chatter.auth("YOUR KEY")

在完成之后,使用chatter.create()啟動一個聊天會話。

chatter_create()參數(shù)包括OpenAI模型的模型(默認為text-davinci-003), max_tokens用于用戶希望使用的最大令牌數(shù)量(默認為100),以及使用如下參數(shù)設(shè)置的“溫度”:

chatter.create(temperature = 0)

根據(jù)OpenAI文檔,溫度設(shè)置可以在0到1之間,表示“模型輸出不太可能的令牌的頻率”。

溫度越高,輸出就越隨機(通常也是創(chuàng)造性的)。然而,這與“真實”是不一樣的。對于大多數(shù)實際用例,例如數(shù)據(jù)提取和真實問答,溫度為0是最好的。

包的默認值是中性的0.5。除非想要娛樂而不是獲得可用的代碼,否則將溫度設(shè)置為0是值得的。

當(dāng)進行測試的時候,這個包是工作的,但是生成了以下警告:

The `engine_id` argument of `create_completion()` is deprecated as of openai 0.3.0.
? Please use the `model` argument instead.
? The deprecated feature was likely used in the gptchatteR package.
 Please report the issue to the authors.

用戶可以創(chuàng)建一個“隨意”的聊天。聊天(“你的輸入”)。如果用戶認為需要在初始請求之后進行后續(xù)操作,可以使用chatter.feed(),它將存儲用戶的第一個查詢以便在第二個問題中使用,以此類推。

運行以下代碼后:

library(gptchatteR)
chatter.auth(Sys.getenv("OPENAI_API_KEY"))
chatter.create(temperature = 0)
chatter.feed('I have the following data in R mydf <- data.frame(State = c("CT", "NJ", "NY"), Pop = c(3605944, 9288994, 20201249))')
myplot <- chatter.plot("Make a graph with State on the x axis and Pop on the Y axis")

一個圖表出現(xiàn)在RStudio視圖窗格中。圖形代碼存儲在myplot$code中。

gptchatteR軟件包是由哥本哈根大學(xué)的博士Isin Altinkaya創(chuàng)建的。

8.chatgptimages

這個R包不是為了幫助用戶編寫代碼而設(shè)計的。與其相反,它使用熟悉的R和Shiny界面來訪問ChatGPT的另一個功能:創(chuàng)建圖像。目前,基于用于訓(xùn)練模型的人工智能圖像創(chuàng)建中存在許多道德知識產(chǎn)權(quán)問題,如果用戶想將此軟件包用于娛樂以外的任何內(nèi)容,務(wù)必記住這一點。

也就是說,如果想嘗試,需要注意它不會像通常的軟件包那樣安裝。首先,確保其系統(tǒng)上也安裝了shiny、golem、shinydashboard、openai、config和test。然后,在https://github.com/analyticsinmotion/chatgpt-images-r-shiny上下載整個GitHub repo,或者在https://github.com/analyticsinmotion/chatgpt-images-r-shiny上下載并解壓縮.zip文件。打開chatgtimages。在RStudio中打開run_dev. Rproj文件。R文件放到項目的dev文件夾中,然后逐行運行這個短文件。這個應(yīng)用程序應(yīng)該在默認瀏覽器中打開:

圖5 chatgtimages應(yīng)用程序在瀏覽器中運行

按照存儲ChatGPT API密鑰的說明,用戶就可以開始創(chuàng)建和保存圖像。

其結(jié)果如圖6所示

圖6從chatgtimages保存的圖像

超越ChatGPT

如果用戶想測試其他開源的大型語言模型,Chat with open large language models這個非R特定的工具非常有趣。在撰寫本文時,它提供了9種不同的模型,還有一個“競技場”,用戶可以同時測試兩種模型,并選出最佳模型。

用戶需要注意其使用條款:“僅用于非商業(yè)用途。它只提供有限的安全措施,并可能產(chǎn)生令人反感的內(nèi)容。它不得用于任何非法、有害、暴力、種族主義或性目的。該服務(wù)收集用戶對話數(shù)據(jù),用于未來的研究。”

最后提醒一下,H2o. ai有一個網(wǎng)站,可以在https://gpt.h2o.ai/上測試它的模型。

原文標(biāo)題:8 ChatGPT tools for R programming作者:Sharon Machlis

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-02-22 14:50:59

技術(shù)AI

2023-01-27 15:38:25

ChatGPT人工智能機器人

2020-07-21 08:14:13

TypeScrip

2023-10-10 10:27:37

DevOps

2024-04-01 07:51:49

Exclude?工具類型TypeScript

2023-11-29 10:16:45

內(nèi)網(wǎng)開源

2023-11-07 18:01:44

RESTVisual請求

2022-05-16 14:25:31

數(shù)據(jù)分析預(yù)測分析工具

2024-03-21 09:58:27

ExtractTypeScript工具類型

2024-06-17 08:31:42

2023-02-20 15:48:48

2023-12-15 13:07:00

開源網(wǎng)頁截圖

2017-04-20 12:51:28

2017-01-05 09:59:45

2012-10-29 11:01:17

2016-12-26 11:00:57

Java開發(fā)者工具

2022-12-01 16:53:27

NPM技巧

2024-10-11 17:00:20

2022-06-15 14:37:30

元宇宙

2024-09-30 13:14:01

點贊
收藏

51CTO技術(shù)棧公眾號