成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

八個用于R編程的ChatGPT工具

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

譯者 | 李睿

審校 | 重樓

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

圍繞ChatGPT和R語言的生態系統正在形成,這使得將人工智能技術整合到R語言工作流程中變得很容易。但是在人們開始在R中使用ChatGPT和與之相關的工具之前,有一些重要的事情需要記住:

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

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

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

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

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

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

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

1.RTutor

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

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

圖1要求RTutor創建條形圖時的結果

該應用程序的“關于”頁面解釋說,“RTutor的主要目標是幫助有R語言使用經驗的人學習R或提高工作效率……RTutor可以用來加快使用R的編碼過程。它為用戶提供了一個測試和完善的代碼草案。小心出現漏洞和錯誤。”

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

2.CodeLingo

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

圖2 CodeLingo應用程序中的ChatGPT嘗試將ggplot2圖形代碼轉換為Python

將ggplot2 R圖的代碼轉換為JavaScript生成輸出的請求使用相當難學的D3 JavaScript庫,而不是JavaScript新手更可能想要的內容,例如Observable Plot或Vega-Lite。

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

這款應用由Analytica Data Science Solutions開發。

3.askgpt

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

  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密鑰。

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

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

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

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

GPT is thinking ? 

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

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

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

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

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

4.gptstudio

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

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

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

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

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

圖3查詢gptstudio的ChatGPT插件

使用基本編程風格詢問相同的問題,生成的代碼使用基礎R的plot函數作為答案。

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

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

當將插件應用到以下代碼時:

# 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"使其工作。這個錯誤與這個特定的插件無關,而是與ChatGPT本身的變幻莫測有關。正如以上提到的,在其他時間運行了相同的請求,其結果是準確的。

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

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

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

gptstudio由Michel Nivard和James Wade撰寫。

5.gpttools

據軟件包網站介紹,gpttools軟件包的目的“是為R軟件包開發人員擴展gptstudio,使其更容易將大型語言模型(LLM)的使用納入項目工作流程”。截至本文撰寫之時,gpttools包還沒有在CRAN上發布。與其相反,用戶可以從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檢索
  • 將腳本轉換為函數
  • 將roxygen添加到Function(記錄一個函數)
  • 建議進行單元測試
  • 文檔數據
  • 提出改進建議

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

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

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

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插件,請確保有代碼的原始副本,因為代碼有被覆蓋的風險,而用戶不一定想要這樣做。

6.ChatGPT

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

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

將密鑰存儲在.Renviron文件中

OPENAI_API_KEY="your key"

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

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

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

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

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

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

這導致在控制臺中顯示對ChatGPT的查詢,并在控制臺中顯示響應。

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

這個聊天軟件包由Juan Cruz Rodriguez創建。

7.gptchatteR

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

安裝軟件包

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

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

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

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

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

chatter.create(temperature = 0)

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

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

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

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

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.

用戶可以創建一個“隨意”的聊天。聊天(“你的輸入”)。如果用戶認為需要在初始請求之后進行后續操作,可以使用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")

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

gptchatteR軟件包是由哥本哈根大學的博士Isin Altinkaya創建的。

8.chatgptimages

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

也就是說,如果想嘗試,需要注意它不會像通常的軟件包那樣安裝。首先,確保其系統上也安裝了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文件夾中,然后逐行運行這個短文件。這個應用程序應該在默認瀏覽器中打開:

圖5 chatgtimages應用程序在瀏覽器中運行

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

其結果如圖6所示

圖6從chatgtimages保存的圖像

超越ChatGPT

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

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

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

原文標題:8 ChatGPT tools for R programming作者:Sharon Machlis

責任編輯:華軒 來源: 51CTO
相關推薦

2023-02-22 14:50:59

技術AI

2023-01-27 15:38:25

ChatGPT人工智能機器人

2020-07-21 08:14:13

TypeScrip

2024-04-01 07:51:49

Exclude?工具類型TypeScript

2023-11-29 10:16:45

內網開源

2025-05-09 09:26:12

2023-11-07 18:01:44

RESTVisual請求

2023-10-10 10:27:37

DevOps

2024-03-21 09:58:27

ExtractTypeScript工具類型

2022-05-16 14:25:31

數據分析預測分析工具

2024-06-17 08:31:42

2017-01-05 09:59:45

2012-10-29 11:01:17

2017-04-20 12:51:28

2023-12-15 13:07:00

開源網頁截圖

2023-02-20 15:48:48

2016-12-26 11:00:57

Java開發者工具

2019-12-23 14:47:19

漏洞滲透測試錯誤姿勢

2024-09-03 08:24:52

RestfulAPI結構

2022-06-15 14:37:30

元宇宙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品一区二区三区久久久久 | 久久精品国产一区 | 精品成人一区 | 精品一区二区久久久久久久网精 | 91久久久久久久久 | 怡红院免费的全部视频 | 欧美国产视频一区二区 | 欧美黄色一区 | 欧美三级在线 | 亚洲精品日韩一区二区电影 | 日本黄色的视频 | 久久久久国产精品一区二区 | 精品欧美一区二区在线观看视频 | 成人在线免费观看av | 亚洲精品视频播放 | 北条麻妃av一区二区三区 | 国产 欧美 日韩 一区 | 日韩精品一区二区三区免费视频 | www.se91| 大香在线伊779 | 99pao成人国产永久免费视频 | 人人干人人草 | 日韩精品视频在线 | 亚洲综合天堂 | 亚洲手机在线 | avmans最新导航地址 | 国产成人在线视频免费观看 | 日韩电影免费观看中文字幕 | 日韩三区在线 | 欧美日韩亚洲国产综合 | 日本精a在线观看 | 亚洲精品一区二区在线观看 | 欧美成人一区二区三区 | 最近中文字幕第一页 | 日日干夜夜操 | 成人免费福利视频 | 欧美久操网 | 国产免费观看久久黄av片涩av | 日韩午夜网站 | 人人看人人搞 | 99re免费 |