openai/openai-ruby
Official Ruby SDK for the OpenAI API
openai/openai‑ruby – OpenAI API 官方 Ruby 客户端
它是什么
- 一个封装 OpenAI REST API 的 Ruby gem,让 Ruby 3.3+ 应用程序可以调用 GPT‑4、Whisper、DALL‑E 以及更新的 Realtime 和 Agents 端点等模型。
- 提供类型化的请求/响应对象、Yard 文档、用于 Sorbet 的 RBS/RBI 文件,以及内置的分页、流式和文件上传辅助功能。
主要能力
- Chat 和补全 – 简单的
client.chat.completions.create调用。 - 流式传输 – Server‑Sent Events (SSE) 用于增量 token 输出。
- Agents(测试版) – 创建长时间运行的代理会话,检索最终结构化结果,并下载生成的工件。
- Realtime WebSockets – 块范围文本、转写、语音和 WebRTC 通话控制。
- Responses WebSocket – 持久的多路复用响应创建。
- 文件处理 – 上传、处理轮询、为托管环境暂存文件、下载工件。
- 自定义 HTTP 传输 – 可插入您自己的客户端(例如用于连接池、mTLS 或特殊代理逻辑)。
- 提供商集成 – 支持 Azure OpenAI、Amazon Bedrock 和工作负载身份验证。
典型使用场景
- 在 Ruby Web 或后台服务中构建聊天机器人、助手或任何 LLM 驱动的功能。
- 直接从 Ruby 代码生成图像、音频或转写。
- 运行需要有状态交互和文件 I/O 的长时间运行的代理工作流。
- 使用 Realtime WebSocket API 的实时语音或文本应用。
- 在不更改代码的情况下集成 Azure OpenAI 或 AWS Bedrock。
安装
# 在 Gemfile 中
"gem "openai", "~> 0.103.0""
运行 bundle install。该 gem 适用于 Ruby 3.3 或更高版本。
快速开始
require "bundler/setup"
require "openai"
client = OpenAI::Client.new(api_key: ENV["OPENAI_API_KEY"]) # 如果设置了环境变量,key 可选
# 简单聊天补全
resp = client.chat.completions.create(
model: "gpt-4o-mini",
messages: [{role: "user", content: "Say this is a test"}]
)
puts resp
流式示例
stream = client.responses.stream(input: "Write a haiku about OpenAI.", model: "gpt-4o-mini")
stream.each { |event| puts event.type }
Agent(测试版)示例
stream = client.beta.agents.sessions.create_streaming(
agent: {model: "gpt-4o-mini", instructions: "Summarize the policy clearly."},
environment: {type: :none},
input: "Explain this policy: ..."
)
result = stream.get_final_result
puts result.output_text
高级功能
- 使用
OpenAI::BaseModel子类声明结构化输出类型并自动解析。 - 使用
client.files.create上传本地文件,或使用client.beta.agents.environments.files.prepare为代理环境暂存。 - 通过构建带客户端证书的自定义
OpenAI::NetHTTPClient并将其传递给OpenAI::Client,启用互 TLS。 - 切换提供商:
client = OpenAI::Client.new(provider: OpenAI::Providers.azure(endpoint: ENV["AZURE_OPENAI_ENDPOINT"], api_key: ENV["AZURE_OPENAI_API_KEY"]))
成熟度和支持
- 由 OpenAI(官方存储库)积极维护。
- RubyDoc 和 OpenAI 平台文档提供全面文档。
- 支持最新 OpenAI 功能(Agents、Realtime、向量存储等),并带有测试版标志。
许可证
- 根据 MIT 许可证分发(请参阅存储库的 LICENSE 文件)。
此摘要仅基于 openai/openai‑ruby 存储库的 README 内容。
相关
- 项目
- 项目
- 项目
- 项目
- 项目