add timeout=180s
Browse files
app.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
import openai
|
2 |
import tiktoken
|
3 |
|
|
|
4 |
import collections
|
5 |
import threading
|
6 |
import datetime
|
@@ -110,12 +111,23 @@ def ask(query, max_attempt_times=3):
|
|
110 |
return answer
|
111 |
|
112 |
|
113 |
-
def askingChatGPT(qs, qas, min_interval_seconds=10):
|
114 |
|
115 |
for i, q in enumerate(qs):
|
116 |
ask_start_time = time.time()
|
117 |
|
118 |
-
a = ask(q)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
qas.append({"q":q, "a":a})
|
120 |
|
121 |
ask_end_time = time.time()
|
|
|
1 |
import openai
|
2 |
import tiktoken
|
3 |
|
4 |
+
import concurrent
|
5 |
import collections
|
6 |
import threading
|
7 |
import datetime
|
|
|
111 |
return answer
|
112 |
|
113 |
|
114 |
+
def askingChatGPT(qs, qas, min_interval_seconds=10, max_interval_seconds=120):
|
115 |
|
116 |
for i, q in enumerate(qs):
|
117 |
ask_start_time = time.time()
|
118 |
|
119 |
+
#a = ask(q)
|
120 |
+
def ask_(q):
|
121 |
+
with concurrent.futures.ThreadPoolExecutor() as executor:
|
122 |
+
future = executor.submit(ask, q) # 提交函数调用任务
|
123 |
+
try:
|
124 |
+
a = future.result(timeout=max_interval_seconds) # 等待函数调用任务完成,超时时间为5秒
|
125 |
+
return a
|
126 |
+
except concurrent.futures.TimeoutError:
|
127 |
+
print('ask call timed out after', max_interval_seconds, 'seconds, retrying...')
|
128 |
+
return ask_(q) # 当超时时,重新调用函数
|
129 |
+
a = ask_(q)
|
130 |
+
|
131 |
qas.append({"q":q, "a":a})
|
132 |
|
133 |
ask_end_time = time.time()
|