项目简介

'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环境中的数据和功能。

安装步骤

  1. 安装 'pak' 包管理器 (如果尚未安装): 在R控制台中运行:
    install.packages("pak")
  2. 安装 '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")

服务器配置(针对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环境。

基本使用方法

  1. 上下文复制粘贴到外部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聊天界面。

  2. 在R IDE中启动交互式AI聊天助手:

    library(btw)
    btw_app()
    # 这将在您的R集成开发环境(IDE)中启动一个功能齐全的AI聊天界面,
    # 允许您直接与LLM交互并利用R环境的上下文。
  3. 作为MCP服务器使用 (供外部MCP客户端连接): 如上述“服务器配置”部分所述,MCP客户端会使用配置的命令(如'R --vanilla -e "library(btw); btw::btw_mcp_server()"')来启动'btw'的MCP服务器。您无需手动在R中运行此命令,客户端会自动管理服务器的启动和连接。一旦连接建立,外部MCP客户端即可通过协议调用'btw'提供的工具。

信息

分类

开发者工具