Class: ChatGPT::Client
- Inherits:
-
Object
- Object
- ChatGPT::Client
- Defined in:
- lib/chatgpt/client.rb
Instance Method Summary collapse
- #chat(messages, params = {}) ⇒ Object
- #chat_stream(messages, params = {}, &block) ⇒ Object
- #completions(prompt, params = {}) ⇒ Object
-
#initialize(api_key = nil) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(api_key = nil) ⇒ Client
Returns a new instance of Client.
9 10 11 12 13 |
# File 'lib/chatgpt/client.rb', line 9 def initialize(api_key = nil) @api_key = api_key || ChatGPT.configuration.api_key @endpoint = 'https://api.openai.com/v1' @config = ChatGPT.configuration end |
Instance Method Details
#chat(messages, params = {}) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/chatgpt/client.rb', line 30 def chat(, params = {}) url = "#{@endpoint}/chat/completions" data = @config.default_parameters.merge( model: params[:model] || @config.default_engine, # Use configured default_engine messages: , temperature: params[:temperature], top_p: params[:top_p], n: params[:n], stream: params[:stream] || false ).compact request_api(url, data) end |
#chat_stream(messages, params = {}, &block) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/chatgpt/client.rb', line 45 def chat_stream(, params = {}, &block) raise ArgumentError, 'Block is required for streaming' unless block_given? url = "#{@endpoint}/chat/completions" data = @config.default_parameters.merge( model: params[:model] || @config.default_engine, # Use configured default_engine messages: , stream: true ).compact request_streaming(url, data, &block) end |
#completions(prompt, params = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/chatgpt/client.rb', line 15 def completions(prompt, params = {}) engine = params[:engine] || @config.default_engine url = "#{@endpoint}/engines/#{engine}/completions" data = @config.default_parameters.merge( prompt: prompt, max_tokens: params[:max_tokens], temperature: params[:temperature], top_p: params[:top_p], n: params[:n] ).compact request_api(url, data) end |