Project

lex-openai

0.0
No release in over 3 years
Connects LegionIO to OpenAI
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

 Project Readme

lex-openai

OpenAI integration for LegionIO. Provides runners for chat completions, image generation, audio processing, embeddings, file management, and content moderation via the OpenAI API.

Installation

gem install lex-openai

Or add to your Gemfile:

gem 'lex-openai'

Functions

Chat

  • create - Create a chat completion

Models

  • list - List available models
  • retrieve - Get model details
  • delete - Delete a fine-tuned model

Images

  • generate - Generate images from text prompts (DALL-E 3 default)
  • edit - Edit images with text prompts and masks (DALL-E 2)
  • variation - Create variations of an image (DALL-E 2)

Audio

  • speech - Generate speech from text (TTS, default model: tts-1)
  • transcribe - Transcribe audio to text (Whisper)
  • translate - Translate audio to English text (Whisper)

Embeddings

  • create - Generate vector embeddings (default model: text-embedding-3-small)

Files

  • list - List uploaded files
  • upload - Upload a file
  • retrieve - Get file metadata
  • delete - Delete a file
  • content - Download file content

Moderations

  • create - Classify content for policy compliance

Configuration

Set your API key in your LegionIO settings:

{
  "openai": {
    "api_key": "sk-..."
  }
}

Standalone Usage

Runner modules can be extended directly onto any module or object. Each runner method requires api_key: as a keyword argument.

require 'legion/extensions/openai/runners/chat'
require 'legion/extensions/openai/runners/images'

# Chat completion
module ChatClient
  extend Legion::Extensions::Openai::Runners::Chat
end

result = ChatClient.create(
  model: 'gpt-4o',
  messages: [{ role: 'user', content: 'Hello!' }],
  api_key: ENV['OPENAI_API_KEY']
)
puts result[:result]['choices'].first['message']['content']

# Image generation
module ImageClient
  extend Legion::Extensions::Openai::Runners::Images
end

image = ImageClient.generate(
  prompt: 'A futuristic city at sunset',
  model: 'dall-e-3',
  api_key: ENV['OPENAI_API_KEY']
)
puts image[:result]['data'].first['url']

Dependencies

  • faraday >= 2.0 - HTTP client
  • faraday-multipart >= 1.0 - Multipart file uploads (images, audio, files)
  • multi_json - JSON parser abstraction

Requirements

  • Ruby >= 3.4
  • LegionIO framework (optional for standalone runner usage)
  • OpenAI API key

License

MIT