3v324v23 commited on
Commit
2c963cc
1 Parent(s): b0dfef4

交互优化

Browse files
Files changed (4) hide show
  1. config.py +1 -3
  2. functional_crazy.py +2 -2
  3. main.py +4 -4
  4. toolbox.py +23 -12
config.py CHANGED
@@ -16,15 +16,13 @@ if USE_PROXY:
16
  "http": "socks5h://localhost:11284",
17
  "https": "socks5h://localhost:11284",
18
  }
19
- print('网络代理状态:运行。')
20
  else:
21
  proxies = None
22
- print('网络代理状态:未配置。无代理状态下很可能无法访问。')
23
 
24
 
25
  # [step 3]>> 以下配置可以优化体验,但大部分场合下并不需要修改
26
  # 对话窗的高度
27
- CHATBOT_HEIGHT = 1117
28
 
29
  # 发送请求到OpenAI后,等待多久判定为超时
30
  TIMEOUT_SECONDS = 25
 
16
  "http": "socks5h://localhost:11284",
17
  "https": "socks5h://localhost:11284",
18
  }
 
19
  else:
20
  proxies = None
 
21
 
22
 
23
  # [step 3]>> 以下配置可以优化体验,但大部分场合下并不需要修改
24
  # 对话窗的高度
25
+ CHATBOT_HEIGHT = 1116
26
 
27
  # 发送请求到OpenAI后,等待多久判定为超时
28
  TIMEOUT_SECONDS = 25
functional_crazy.py CHANGED
@@ -18,7 +18,7 @@ def get_crazy_functionals():
18
  from crazy_functions.代码重写为全英文_多线程 import 全项目切换英文
19
 
20
  function_plugins = {
21
- "请解析并解构此项目本身": {
22
  "AsButton": False, # 加入下拉菜单中
23
  "Function": 解析项目本身
24
  },
@@ -30,7 +30,7 @@ def get_crazy_functionals():
30
  "Color": "stop", # 按钮颜色
31
  "Function": 解析一个C项目的头文件
32
  },
