Spaces:
Sleeping
Sleeping
新增热更新功能
Browse files- README.md +1 -1
- functional_crazy.py +13 -9
- toolbox.py +12 -1
README.md
CHANGED
@@ -22,7 +22,7 @@ https://github.com/polarwinkel/mdtex2html
|
|
22 |
>
|
23 |
> 1.请注意只有“红颜色”标识的函数插件(按钮)才支持读取文件。目前暂不能完善地支持pdf格式文献的翻译解读,尚不支持word格式文件的读取。
|
24 |
>
|
25 |
-
> 2.本项目中每个文件的功能都在`project_self_analysis.md`详细说明。随着版本的迭代,您也可以随时自行点击相关函数插件,调用GPT
|
26 |
>
|
27 |
> 3.如果您不太习惯部分中文命名的函数,您可以随时点击相关函数插件,调用GPT一键生成纯英文的项目源代码。
|
28 |
|
|
|
22 |
>
|
23 |
> 1.请注意只有“红颜色”标识的函数插件(按钮)才支持读取文件。目前暂不能完善地支持pdf格式文献的翻译解读,尚不支持word格式文件的读取。
|
24 |
>
|
25 |
+
> 2.本项目中每个文件的功能都在`project_self_analysis.md`详细说明。随着版本的迭代,您也可以随时自行点击相关函数插件,调用GPT重新生成项目的自译解报告。
|
26 |
>
|
27 |
> 3.如果您不太习惯部分中文命名的函数,您可以随时点击相关函数插件,调用GPT一键生成纯英文的项目源代码。
|
28 |
|
functional_crazy.py
CHANGED
@@ -1,9 +1,12 @@
|
|
|
|
|
|
1 |
# UserVisibleLevel是过滤器参数。
|
2 |
# 由于UI界面空间有限,所以通过这种方式决定UI界面中显示哪些插件
|
3 |
# 默认函数插件 VisibleLevel 是 0
|
4 |
# 当 UserVisibleLevel >= 函数插件的 VisibleLevel 时,该函数插件才会被显示出来
|
5 |
UserVisibleLevel = 1
|
6 |
|
|
|
7 |
def get_crazy_functionals():
|
8 |
from crazy_functions.读文章写摘要 import 读文章写摘要
|
9 |
from crazy_functions.生成函数注释 import 批量生成函数注释
|
@@ -16,33 +19,34 @@ def get_crazy_functionals():
|
|
16 |
|
17 |
function_plugins = {
|
18 |
"请解析并解构此项目本身": {
|
19 |
-
|
|
|
20 |
},
|
21 |
"解析整个py项目": {
|
22 |
"Color": "stop", # 按钮颜色
|
23 |
-
"Function": 解析一个Python项目
|
24 |
},
|
25 |
"解析整个C++项目头文件": {
|
26 |
"Color": "stop", # 按钮颜色
|
27 |
-
"Function": 解析一个C项目的头文件
|
28 |
},
|
29 |
"解析整个C++项目": {
|
30 |
"Color": "stop", # 按钮颜色
|
31 |
-
"Function": 解析一个C项目
|
32 |
},
|
33 |
"读tex论文写摘要": {
|
34 |
"Color": "stop", # 按钮颜色
|
35 |
-
"Function": 读文章写摘要
|
36 |
},
|
37 |
"批量生成函数注释": {
|
38 |
"Color": "stop", # 按钮颜色
|
39 |
-
"Function": 批量生成函数注释
|
40 |
},
|
41 |
"[多线程demo] 把本项目源代码切换成全英文": {
|
42 |
-
"Function": 全项目切换英文
|
43 |
},
|
44 |
"[函数插件模板demo] 历史上的今天": {
|
45 |
-
"Function": 高阶功能模板函数
|
46 |
},
|
47 |
}
|
48 |
|
@@ -52,7 +56,7 @@ def get_crazy_functionals():
|
|
52 |
function_plugins.update({
|
53 |
"[仅供开发调试] 批量总结PDF文档": {
|
54 |
"Color": "stop",
|
55 |
-
"Function": 批量总结PDF文档
|
56 |
},
|
57 |
})
|
58 |
|
|
|
1 |
+
from functools import HotReload # HotReload 的意思是热更新,修改函数插件后,不需要重启程序,代码直接生效
|
2 |
+
|
3 |
# UserVisibleLevel是过滤器参数。
|
4 |
# 由于UI界面空间有限,所以通过这种方式决定UI界面中显示哪些插件
|
5 |
# 默认函数插件 VisibleLevel 是 0
|
6 |
# 当 UserVisibleLevel >= 函数插件的 VisibleLevel 时,该函数插件才会被显示出来
|
7 |
UserVisibleLevel = 1
|
8 |
|
9 |
+
|
10 |
def get_crazy_functionals():
|
11 |
from crazy_functions.读文章写摘要 import 读文章写摘要
|
12 |
from crazy_functions.生成函数注释 import 批量生成函数注释
|
|
|
19 |
|
20 |
function_plugins = {
|
21 |
"请解析并解构此项目本身": {
|
22 |
+
# HotReload 的意思是热更新,修改函数插件后,不需要重启程序,代码直接生效
|
23 |
+
"Function": HotReload(解析项目本身)
|
24 |
},
|
25 |
"解析整个py项目": {
|
26 |
"Color": "stop", # 按钮颜色
|
27 |
+
"Function": HotReload(解析一个Python项目)
|
28 |
},
|
29 |
"解析整个C++项目头文件": {
|
30 |
"Color": "stop", # 按钮颜色
|
31 |
+
"Function": HotReload(解析一个C项目的头文件)
|
32 |
},
|
33 |
"解析整个C++项目": {
|
34 |
"Color": "stop", # 按钮颜色
|
35 |
+
"Function": HotReload(解析一个C项目)
|
36 |
},
|
37 |
"读tex论文写摘要": {
|
38 |
"Color": "stop", # 按钮颜色
|
39 |
+
"Function": HotReload(读文章写摘要)
|
40 |
},
|
41 |
"批量生成函数注释": {
|
42 |
"Color": "stop", # 按钮颜色
|
43 |
+
"Function": HotReload(批量生成函数注释)
|
44 |
},
|
45 |
"[多线程demo] 把本项目源代码切换成全英文": {
|
46 |
+
"Function": HotReload(全项目切换英文)
|
47 |
},
|
48 |
"[函数插件模板demo] 历史上的今天": {
|
49 |
+
"Function": HotReload(高阶功能模板函数)
|
50 |
},
|
51 |
}
|
52 |
|
|
|
56 |
function_plugins.update({
|
57 |
"[仅供开发调试] 批量总结PDF文档": {
|
58 |
"Color": "stop",
|
59 |
+
"Function": HotReload(批量总结PDF文档)
|
60 |
},
|
61 |
})
|
62 |
|
toolbox.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
import markdown, mdtex2html, threading, importlib, traceback
|
2 |
from show_math import convert as convert_math
|
3 |
from functools import wraps
|
4 |
|
@@ -88,6 +88,17 @@ def CatchException(f):
|
|
88 |
yield chatbot, history, f'异常 {e}'
|
89 |
return decorated
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
def report_execption(chatbot, history, a, b):
|
92 |
"""
|
93 |
向chatbot中添加错误信息
|
|
|
1 |
+
import markdown, mdtex2html, threading, importlib, traceback, importlib, inspect
|
2 |
from show_math import convert as convert_math
|
3 |
from functools import wraps
|
4 |
|
|
|
88 |
yield chatbot, history, f'异常 {e}'
|
89 |
return decorated
|
90 |
|
91 |
+
def HotReload(f):
|
92 |
+
"""
|
93 |
+
装饰器函数,实现函数插件热更新
|
94 |
+
"""
|
95 |
+
@wraps(f)
|
96 |
+
def decorated(*args, **kwargs):
|
97 |
+
fn_name = f.__name__
|
98 |
+
f_hot_reload = getattr(importlib.reload(inspect.getmodule(f)), fn_name)
|
99 |
+
yield from f_hot_reload(*args, **kwargs)
|
100 |
+
return decorated
|
101 |
+
|
102 |
def report_execption(chatbot, history, a, b):
|
103 |
"""
|
104 |
向chatbot中添加错误信息
|