Repolode
tidyverse

tidyverse/ellmer

一个 R 语言包,用于在 R 中调用大语言模型 API,支持对话、流式输出、工具调用和结构化数据提取。

Star
622
Fork
145
未关闭 Issue
69
最近提交
19小时前

这是什么?

ellmer 让 R 用户可以直接在 R 代码和控制台中调用大语言模型。它支持 Anthropic、OpenAI、Google Gemini、AWS Bedrock、Azure OpenAI、Ollama 等多家服务商,以及若干社区维护的提供方,因此同一套流程既可以连接云端模型,也可以运行本地模型。

聊天对象是有状态的 R6 对象,会保留对话上下文,每次提问都基于之前的内容。回复可以流式输出到控制台、以字符串形式返回,也可以通过交互式聊天控制台或浏览器使用。图片可以以文件或 URL 的形式传入。

除了基础对话,ellmer 还支持工具与函数调用、结构化数据提取,以及流式和异步 API。认证通过存放在环境变量中的 API 密钥完成,并能自动识别许多主流云平台的 OAuth 或 IAM 凭证。

核心功能

  • 01通过一组统一的 chat_*() 函数调用多家大语言模型服务商。
  • 02有状态的聊天对象,在多次调用之间保留对话上下文。
  • 03支持流式输出到控制台,也可将回复捕获为字符串。
  • 04支持将 R 函数作为工具供模型调用。
  • 05支持从模型回复中提取结构化数据。
  • 06支持在 R 控制台或浏览器中交互式聊天,并可传入文件或 URL 形式的图片。

适用场景

  • 在 R 分析脚本中加入大模型驱动的摘要或分类步骤。
  • 将文本中的信息提取为结构化字段并存入数据框。
  • 通过 Ollama 运行本地模型,让数据保留在自己的机器上。
  • 构建让模型调用自定义 R 函数的工具。

快速上手

  1. 1

    从 CRAN 安装 ellmer

    install.packages("ellmer")
  2. 2

    加载软件包并创建聊天对象(需要先在环境变量中保存提供商的 API 密钥)

    library(ellmer) chat <- chat_openai("Be terse", model = "gpt-5.4-mini")

使用前须知

  • 大多数托管服务提供商需要 API 密钥,使用可能产生费用。
  • 该项目生命周期标记为实验性,接口可能发生变化。
  • 元数据中未明确标识许可证。

收录于专题

标签

常见问题

ellmer 是什么?
一个 R 语言包,用于在 R 中调用大语言模型 API,支持对话、流式输出、工具调用和结构化数据提取。 ellmer 让 R 用户可以直接在 R 代码和控制台中调用大语言模型。它支持 Anthropic、OpenAI、Google Gemini、AWS Bedrock、Azure OpenAI、Ollama 等多家服务商,以及若干社区维护的提供方,因此同一套流程既可以连接云端模型,也可以运行本地模型。
ellmer 可以免费使用吗?用的什么许可证?
ellmer 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
ellmer 还在维护吗?
活跃维护中。ellmer 最近一次提交是在 2026年11月6日。
ellmer 适合用来做什么?
在 R 分析脚本中加入大模型驱动的摘要或分类步骤。 将文本中的信息提取为结构化字段并存入数据框。 通过 Ollama 运行本地模型,让数据保留在自己的机器上。 构建让模型调用自定义 R 函数的工具。
ellmer 怎么安装和运行?
从 CRAN 安装 ellmer: install.packages("ellmer") 加载软件包并创建聊天对象(需要先在环境变量中保存提供商的 API 密钥): library(ellmer) chat <- chat_openai("Be terse", model = "gpt-5.4-mini")
在哪里获取 ellmer?
源代码和安装说明在 GitHub 上:https://github.com/tidyverse/ellmer

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目