Class: LLM::OpenAI::Images
- Inherits:
-
Object
- Object
- LLM::OpenAI::Images
- Defined in:
- lib/llm/providers/openai/images.rb
Overview
The LLM::OpenAI::Images class provides an interface for OpenAI's images API. OpenAI's GPT Image models return base64-encoded image data.
Direct Known Subclasses
Instance Method Summary collapse
-
#create(prompt:, model: "gpt-image-1-mini", output_format: "png", **params) ⇒ LLM::Response
Create an image.
-
#edit(image:, prompt:, model: "gpt-image-1-mini", output_format: "png", **params) ⇒ LLM::Response
Edit an image.
-
#initialize(provider) ⇒ LLM::OpenAI::Responses
constructor
Returns a new Images object.
Constructor Details
#initialize(provider) ⇒ LLM::OpenAI::Responses
Returns a new Images object
21 22 23 |
# File 'lib/llm/providers/openai/images.rb', line 21 def initialize(provider) @provider = provider end |
Instance Method Details
#create(prompt:, model: "gpt-image-1-mini", output_format: "png", **params) ⇒ LLM::Response
Create an image
38 39 40 41 42 43 44 45 |
# File 'lib/llm/providers/openai/images.rb', line 38 def create(prompt:, model: "gpt-image-1-mini", output_format: "png", **params) req = LLM::Transport::Request.post(path("/images/generations"), headers) req.body = LLM.json.dump({prompt:, n: 1, model:, output_format:}.merge!(params)) res, span, tracer = execute(request: req, operation: "request") res = ResponseAdapter.adapt(res, type: :image) tracer.on_request_finish(operation: "request", model:, res:, span:) res end |
#edit(image:, prompt:, model: "gpt-image-1-mini", output_format: "png", **params) ⇒ LLM::Response
Edit an image
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/llm/providers/openai/images.rb', line 61 def edit(image:, prompt:, model: "gpt-image-1-mini", output_format: "png", **params) image = LLM.File(image) multi = LLM::Multipart.new(params.merge!(image:, prompt:, model:, output_format:)) req = LLM::Transport::Request.post(path("/images/edits"), headers) req["content-type"] = multi.content_type transport.set_body_stream(req, multi.body) res, span, tracer = execute(request: req, operation: "request") res = ResponseAdapter.adapt(res, type: :image) tracer.on_request_finish(operation: "request", model:, res:, span:) res end |