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 & completion – 간단한
client.chat.completions.create호출. - 스트리밍 – 점진적인 토큰 출력을 위한 Server‑Sent Events (SSE).
- Agents(베타) – 장기 실행 에이전트 세션 생성, 최종 구조화 결과 검색, 생성된 아티팩트 다운로드.
- Realtime WebSockets – 블록 범위 텍스트, 전사, 음성, WebRTC 호출 제어.
- Responses WebSocket – 지속적인 다중화 응답 생성.
- 파일 처리 – 업로드, 처리 폴링, 호스팅 환경용 파일 스테이징, 아티팩트 다운로드.
- 사용자 정의 HTTP 전송 – 사용자 정의 클라이언트를 플러그인할 수 있습니다 (예: 연결 풀링, mTLS, 특수 프록시 로직).
- 프로바이더 통합 – Azure OpenAI, Amazon Bedrock, 워크로드 ID 인증을 지원합니다.
일반적인 사용 사례
- Ruby 웹 또는 백그라운드 서비스에서 챗봇, 어시스턴트 또는 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"]) # env var이 설정되면 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, vector stores 등) 지원.
라이선스
- MIT 라이선스에 따라 배포됩니다 (리포지토리의 LICENSE 파일 참조).
이 요약은 openai/openai‑ruby 리포지토리의 README 내용만 기반으로 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트