chatgpt-ruby 1.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ab25c3c1b76e0b3249dbeba1c4b0772c4c6f7d34580005f3888ff09c2829453
4
- data.tar.gz: 3feffdb2bed24d6464bdd945b6a94abb1a752567fac19d2866b5430dfffda019
3
+ metadata.gz: adc49f5bb5b5d4862838cbb111ecd00bccf7a4adc3b7edb23b8f4e5157da2a8b
4
+ data.tar.gz: f4ec243a9aeeb0ee03c82b58241d9df097a2985ca7ba15a77707645b3922ff13
5
5
  SHA512:
6
- metadata.gz: d42c42272c0f17cecc040f2796f08181cc858b744a5fbf33d6a26c31aa8990352b6f022832a6b9b61d25cf9b8577939783a93ce6e250a3c4458dfec16d4d43f1
7
- data.tar.gz: f9a3cd15ff2901c09361ba53dd71d3ea7263669069126672b390444b11a8d660805cb34a7ea71b792afd5208c6971c3d374d58e3bb74fe2cccbc4af3a23baa5d
6
+ metadata.gz: 8b7edafba1fdf4d46adada02994ea92ced8c510b11bfe03fadcf4445e39813b169a594f4baae6ae5cddb44d2146d8111827a328f5e424174826ab4eecbb2d0c0
7
+ data.tar.gz: d5c1d54f84fe5c478bbffc2d85571e9f139072a460272152088dc85e84bbbfa8b24a5b53df3030602ba22de0cbcdad019fef0f7a5ef99f718c8d1e89d18bfbf5
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [2.0.0] - 2023-07-08
2
+
3
+ ### Added
4
+
5
+ - Added support for chat interactions with the GPT-3.5-turbo model.
6
+ - Introduced a new `chat` method to the `ChatGPT::Client` class, which sends an array of chat messages to the API and receives the generated messages in return.
7
+ - Updated the README to provide usage instructions for the new `chat` method.
8
+
1
9
  ## [1.0.0] - 2023-04-30
2
10
 
3
11
  ### Added
@@ -6,8 +14,6 @@
6
14
  - Implements ChatGPT Client with methods for completions, search, classification, summary, and answer generation.
7
15
  - Includes unit tests for each method.
8
16
 
9
- ## [Unreleased]
10
-
11
17
  ## [0.1.0] - 2023-03-22
12
18
 
13
- - Initial release
19
+ - Initial release
data/README.md CHANGED
@@ -62,6 +62,56 @@ puts completions["choices"].map { |c| c["text"] }
62
62
  # Output: an array of completion strings
63
63
  ```
64
64
 
65
+ ## Chat
66
+
67
+ The `chat` method allows for a dynamic conversation with the GPT model. It requires an array of messages where each message is a hash with two properties: `role` and `content`.
68
+
69
+ `role` can be:
70
+ - `'system'`: Used for instructions that guide the conversation.
71
+ - `'user'`: Represents the user's input.
72
+ - `'assistant'`: Represents the model's output.
73
+
74
+ `content` contains the text message from the corresponding role.
75
+
76
+ Here is how you would start a chat:
77
+
78
+ ```ruby
79
+
80
+ # Define the conversation messages
81
+ messages = [
82
+ {
83
+ role: "system",
84
+ content: "You are a helpful assistant."
85
+ },
86
+ {
87
+ role: "user",
88
+ content: "Who won the world series in 2020?"
89
+ }
90
+ ]
91
+
92
+ # Start a chat
93
+ response = client.chat(messages)
94
+ ```
95
+
96
+ The response will be a hash containing the model's message(s). You can extract the assistant's message like this:
97
+
98
+ ```ruby
99
+
100
+ puts response['choices'][0]['message']['content'] # Outputs the assistant's message
101
+ ```
102
+
103
+ The conversation can be continued by extending the `messages` array and calling the `chat` method again:
104
+
105
+ ```ruby
106
+
107
+ messages << {role: "user", content: "Tell me more about it."}
108
+
109
+ response = client.chat(messages)
110
+ puts response['choices'][0]['message']['content'] # Outputs the assistant's new message
111
+ ```
112
+
113
+ With this method, you can build an ongoing conversation with the model.
114
+
65
115
  ## Development
66
116
 
67
117
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -52,6 +52,35 @@ module ChatGPT
52
52
  request_api(url, data)
53
53
  end
54
54
 
55
+
56
+ # This method sends a chat message to the API
57
+ #
58
+ # @param messages [Array<Hash>] The array of messages for the conversation.
59
+ # Each message is a hash with a `role` and `content` key. The `role` key can be 'system', 'user', or 'assistant',
60
+ # and the `content` key contains the text of the message.
61
+ #
62
+ # @param params [Hash] Optional parameters for the chat request. This can include the 'model' key to specify
63
+ # the model to be used for the chat. If no 'model' key is provided, 'gpt-3.5-turbo' is used by default.
64
+ #
65
+ # @return [Hash] The response from the API.
66
+ def chat(messages, params = {})
67
+ # Set default parameters
68
+ model = params[:model] || 'gpt-3.5-turbo'
69
+
70
+ # Construct the URL for the chat request
71
+ url = "#{@endpoint}/chat/completions"
72
+
73
+ # Prepare the data for the request. The data is a hash with 'model' and 'messages' keys.
74
+ data = {
75
+ model: model,
76
+ messages: messages
77
+ }
78
+
79
+ # Make the API request and return the response.
80
+ request_api(url, data)
81
+ end
82
+
83
+
55
84
  private
56
85
  # Make a request to the API
57
86
  #
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Chatgpt
4
4
  module Ruby
5
- VERSION = "1.1.0"
5
+ VERSION = "2.0.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chatgpt-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nagendra Dhanakeerthi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-03 00:00:00.000000000 Z
11
+ date: 2023-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client