https://github.com/tidyverse/ellmer
https://ellmer.tidyverse.org
A hacker’s guide to open source LLMs
Learning more
ellmer comes with a bunch of vignettes to help you learn more:
Learn key vocabulary and see example use cases in vignette("ellmer")
.
Learn how to design your prompt in vignette("prompt-design")
.
Learn about tool/function calling in vignette("tool-calling")
.
Learn how to extract structured data in vignette("structured-data")
.
Learn about streaming and async APIs in vignette("streaming-async")
.
ellmer: 使用 R 语言调用大型语言模型
Call LLM APIs from R
项目概览 / Overview
Code
#------------------------------------------------------------r20250226110634
install.packages("ellmer") # 从CRAN安装 / Install from CRAN
核心功能 / Key Features
支持的模型提供商 / Supported Providers
- Anthropic’s Claude:
chat_claude()
.
- AWS Bedrock:
chat_bedrock()
.
- Azure OpenAI:
chat_azure()
.
- Databricks:
chat_databricks()
.
- DeepSeek:
chat_deepseek()
.
- GitHub model marketplace:
chat_github()
.
- Google Gemini:
chat_gemini()
.
- Groq:
chat_groq()
.
- Ollama:
chat_ollama()
.
- OpenAI:
chat_openai()
.
- OpenRouter:
chat_openrouter()
.
- perplexity.ai:
chat_perplexity()
.
- Snowflake Cortex:
chat_snowflake()
and chat_cortex_analyst()
.
- VLLM:
chat_vllm()
.
模型选择的现在
对于组织,有很多的限制到云上的api
Code
#------------------------------------------------------------r20250226111421
library(ellmer)
Code
#------------------------------------------------------------r20250226122533
# 本地Ollama调用示例 / Local Ollama example
library(ellmer)
chat <- chat_ollama(model = "deepseek-r1:32b")
特色功能 / Features
- 流式输出响应 / Streaming outputs
- 工具函数调用 / Tool/function calling
- 结构化数据提取 / Structured data extraction
- 多模态支持(图像分析) / Multimodal inputs
认证配置 / Authentication
API密钥管理 / API Keys
# 推荐使用环境变量存储密钥 / Store keys in environment variables
Sys.setenv(
ANTHROPIC_API_KEY = "your_key",
OPENAI_API_KEY = "your_key"
)
云服务认证 / Cloud Providers
- Azure/Bedrock/Databricks 自动检测IAM凭证
- Posit Workbench/Connect 集成支持
使用示例 / Usage Examples
交互式控制台 / Interactive Console
live_console(chat) # 启动命令行交互 / Start CLI chat
#> Entering chat console. Use""" for multi-line input.
#> Press Ctrl+C to quit.
编程式调用 / Programmatic Usage
# 基础问答 / Basic QA
response <- chat$chat("R语言的主要创造者是谁?")
print(response)
#> Ross Ihaka和Robert Gentleman于1993年创建
# 图像分析 / Image Analysis
chat$chat(
content_image_url("https://example.com/logo.png"),
"请描述这个logo的设计特点"
)
多轮对话 / Multi-turn Chat
chat$chat("量子纠缠的基本原理是什么?") # 第一轮提问 / First query
chat$chat("这对量子计算有什么影响?") # 延续对话 / Follow-up
部署建议 / Deployment
本地模型优化 / Local Models
# 启动Ollama服务器 / Start Ollama server
OLLAMA_MODEL=deepseek-r1:32b ollama serve