修改配置的读取方式
Browse files- check_proxy.py +4 -3
- main.py +4 -3
- predict.py +5 -3
- toolbox.py +18 -6
check_proxy.py
CHANGED
@@ -21,6 +21,7 @@ def check_proxy(proxies):
|
|
21 |
|
22 |
if __name__ == '__main__':
|
23 |
import os; os.environ['no_proxy'] = '*' # 避免代理网络产生意外污染
|
24 |
-
|
25 |
-
|
26 |
-
check_proxy(proxies)
|
|
|
|
21 |
|
22 |
if __name__ == '__main__':
|
23 |
import os; os.environ['no_proxy'] = '*' # 避免代理网络产生意外污染
|
24 |
+
from toolbox import get_conf
|
25 |
+
proxies, = get_conf('proxies')
|
26 |
+
check_proxy(proxies)
|
27 |
+
|
main.py
CHANGED
@@ -1,11 +1,12 @@
|
|
1 |
import os; os.environ['no_proxy'] = '*' # 避免代理网络产生意外污染
|
2 |
import gradio as gr
|
3 |
from predict import predict
|
4 |
-
from toolbox import format_io, find_free_port, on_file_uploaded, on_report_generated
|
5 |
|
6 |
# 建议您复制一个config_private.py放自己的秘密, 如API和代理网址, 避免不小心传github被别人看到
|
7 |
-
|
8 |
-
|
|
|
9 |
|
10 |
# 如果WEB_PORT是-1, 则随机选取WEB端口
|
11 |
PORT = find_free_port() if WEB_PORT <= 0 else WEB_PORT
|
|
|
1 |
import os; os.environ['no_proxy'] = '*' # 避免代理网络产生意外污染
|
2 |
import gradio as gr
|
3 |
from predict import predict
|
4 |
+
from toolbox import format_io, find_free_port, on_file_uploaded, on_report_generated, get_conf
|
5 |
|
6 |
# 建议您复制一个config_private.py放自己的秘密, 如API和代理网址, 避免不小心传github被别人看到
|
7 |
+
proxies, WEB_PORT, LLM_MODEL, CONCURRENT_COUNT, AUTHENTICATION = \
|
8 |
+
get_conf('proxies', 'WEB_PORT', 'LLM_MODEL', 'CONCURRENT_COUNT', 'AUTHENTICATION')
|
9 |
+
|
10 |
|
11 |
# 如果WEB_PORT是-1, 则随机选取WEB端口
|
12 |
PORT = find_free_port() if WEB_PORT <= 0 else WEB_PORT
|
predict.py
CHANGED
@@ -20,10 +20,12 @@ import importlib
|
|
20 |
|
21 |
# config_private.py放自己的秘密如API和代理网址
|
22 |
# 读取时首先看是否存在私密的config_private配置文件(不受git管控),如果有,则覆盖原config文件
|
23 |
-
|
24 |
-
|
|
|
25 |
|
26 |
-
timeout_bot_msg = '[
|
|
|
27 |
|
28 |
def get_full_error(chunk, stream_response):
|
29 |
"""
|
|
|
20 |
|
21 |
# config_private.py放自己的秘密如API和代理网址
|
22 |
# 读取时首先看是否存在私密的config_private配置文件(不受git管控),如果有,则覆盖原config文件
|
23 |
+
from toolbox import get_conf
|
24 |
+
proxies, API_URL, API_KEY, TIMEOUT_SECONDS, MAX_RETRY, LLM_MODEL = \
|
25 |
+
get_conf('proxies', 'API_URL', 'API_KEY', 'TIMEOUT_SECONDS', 'MAX_RETRY', 'LLM_MODEL')
|
26 |
|
27 |
+
timeout_bot_msg = '[Local Message] Request timeout. Network error. Please check proxy settings in config.py.' + \
|
28 |
+
'网络错误,检查代理服务器是否可用,以及代理设置的格式是否正确,格式须是[协议]://[地址]:[端口],缺一不可。'
|
29 |
|
30 |
def get_full_error(chunk, stream_response):
|
31 |
"""
|
toolbox.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
import markdown, mdtex2html, threading
|
2 |
from show_math import convert as convert_math
|
3 |
from functools import wraps
|
4 |
|
@@ -7,9 +7,9 @@ def predict_no_ui_but_counting_down(i_say, i_say_show_user, chatbot, top_p, temp
|
|
7 |
调用简单的predict_no_ui接口,但是依然保留了些许界面心跳功能,当对话太长时,会自动采用二分法截断
|
8 |
"""
|
9 |
import time
|
10 |
-
try: from config_private import TIMEOUT_SECONDS, MAX_RETRY
|
11 |
-
except: from config import TIMEOUT_SECONDS, MAX_RETRY
|
12 |
from predict import predict_no_ui
|
|
|
|
|
13 |
# 多线程的时候,需要一个mutable结构在不同线程之间传递信息
|
14 |
# list就是最简单的mutable结构,我们第一个位置放gpt输出,第二个位置传递报错信息
|
15 |
mutable = [None, '']
|
@@ -80,10 +80,9 @@ def CatchException(f):
|
|
80 |
try:
|
81 |
yield from f(txt, top_p, temperature, chatbot, history, systemPromptTxt, WEB_PORT)
|
82 |
except Exception as e:
|
83 |
-
import traceback
|
84 |
from check_proxy import check_proxy
|
85 |
-
|
86 |
-
|
87 |
tb_str = regular_txt_to_markdown(traceback.format_exc())
|
88 |
chatbot[-1] = (chatbot[-1][0], f"[Local Message] 实验性函数调用出错: \n\n {tb_str} \n\n 当前代理可用性: \n\n {check_proxy(proxies)}")
|
89 |
yield chatbot, history, f'异常 {e}'
|
@@ -218,3 +217,16 @@ def on_report_generated(files, chatbot):
|
|
218 |
# files.extend(report_files)
|
219 |
chatbot.append(['汇总报告如何远程获取?', '汇总报告已经添加到右侧文件上传区,请查收。'])
|
220 |
return report_files, chatbot
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import markdown, mdtex2html, threading, importlib, traceback
|
2 |
from show_math import convert as convert_math
|
3 |
from functools import wraps
|
4 |
|
|
|
7 |
调用简单的predict_no_ui接口,但是依然保留了些许界面心跳功能,当对话太长时,会自动采用二分法截断
|
8 |
"""
|
9 |
import time
|
|
|
|
|
10 |
from predict import predict_no_ui
|
11 |
+
from toolbox import get_conf
|
12 |
+
TIMEOUT_SECONDS, MAX_RETRY = get_conf('TIMEOUT_SECONDS', 'MAX_RETRY')
|
13 |
# 多线程的时候,需要一个mutable结构在不同线程之间传递信息
|
14 |
# list就是最简单的mutable结构,我们第一个位置放gpt输出,第二个位置传递报错信息
|
15 |
mutable = [None, '']
|
|
|
80 |
try:
|
81 |
yield from f(txt, top_p, temperature, chatbot, history, systemPromptTxt, WEB_PORT)
|
82 |
except Exception as e:
|
|
|
83 |
from check_proxy import check_proxy
|
84 |
+
from toolbox import get_conf
|
85 |
+
proxies, = get_conf('proxies')
|
86 |
tb_str = regular_txt_to_markdown(traceback.format_exc())
|
87 |
chatbot[-1] = (chatbot[-1][0], f"[Local Message] 实验性函数调用出错: \n\n {tb_str} \n\n 当前代理可用性: \n\n {check_proxy(proxies)}")
|
88 |
yield chatbot, history, f'异常 {e}'
|
|
|
217 |
# files.extend(report_files)
|
218 |
chatbot.append(['汇总报告如何远程获取?', '汇总报告已经添加到右侧文件上传区,请查收。'])
|
219 |
return report_files, chatbot
|
220 |
+
|
221 |
+
def get_conf(*args):
|
222 |
+
# 建议您复制一个config_private.py放自己的秘密, 如API和代理网址, 避免不小心传github被别人看到
|
223 |
+
res = []
|
224 |
+
for arg in args:
|
225 |
+
try: r = getattr(importlib.import_module('config_private'), arg)
|
226 |
+
except: r = getattr(importlib.import_module('config'), arg)
|
227 |
+
res.append(r)
|
228 |
+
# 在读取API_KEY时,检查一下是不是忘了改config
|
229 |
+
if arg=='API_KEY' and len(r) != 51:
|
230 |
+
assert False, "正确的API_KEY密钥是51位,请在config文件中修改API密钥, 添加海外代理之后再运行。" + \
|
231 |
+
"(如果您刚更新过代码,请确保旧版config_private文件中没有遗留任何新增键值)"
|
232 |
+
return res
|