项目简介
'btw' 是一个功能全面的R语言工具包,旨在帮助R用户轻松地与大型语言模型(LLM)进行交互。它能够从R环境中提取上下文信息(如数据结构、包、文档),支持将这些信息复制粘贴到外部LLM聊天界面,提供交互式AI助手,并允许开发者构建基于LLM的应用。其核心亮点之一是提供了一个符合Model Context Protocol (MCP) 的服务器实现,使得外部LLM客户端可以安全地访问R环境中的上下文和工具。
主要功能点
- R环境上下文提取: 快速收集R会话中的数据帧描述、包或函数文档等信息,用于增强LLM的理解能力。
- 互动式AI聊天助手: 在R集成开发环境(IDE)中直接启动功能齐全的AI助手,支持探索R环境、阅读文档和辅助代码编写。
- 构建LLM应用: 提供用于创建自定义聊天客户端和将R功能暴露给外部编码代理(通过MCP协议)的接口。
- MCP服务器功能: 允许其他MCP兼容工具(如Claude Desktop, Continue等)通过标准协议访问和利用R环境中的数据和功能。
安装步骤
- 安装 'pak' 包管理器 (如果尚未安装):
在R控制台中运行:
install.packages("pak") - 安装 'btw' 包:
选择以下任一方式安装最新开发版本:
- 从 'posit-dev.r-universe.dev' 安装:
在R控制台中运行:
pak::repo_add("https://posit-dev.r-universe.dev") pak::pak("btw") - 从GitHub安装:
在R控制台中运行:
pak::pak("posit-dev/btw")
- 从 'posit-dev.r-universe.dev' 安装:
在R控制台中运行:
服务器配置(针对MCP客户端)
要让外部MCP客户端(如Claude Desktop、Continue等)连接到'btw'的MCP服务器,您需要在客户端的配置界面或文件中提供服务器的启动命令和参数。以下是标准的JSON配置示例和详细说明:
{ "server_name": "R Environment MCP Server (btw)", "command": "R", "args": [ "--vanilla", "-e", "library(btw); btw::btw_mcp_server()" ] }
- 'server_name': 这是一个用户友好的名称,将在MCP客户端的界面中显示,您可以根据需要自定义。
- 'command': 这是用于启动R解释器的可执行命令。在大多数操作系统中,它的值是 '"R"'。
- 'args': 这是一个字符串数组,包含了传递给R命令的参数。
- '"--vanilla"': 启动一个纯净的R会话,不加载任何历史记录、工作区或预配置。
- '"-e"': 告诉R解释器执行紧随其后的R表达式。
- '"library(btw); btw::btw_mcp_server()"': 这是实际启动MCP服务器的R表达式。它首先加载'btw'包,然后调用'btw::btw_mcp_server()'函数来启动服务器实例。
请将以上JSON配置信息提供给您的MCP客户端。客户端将使用这些信息来启动R进程,并与'btw'的MCP服务器建立连接。一旦连接成功,您的MCP客户端就能够利用'btw'包提供的工具来访问和操作R环境。
基本使用方法
-
上下文复制粘贴到外部LLM:
library(btw) # 描述一个数据框,其描述将被复制到剪贴板 btw(mtcars) # 包含特定R包或函数的文档,并复制到剪贴板 btw("{dplyr}", ?dplyr::across) # 组合多种上下文信息和一个问题,然后复制到剪贴板 btw(mtcars, "{dplyr}", "How do I calculate the mean mpg by cylinder?")复制到剪贴板的内容可以直接粘贴到ChatGPT、Claude或任何其他LLM聊天界面。
-
在R IDE中启动交互式AI聊天助手:
library(btw) btw_app() # 这将在您的R集成开发环境(IDE)中启动一个功能齐全的AI聊天界面, # 允许您直接与LLM交互并利用R环境的上下文。 -
作为MCP服务器使用 (供外部MCP客户端连接): 如上述“服务器配置”部分所述,MCP客户端会使用配置的命令(如'R --vanilla -e "library(btw); btw::btw_mcp_server()"')来启动'btw'的MCP服务器。您无需手动在R中运行此命令,客户端会自动管理服务器的启动和连接。一旦连接建立,外部MCP客户端即可通过协议调用'btw'提供的工具。
信息
分类
开发者工具