Skip to content

Commit 67fe61d

Browse files
committed
Added non-blocked API request
1 parent 0e6c782 commit 67fe61d

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

ChatGPT.py

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import json
22
import sublime
33
import sublime_plugin
4+
import threading
45

56
import urllib.request as request
67

@@ -59,15 +60,28 @@ def show_input_done(self, input_string):
5960

6061
self.view.settings().set('show_input_last', input_string)
6162

62-
contents = self.request(input_string).replace('\\', '\\\\').replace('$', '\\$')
63+
Request(self.view, self.settings, input_string).start()
6364

64-
self.debug('show_input_done[contents]', contents)
65+
def debug(self, key, value):
66+
if (self.settings['debug']):
67+
print(key, value)
68+
69+
class Request(threading.Thread):
70+
def __init__(self, view, settings, prompt):
71+
self.view = view
72+
self.settings = settings
73+
self.prompt = prompt
74+
75+
super(Request, self).__init__()
76+
77+
def run(self):
78+
contents = self.request().replace('\\', '\\\\').replace('$', '\\$')
6579

6680
self.view.run_command('insert_snippet', {'contents': contents})
6781

68-
def request(self, input_string):
82+
def request(self):
6983
response = self.request_response()
70-
data = self.request_data(input_string)
84+
data = self.request_data()
7185
timeout = self.settings['timeout']
7286

7387
self.debug('request[data]', data)
@@ -101,9 +115,9 @@ def request_headers(self):
101115
'Content-Type': 'application/json'
102116
}
103117

104-
def request_data(self, input_string):
118+
def request_data(self):
105119
return json.dumps({
106-
'prompt': input_string,
120+
'prompt': self.prompt,
107121
'model': self.settings['model'],
108122
'temperature': self.settings['temperature'],
109123
'max_tokens': self.settings['max_tokens']

0 commit comments

Comments
 (0)