33
- "解析整个C++项目": {
34
  "Color": "stop", # 按钮颜色
35
  "AsButton": False, # 加入下拉菜单中
36
  "Function": 解析一个C项目
 
18
  from crazy_functions.代码重写为全英文_多线程 import 全项目切换英文
19
 
20
  function_plugins = {
21
+ "请解析并解构此项目本身(源码自译解)": {
22
  "AsButton": False, # 加入下拉菜单中
23
  "Function": 解析项目本身
24
  },
 
30
  "Color": "stop", # 按钮颜色
31
  "Function": 解析一个C项目的头文件
32
  },
33
+ "解析整个C++项目(.cpp/.h)": {
34
  "Color": "stop", # 按钮颜色
35
  "AsButton": False, # 加入下拉菜单中
36
  "Function": 解析一个C项目
main.py CHANGED
@@ -54,7 +54,7 @@ with gr.Blocks(theme=set_theme, analytics_enabled=False, css=advanced_css) as de
54
  stopBtn = gr.Button("停止", variant="secondary"); stopBtn.style(size="sm")
55
  with gr.Row():
56
  from check_proxy import check_proxy
57
- statusDisplay = gr.Markdown(f"Tip: 按Enter提交, 按Shift+Enter换行。当前模型: {LLM_MODEL} \n {check_proxy(proxies)}")
58
  with gr.Accordion("基础功能区", open=True) as area_basic_fn:
59
  with gr.Row():
60
  for k in functional:
@@ -93,8 +93,8 @@ with gr.Blocks(theme=set_theme, analytics_enabled=False, css=advanced_css) as de
93
  checkboxes.select(fn_area_visibility, [checkboxes], [area_basic_fn, area_crazy_fn] )
94
  # 整理反复出现的控件句柄组合
95
  input_combo = [txt, top_p, temperature, chatbot, history, system_prompt]
96
- output_combo = [chatbot, history, statusDisplay]
97
- predict_args = dict(fn=predict, inputs=input_combo, outputs=output_combo, show_progress=True)
98
  empty_txt_args = dict(fn=lambda: "", inputs=[], outputs=[txt]) # 用于在提交后清空输入栏
99
  # 提交按钮、重置按钮
100
  cancel_handles.append(txt.submit(**predict_args)) #; txt.submit(**empty_txt_args) 在提交后清空输入栏
@@ -102,7 +102,7 @@ with gr.Blocks(theme=set_theme, analytics_enabled=False, css=advanced_css) as de
102
  resetBtn.click(lambda: ([], [], "已重置"), None, output_combo)
103
  # 基础功能区的回调函数注册
104
  for k in functional:
105
- click_handle = functional[k]["Button"].click(predict, [*input_combo, gr.State(True), gr.State(k)], output_combo, show_progress=True)
106
  cancel_handles.append(click_handle)
107
  # 文件上传区,接收文件后与chatbot的互动
108
  file_upload.upload(on_file_uploaded, [file_upload, chatbot, txt], [chatbot, txt])
 
54
  stopBtn = gr.Button("停止", variant="secondary"); stopBtn.style(size="sm")
55
  with gr.Row():
56
  from check_proxy import check_proxy
57
+ status = gr.Markdown(f"Tip: 按Enter提交, 按Shift+Enter换行。当前模型: {LLM_MODEL} \n {check_proxy(proxies)}")
58
  with gr.Accordion("基础功能区", open=True) as area_basic_fn:
59
  with gr.Row():
60
  for k in functional:
 
93
  checkboxes.select(fn_area_visibility, [checkboxes], [area_basic_fn, area_crazy_fn] )
94
  # 整理反复出现的控件句柄组合
95
  input_combo = [txt, top_p, temperature, chatbot, history, system_prompt]
96
+ output_combo = [chatbot, history, status]
97
+ predict_args = dict(fn=predict, inputs=input_combo, outputs=output_combo)
98
  empty_txt_args = dict(fn=lambda: "", inputs=[], outputs=[txt]) # 用于在提交后清空输入栏
99
  # 提交按钮、重置按钮
100
  cancel_handles.append(txt.submit(**predict_args)) #; txt.submit(**empty_txt_args) 在提交后清空输入栏
 
102
  resetBtn.click(lambda: ([], [], "已重置"), None, output_combo)
103
  # 基础功能区的回调函数注册
104
  for k in functional:
105
+ click_handle = functional[k]["Button"].click(predict, [*input_combo, gr.State(True), gr.State(k)], output_combo)
106
  cancel_handles.append(click_handle)
107
  # 文件上传区,接收文件后与chatbot的互动
108
  file_upload.upload(on_file_uploaded, [file_upload, chatbot, txt], [chatbot, txt])
toolbox.py CHANGED
@@ -1,6 +1,6 @@
1
  import markdown, mdtex2html, threading, importlib, traceback, importlib, inspect, re
2
  from show_math import convert as convert_math
3
- from functools import wraps
4
 
5
  def get_reduce_token_percent(text):
6
  try:
@@ -289,22 +289,33 @@ def on_report_generated(files, chatbot):
289
  chatbot.append(['汇总报告如何远程获取?', '汇总报告已经添加到右侧“文件上传区”(可能处于折叠状态),请查收。'])
290
  return report_files, chatbot
291
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  def get_conf(*args):
293
  # 建议您复制一个config_private.py放自己的秘密, 如API和代理网址, 避免不小心传github被别人看到
294
  res = []
295
  for arg in args:
296
- try: r = getattr(importlib.import_module('config_private'), arg)
297
- except: r = getattr(importlib.import_module('config'), arg)
298
  res.append(r)
299
- # 在读取API_KEY时,检查一下是不是忘了改config
300
- if arg=='API_KEY':
301
- # 正确的 API_KEY 是 "sk-" + 48 位大小写字母数字的组合
302
- API_MATCH = re.match(r"sk-[a-zA-Z0-9]{48}$", r)
303
- if API_MATCH:
304
- print(f"您的 API_KEY 是: {r[:15]}*** \nAPI_KEY 导入成功")
305
- else:
306
- assert False, "正确的 API_KEY 是 'sk-' + '48 位大小写字母数字' 的组合,请在config文件中修改API密钥, 添加海外代理之后再运行。" + \
307
- "(如果您刚更新过代码,请确保旧版config_private文件中没有遗留任何新增键值)"
308
  return res
309
 
310
  def clear_line_break(txt):
 
1
  import markdown, mdtex2html, threading, importlib, traceback, importlib, inspect, re
2
  from show_math import convert as convert_math
3
+ from functools import wraps, lru_cache
4
 
5
  def get_reduce_token_percent(text):
6
  try:
 
289
  chatbot.append(['汇总报告如何远程获取?', '汇总报告已经添加到右侧“文件上传区”(可能处于折叠状态),请查收。'])
290
  return report_files, chatbot
291
 
292
+ @lru_cache
293
+ def read_single_conf_with_lru_cache(arg):
294
+ try: r = getattr(importlib.import_module('config_private'), arg)
295
+ except: r = getattr(importlib.import_module('config'), arg)
296
+ # 在读取API_KEY时,检查一下是不是忘了改config
297
+ if arg=='API_KEY':
298
+ # 正确的 API_KEY 是 "sk-" + 48 位大小写字母数字的组合
299
+ API_MATCH = re.match(r"sk-[a-zA-Z0-9]{48}$", r)
300
+ if API_MATCH:
301
+ print(f"[API_KEY] 您的 API_KEY 是: {r[:15]}*** API_KEY 导入成功")
302
+ else:
303
+ assert False, "正确的 API_KEY 是 'sk-' + '48 位大小写字母数字' 的组合,请在config文件中修改API密钥, 添加海外代理之后再运行。" + \
304
+ "(如果您刚更新过代码,请确保旧版config_private文件中没有遗留任何新增键值)"
305
+ if arg=='proxies':
306
+ if r is None:
307
+ print('[PROXY] 网络代理状态:未配置。无代理状态下很可能无法访问。建议:检查USE_PROXY选项是否修改。')
308
+ else:
309
+ print('[PROXY] 网络代理状态:已配置。配置信息如下:', r)
310
+ assert isinstance(r, dict), 'proxies格式错误,请注意proxies选项的格式,不要遗漏括号。'
311
+ return r
312
+
313
  def get_conf(*args):
314
  # 建议您复制一个config_private.py放自己的秘密, 如API和代理网址, 避免不小心传github被别人看到
315
  res = []
316
  for arg in args:
317
+ r = read_single_conf_with_lru_cache(arg)
 
318
  res.append(r)
 
 
 
 
 
 
 
 
 
319
  return res
320
 
321
  def clear_line_break(txt):