Class: GPT::Responses

Inherits:
Object
  • Object
show all
Defined in:
lib/gpt/responses.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Responses

Returns a new instance of Responses.



3
4
5
# File 'lib/gpt/responses.rb', line 3

def initialize(client)
  @client = client
end

Instance Method Details

#cancel(response_id) ⇒ Object



24
25
26
# File 'lib/gpt/responses.rb', line 24

def cancel(response_id)
  @client.json_post("/v1/responses/#{response_id}/cancel")
end

#create(payload) ⇒ Object



7
8
9
# File 'lib/gpt/responses.rb', line 7

def create(payload)
  @client.json_post('/v1/responses', body: payload)
end

#delete(response_id) ⇒ Object



20
21
22
# File 'lib/gpt/responses.rb', line 20

def delete(response_id)
  @client.json_delete("/v1/responses/#{response_id}")
end

#get(response_id, include: nil, include_obfuscation: nil, starting_after: nil, stream: nil) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/gpt/responses.rb', line 11

def get(response_id, include: nil, include_obfuscation: nil, starting_after: nil, stream: nil)
  query = {}
  query['include[]'] = include if include
  query['include_obfuscation'] = include_obfuscation unless include_obfuscation.nil?
  query['starting_after'] = starting_after if starting_after
  query['stream'] = stream unless stream.nil?
  @client.json_get("/v1/responses/#{response_id}", query: query)
end

#input_items(response_id, after: nil, before: nil, include: nil, limit: nil, order: nil) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/gpt/responses.rb', line 28

def input_items(response_id, after: nil, before: nil, include: nil, limit: nil, order: nil)
  query = {}
  query['after'] = after if after
  query['before'] = before if before
  query['include[]'] = include if include
  query['limit'] = limit if limit
  query['order'] = order if order
  @client.json_get("/v1/responses/#{response_id}/input_items", query: query)
end

#stream(payload) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/gpt/responses.rb', line 38

def stream(payload)
  payload = payload.dup
  payload['stream'] = true
  @client.sse_stream('/v1/responses', body: payload) do |chunk|
    yield chunk if block_given?
  end
end