zhangjf commited on
Commit
cf0a4f4
1 Parent(s): b04f1ea

add timeout=180s

Browse files
Files changed (1) hide show
  1. app.py +14 -2
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()