Skip to content

Commit ea76af6

Browse files
committed
Add all responses endpoints
1 parent 9e236ff commit ea76af6

15 files changed

+841
-124
lines changed

lib/openai.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
require_relative "openai/finetunes"
88
require_relative "openai/images"
99
require_relative "openai/models"
10+
require_relative "openai/responses"
1011
require_relative "openai/assistants"
1112
require_relative "openai/threads"
1213
require_relative "openai/messages"

lib/openai/client.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ def completions(parameters: {})
3232
json_post(path: "/completions", parameters: parameters)
3333
end
3434

35-
def responses(parameters: {})
36-
json_post(path: "/responses", parameters: parameters)
37-
end
38-
3935
def audio
4036
@audio ||= OpenAI::Audio.new(client: self)
4137
end
@@ -56,6 +52,10 @@ def models
5652
@models ||= OpenAI::Models.new(client: self)
5753
end
5854

55+
def responses
56+
@responses ||= OpenAI::Responses.new(client: self)
57+
end
58+
5959
def assistants
6060
@assistants ||= OpenAI::Assistants.new(client: self)
6161
end

lib/openai/responses.rb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
module OpenAI
2+
class Responses
3+
def initialize(client:)
4+
@client = client
5+
end
6+
7+
def create(parameters: {})
8+
@client.json_post(path: "/responses", parameters: parameters)
9+
end
10+
11+
def retrieve(response_id:)
12+
@client.get(path: "/responses/#{response_id}")
13+
end
14+
15+
def delete(response_id:)
16+
@client.delete(path: "/responses/#{response_id}")
17+
end
18+
19+
def input_items(response_id:, parameters: {})
20+
@client.get(path: "/responses/#{response_id}/input_items", parameters: parameters)
21+
end
22+
end
23+
end

spec/fixtures/cassettes/delete_response.yml

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/cassettes/delete_response_setup.yml

Lines changed: 119 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/cassettes/gpt-4o_responsesapi_responses.yml

Lines changed: 12 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)