bioinfoer

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

0

听众

15

主题
发表于 7 天前 | 查看: 11| 回复: 0

背景

我们已经知道Chatgpt可以帮助我们写代码,以及使用起来gpt直接融合进Rstudio的插件。

使用R语言做可视化,可以画出多种精美的图标。最后用于写文章时,大量的figure legend需要我们去书写,以及解释图标的结果。

是时候使用人工智能的武器来帮助我们解释图表了。

有没有可以让gpt直接描述的R包,这样我们可以直接"让R自己解释画出的图表"了。

就算有了这样的插件,又是老大难的问题来了:

1.科学上网;2.付费;3.频率限制。

是不是想起了什么?音云中转API!

还要介绍一个主角,ellmer包。ellmer 的目标是为最常见的llm提供商提供一个用户友好的包装器。主要设计目标包括支持流媒体以及简化注册和调用 R 函数的过程。

而本次介绍的项目合并了ellmer包和音云API项目,将ellmer和Chatgpt无缝衔接在一起,让你的R自己解释画出的图表。

环境准备

音云API

https://api.voiceclouds.cn/

2元对等官方1美刀的额度,这真的太香了。

按照网站教程,我们生成支持默认的key(所有模型都可以调用)就可以保存备用了。

ellmer

安装版本呢已兼容音云api。

安装命令

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代码聊天

library(ellmer)
chat <- chat_openai(
  api_key = "sk-yinyunapixxxxxxxxxxxxxxxxx",
  model = "gpt-4o-mini",
  #gpt-4o-mini
  system_prompt = "You are a friendly but terse assistant.",
  echo = TRUE
) # api_key为音云助手的令牌
#1 以交互方式还是以编程方式
chat # ellmer对象
#---1.1 交互聊天----
live_console(chat)
# 输入Q 退出

1.png

解析在线图片

chat$chat(content_image_url("https://www.r-project.org/Rlogo.png"), 
          "解释这个logo?")

2.png

解析本地图片

chat$chat(
  "What do you see in these images?",
  content_image_file(system.file("httr2.png", package = "ellmer"))
)

3.png

描述森林图
11234.jpg

chat$chat( "请从医学论文SCI角度针对图片应用统计学知识撰写result结果,并用英文描述",
           content_image_file("C:/迅雷下载/11234.jpg"))

结果如下:
4.png

以上示例使用的gpt-4o-mini,你也可以使用音云api支持的其他模型,定义chat后调用。

对表格描述

chat$chat("请从医学论文SCI角度针对下列全部结果进行result统计分析详细撰写
                    Variable    Crude OR (95% CI) Crude P Value    Adjusted OR (95% CI) P (Wald's Test) P (LR Test)
1       x1: ref.=1                                                                                  0.624
2                2   3.33 (0.34,32.96)          0.303      1.26 (0.05,29.64)            0.884        
3                3   8.57 (0.83,89.04)          0.072      3.34 (0.13,89.28)            0.472        
4                4    15 (0.66,339.55)          0.089     5.26 (0.13,220.23)            0.383        
5       x2: 2 vs 1      4.09 (1.29,13)          0.017       1.42 (0.2,10.11)            0.728       0.729
6       x3: 2 vs 1     3.4 (1.11,10.4)          0.032      2.22 (0.22,22.36)            0.497       0.494
7       x4: 2 vs 1    4.26 (1.02,17.8)          0.047      5.77 (0.38,87.04)            0.205       0.179
8       x5: 2 vs 1      5 (1.52,16.46)          0.008      4.37 (0.44,43.77)             0.21       0.194
9       x6: 2 vs 1 16.87 (1.97,144.32)           0.01     15.15 (0.98,235.4)            0.052       0.024
10      x7: ref.=1                                                                                  0.944
11               2   4.12 (1.05,16.26)          0.043 0.9994 (0.1056,9.4609)                1        
12               3    4.58 (0.77,27.3)          0.094      1.71 (0.07,42.16)            0.741        
13 x9 (cont. var.)    1.05 (1.02,1.09)          0.005          1.07 (1,1.15)            0.035        0.01
          ")

5.png
至此,你的R就可以自己解释自己的图表了,当然也可以解释别人文章中的图表(保存到本地再给ellmer)了。

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|bioinfoer ( 萌ICP备20244422号 )

GMT+8, 2025-1-18 12:55 , Processed in 0.075048 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表