背景
我们已经知道Chatgpt可以帮助我们写代码,以及使用起来gpt直接融合进Rstudio的插件。
使用R语言做可视化,可以画出多种精美的图标。最后用于写文章时,大量的figure legend需要我们去书写,以及解释图标的结果。
是时候使用人工智能的武器来帮助我们解释图表了。
有没有可以让gpt直接描述的R包,这样我们可以直接”让R自己解释画出的图表”了。
就算有了这样的插件,又是老大难的问题来了:
1.科学上网;2.付费;3.频率限制。
是不是想起了什么?音云中转API!
还要介绍一个主角,ellmer包。ellmer 的目标是为最常见的llm提供商提供一个用户友好的包装器。主要设计目标包括支持流媒体以及简化注册和调用 R 函数的过程。
而本次介绍的项目合并了ellmer包和音云API项目,将ellmer和Chatgpt无缝衔接在一起,让你的R自己解释画出的图表。
环境准备
音云API
2元对等官方1美刀的额度,这真的太香了。
按照网站教程,我们生成支持默认的key(所有模型都可以调用)就可以保存备用了。
ellmer
安装版本呢已兼容音云api。
安装命令
1 | devtools::install_github("xiehs211/ellmer",destdir = 'C:/Users/Administrator/software/R/RStudiowork/R-4.4.1/downloaded_packages') |
ellmer简介
ellmer函数
Ellmer支持众多AI平台。需要在~/.Renviron中设置适当的环境变量,打开该文件的一种简单方法是调用usethis::edit_r_environ():对于chat_claude() ,使用https://console.anthropic.com/account/keys中的密钥设置ANTHROPIC_API_KEY 。对于chat_gemini() ,使用https://aistudio.google.com/app/apikey中的密钥设置GOOGLE_API_KEY 。对于chat_openai()使用https://platform.openai.com/account/api-keys中的密钥设置OPENAI_API_KEY。
这里因为我们仅修改了openai的接口,且兼容音云API的令牌。其余模型后续修改更新后也会1个令牌使用多个模型。简单易用。所以不用去各自的官网获取了。
创建聊天对象chat
Ellmer会使用prompt提示词,并保留对话的上下文,因此每个新查询都可以基于先前的查询。
交互聊天
通过调用 live_console(chat),可以在R控制台中与模型实时互动。也可以直接用代码进行聊天。
相比其他GPT包
ellmer相比chatgpt包、gptstudio包(前面分享过这个插件)优点在于多平台兼容、API更灵活、可识别本地图表支持多model,对话更加自由。
代码实战
R代码聊天
1 | library(ellmer) |
解析在线图片
1 | chat$chat(content_image_url("https://www.r-project.org/Rlogo.png"), |
解析本地图片
1 | chat$chat( |
描述森林图
1 | chat$chat( "请从医学论文SCI角度针对图片应用统计学知识撰写result结果,并用英文描述", |
结果如下:
以上示例使用的gpt-4o-mini,你也可以使用音云api支持的其他模型,定义chat后调用。
对表格描述
1 | chat$chat("请从医学论文SCI角度针对下列全部结果进行result统计分析详细撰写 |
至此,你的R就可以自己解释自己的图表了,当然也可以解释别人文章中的图表(保存到本地再给ellmer)了。