chat_gpt_error_handler 0.1.1 → 0.2.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 +4 -4
- data/README.md +2 -1
- data/lib/chat_gpt_error_handler/error_handler.rb +16 -4
- data/lib/chat_gpt_error_handler/version.rb +1 -1
- data/lib/chat_gpt_error_handler.rb +4 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f060d15937f7fa9046e4ab5a2d417d5594900fef00b4302de4c7835c5c05d59
|
4
|
+
data.tar.gz: c02b547ce605567394c4e49ff564d953dbb9ded90bcde3999106e3a83b1006d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f412184b2e243fb0445081a6d2ad98cad4e7aecdddd394ae8d5d4543fc79aecac2b139d2d6baa9f862c2df78f2aea09cddf3ea0e7ab23706cd84ee872b09f24b
|
7
|
+
data.tar.gz: 209e6fa81d297e0592d20963a9d323eed1bf4feaa6d8650498fcb6f82064157382ea1411db5214de20c2a158415cbbf8d6c9c3e5e3fb932b129199a761af7bcc
|
data/README.md
CHANGED
@@ -12,11 +12,12 @@ Add this line to your application's Gemfile:
|
|
12
12
|
gem "chat_gpt_error_handler"
|
13
13
|
```
|
14
14
|
|
15
|
-
Set your [OpenAI API Token](https://openai.com/product#made-for-developers) in an initializer:
|
15
|
+
Set your [OpenAI API Token](https://openai.com/product#made-for-developers) and enable the gem in an initializer:
|
16
16
|
|
17
17
|
```ruby
|
18
18
|
# config/initializers/chat_gpt_error_handler.rb
|
19
19
|
ChatGptErrorHandler.openai_access_token = 'your_openai_access_token_here'
|
20
|
+
ChatGptErrorHandler.enabled = true
|
20
21
|
```
|
21
22
|
|
22
23
|
And you're off!
|
@@ -5,8 +5,10 @@ module ChatGptErrorHandler
|
|
5
5
|
class ErrorHandler
|
6
6
|
def initialize(app)
|
7
7
|
@app = app
|
8
|
-
|
9
|
-
|
8
|
+
if ChatGptErrorHandler.enabled
|
9
|
+
OpenAI.configure do |config|
|
10
|
+
config.access_token = ChatGptErrorHandler.openai_access_token || ENV.fetch('OPENAI_ACCESS_TOKEN')
|
11
|
+
end
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
@@ -14,7 +16,7 @@ module ChatGptErrorHandler
|
|
14
16
|
begin
|
15
17
|
@app.call(env)
|
16
18
|
rescue => error
|
17
|
-
send_to_gpt(error)
|
19
|
+
send_to_gpt(error) if ChatGptErrorHandler.enabled
|
18
20
|
raise error
|
19
21
|
end
|
20
22
|
end
|
@@ -43,6 +45,17 @@ module ChatGptErrorHandler
|
|
43
45
|
stop: nil
|
44
46
|
}
|
45
47
|
)
|
48
|
+
|
49
|
+
# Try a second time if the response is empty. Raise the second time
|
50
|
+
if response["choices"].nil?
|
51
|
+
if @retried.nil?
|
52
|
+
@retried = true
|
53
|
+
redo
|
54
|
+
else
|
55
|
+
raise "GPT returned an empty response to your error message."
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
46
59
|
response_text = response["choices"].map { |c| c["text"].to_s }
|
47
60
|
|
48
61
|
response_text = response_text.join("")
|
@@ -67,7 +80,6 @@ module ChatGptErrorHandler
|
|
67
80
|
|
68
81
|
print_error_and_solution(error, shortened_response_text.strip)
|
69
82
|
rescue => gpt_error
|
70
|
-
require 'debug'; debugger
|
71
83
|
puts "\e[31mAn error occurred while communicating with GPT:\e[0m"
|
72
84
|
puts gpt_error.message
|
73
85
|
puts gpt_error.backtrace
|
@@ -2,8 +2,11 @@ require "chat_gpt_error_handler/version"
|
|
2
2
|
require "chat_gpt_error_handler/engine"
|
3
3
|
|
4
4
|
module ChatGptErrorHandler
|
5
|
-
mattr_accessor :openai_access_token
|
5
|
+
mattr_accessor :openai_access_token, :enabled
|
6
6
|
|
7
7
|
# Default value for the openai_access_token, used when not explicitly set by the user
|
8
8
|
@@openai_access_token = nil
|
9
|
+
|
10
|
+
# Default value to allow opting-in
|
11
|
+
@@enabled = false
|
9
12
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chat_gpt_error_handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Schwaderer
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -74,7 +74,7 @@ licenses:
|
|
74
74
|
metadata:
|
75
75
|
homepage_uri: https://github.com/schwad/chat_gpt_error_handler
|
76
76
|
source_code_uri: https://github.com/schwad/chat_gpt_error_handler
|
77
|
-
post_install_message:
|
77
|
+
post_install_message:
|
78
78
|
rdoc_options: []
|
79
79
|
require_paths:
|
80
80
|
- lib
|
@@ -89,8 +89,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
requirements: []
|
92
|
-
rubygems_version: 3.
|
93
|
-
signing_key:
|
92
|
+
rubygems_version: 3.0.3.1
|
93
|
+
signing_key:
|
94
94
|
specification_version: 4
|
95
95
|
summary: Helpful ChatGpt hints for your Rails app
|
96
96
|
test_files: []
|