re-format code to with pre-commit
This commit is contained in:
parent
60ba712131
commit
480516380d
6
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
6
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -69,9 +69,3 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: Terminal Traceback & Material to Help Reproduce Bugs | 终端traceback(如有) + 帮助我们复现的测试材料样本(如有)
|
label: Terminal Traceback & Material to Help Reproduce Bugs | 终端traceback(如有) + 帮助我们复现的测试材料样本(如有)
|
||||||
description: Terminal Traceback & Material to Help Reproduce Bugs | 终端traceback(如有) + 帮助我们复现的测试材料样本(如有)
|
description: Terminal Traceback & Material to Help Reproduce Bugs | 终端traceback(如有) + 帮助我们复现的测试材料样本(如有)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
5
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
5
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -21,8 +21,3 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: Feature Request | 功能请求
|
label: Feature Request | 功能请求
|
||||||
description: Feature Request | 功能请求
|
description: Feature Request | 功能请求
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -152,3 +152,4 @@ request_llms/moss
|
|||||||
media
|
media
|
||||||
flagged
|
flagged
|
||||||
request_llms/ChatGLM-6b-onnx-u8s8
|
request_llms/ChatGLM-6b-onnx-u8s8
|
||||||
|
.pre-commit-config.yaml
|
||||||
|
@ -229,4 +229,3 @@ services:
|
|||||||
# 不使用代理网络拉取最新代码
|
# 不使用代理网络拉取最新代码
|
||||||
command: >
|
command: >
|
||||||
bash -c "python3 -u main.py"
|
bash -c "python3 -u main.py"
|
||||||
|
|
||||||
|
@ -1,2 +1 @@
|
|||||||
# 此Dockerfile不再维护,请前往docs/GithubAction+ChatGLM+Moss
|
# 此Dockerfile不再维护,请前往docs/GithubAction+ChatGLM+Moss
|
||||||
|
|
||||||
|
@ -341,4 +341,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# المزيد:
|
# المزيد:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -355,4 +355,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# More:
|
# More:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -354,4 +354,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# Plus:
|
# Plus:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -361,4 +361,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# Weitere:
|
# Weitere:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -358,4 +358,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# Altre risorse:
|
# Altre risorse:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -342,4 +342,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# その他:
|
# その他:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -361,4 +361,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# 더보기:
|
# 더보기:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -355,4 +355,3 @@ https://github.com/oobabooga/instaladores-de-um-clique
|
|||||||
# Mais:
|
# Mais:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -358,4 +358,3 @@ https://github.com/oobabooga/one-click-installers
|
|||||||
# Больше:
|
# Больше:
|
||||||
https://github.com/gradio-app/gradio
|
https://github.com/gradio-app/gradio
|
||||||
https://github.com/fghrsh/live2d_demo
|
https://github.com/fghrsh/live2d_demo
|
||||||
|
|
||||||
|
@ -7,13 +7,27 @@ sample = """
|
|||||||
"""
|
"""
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
def preprocess_newbing_out(s):
|
def preprocess_newbing_out(s):
|
||||||
pattern = r'\^(\d+)\^' # 匹配^数字^
|
pattern = r"\^(\d+)\^" # 匹配^数字^
|
||||||
pattern2 = r'\[(\d+)\]' # 匹配^数字^
|
pattern2 = r"\[(\d+)\]" # 匹配^数字^
|
||||||
sub = lambda m: '\['+m.group(1)+'\]' # 将匹配到的数字作为替换值
|
|
||||||
result = re.sub(pattern, sub, s) # 替换操作
|
def sub(m):
|
||||||
if '[1]' in result:
|
return "\\[" + m.group(1) + "\\]" # 将匹配到的数字作为替换值
|
||||||
result += '<br/><hr style="border-top: dotted 1px #44ac5c;"><br/><small>' + "<br/>".join([re.sub(pattern2, sub, r) for r in result.split('\n') if r.startswith('[')]) + '</small>'
|
|
||||||
|
result = re.sub(pattern, sub, s) # 替换操作
|
||||||
|
if "[1]" in result:
|
||||||
|
result += (
|
||||||
|
'<br/><hr style="border-top: dotted 1px #44ac5c;"><br/><small>'
|
||||||
|
+ "<br/>".join(
|
||||||
|
[
|
||||||
|
re.sub(pattern2, sub, r)
|
||||||
|
for r in result.split("\n")
|
||||||
|
if r.startswith("[")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
+ "</small>"
|
||||||
|
)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@ -28,37 +42,39 @@ def close_up_code_segment_during_stream(gpt_reply):
|
|||||||
str: 返回一个新的字符串,将输出代码片段的“后面的```”补上。
|
str: 返回一个新的字符串,将输出代码片段的“后面的```”补上。
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if '```' not in gpt_reply:
|
if "```" not in gpt_reply:
|
||||||
return gpt_reply
|
return gpt_reply
|
||||||
if gpt_reply.endswith('```'):
|
if gpt_reply.endswith("```"):
|
||||||
return gpt_reply
|
return gpt_reply
|
||||||
|
|
||||||
# 排除了以上两个情况,我们
|
# 排除了以上两个情况,我们
|
||||||
segments = gpt_reply.split('```')
|
segments = gpt_reply.split("```")
|
||||||
n_mark = len(segments) - 1
|
n_mark = len(segments) - 1
|
||||||
if n_mark % 2 == 1:
|
if n_mark % 2 == 1:
|
||||||
# print('输出代码片段中!')
|
# print('输出代码片段中!')
|
||||||
return gpt_reply+'\n```'
|
return gpt_reply + "\n```"
|
||||||
else:
|
else:
|
||||||
return gpt_reply
|
return gpt_reply
|
||||||
|
|
||||||
|
|
||||||
import markdown
|
import markdown
|
||||||
from latex2mathml.converter import convert as tex2mathml
|
from latex2mathml.converter import convert as tex2mathml
|
||||||
from functools import wraps, lru_cache
|
|
||||||
|
|
||||||
def markdown_convertion(txt):
|
def markdown_convertion(txt):
|
||||||
"""
|
"""
|
||||||
将Markdown格式的文本转换为HTML格式。如果包含数学公式,则先将公式转换为HTML格式。
|
将Markdown格式的文本转换为HTML格式。如果包含数学公式,则先将公式转换为HTML格式。
|
||||||
"""
|
"""
|
||||||
pre = '<div class="markdown-body">'
|
pre = '<div class="markdown-body">'
|
||||||
suf = '</div>'
|
suf = "</div>"
|
||||||
if txt.startswith(pre) and txt.endswith(suf):
|
if txt.startswith(pre) and txt.endswith(suf):
|
||||||
# print('警告,输入了已经经过转化的字符串,二次转化可能出问题')
|
# print('警告,输入了已经经过转化的字符串,二次转化可能出问题')
|
||||||
return txt # 已经被转化过,不需要再次转化
|
return txt # 已经被转化过,不需要再次转化
|
||||||
|
|
||||||
markdown_extension_configs = {
|
markdown_extension_configs = {
|
||||||
'mdx_math': {
|
"mdx_math": {
|
||||||
'enable_dollar_delimiter': True,
|
"enable_dollar_delimiter": True,
|
||||||
'use_gitlab_delimiters': False,
|
"use_gitlab_delimiters": False,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
find_equation_pattern = r'<script type="math/tex(?:.*?)>(.*?)</script>'
|
find_equation_pattern = r'<script type="math/tex(?:.*?)>(.*?)</script>'
|
||||||
@ -72,19 +88,19 @@ def markdown_convertion(txt):
|
|||||||
|
|
||||||
def replace_math_no_render(match):
|
def replace_math_no_render(match):
|
||||||
content = match.group(1)
|
content = match.group(1)
|
||||||
if 'mode=display' in match.group(0):
|
if "mode=display" in match.group(0):
|
||||||
content = content.replace('\n', '</br>')
|
content = content.replace("\n", "</br>")
|
||||||
return f"<font color=\"#00FF00\">$$</font><font color=\"#FF00FF\">{content}</font><font color=\"#00FF00\">$$</font>"
|
return f'<font color="#00FF00">$$</font><font color="#FF00FF">{content}</font><font color="#00FF00">$$</font>'
|
||||||
else:
|
else:
|
||||||
return f"<font color=\"#00FF00\">$</font><font color=\"#FF00FF\">{content}</font><font color=\"#00FF00\">$</font>"
|
return f'<font color="#00FF00">$</font><font color="#FF00FF">{content}</font><font color="#00FF00">$</font>'
|
||||||
|
|
||||||
def replace_math_render(match):
|
def replace_math_render(match):
|
||||||
content = match.group(1)
|
content = match.group(1)
|
||||||
if 'mode=display' in match.group(0):
|
if "mode=display" in match.group(0):
|
||||||
if '\\begin{aligned}' in content:
|
if "\\begin{aligned}" in content:
|
||||||
content = content.replace('\\begin{aligned}', '\\begin{array}')
|
content = content.replace("\\begin{aligned}", "\\begin{array}")
|
||||||
content = content.replace('\\end{aligned}', '\\end{array}')
|
content = content.replace("\\end{aligned}", "\\end{array}")
|
||||||
content = content.replace('&', ' ')
|
content = content.replace("&", " ")
|
||||||
content = tex2mathml_catch_exception(content, display="block")
|
content = tex2mathml_catch_exception(content, display="block")
|
||||||
return content
|
return content
|
||||||
else:
|
else:
|
||||||
@ -94,37 +110,58 @@ def markdown_convertion(txt):
|
|||||||
"""
|
"""
|
||||||
解决一个mdx_math的bug(单$包裹begin命令时多余<script>)
|
解决一个mdx_math的bug(单$包裹begin命令时多余<script>)
|
||||||
"""
|
"""
|
||||||
content = content.replace('<script type="math/tex">\n<script type="math/tex; mode=display">', '<script type="math/tex; mode=display">')
|
content = content.replace(
|
||||||
content = content.replace('</script>\n</script>', '</script>')
|
'<script type="math/tex">\n<script type="math/tex; mode=display">',
|
||||||
|
'<script type="math/tex; mode=display">',
|
||||||
|
)
|
||||||
|
content = content.replace("</script>\n</script>", "</script>")
|
||||||
return content
|
return content
|
||||||
|
|
||||||
|
if ("$" in txt) and ("```" not in txt): # 有$标识的公式符号,且没有代码段```的标识
|
||||||
if ('$' in txt) and ('```' not in txt): # 有$标识的公式符号,且没有代码段```的标识
|
|
||||||
# convert everything to html format
|
# convert everything to html format
|
||||||
split = markdown.markdown(text='---')
|
split = markdown.markdown(text="---")
|
||||||
convert_stage_1 = markdown.markdown(text=txt, extensions=['mdx_math', 'fenced_code', 'tables', 'sane_lists'], extension_configs=markdown_extension_configs)
|
convert_stage_1 = markdown.markdown(
|
||||||
|
text=txt,
|
||||||
|
extensions=["mdx_math", "fenced_code", "tables", "sane_lists"],
|
||||||
|
extension_configs=markdown_extension_configs,
|
||||||
|
)
|
||||||
convert_stage_1 = markdown_bug_hunt(convert_stage_1)
|
convert_stage_1 = markdown_bug_hunt(convert_stage_1)
|
||||||
# re.DOTALL: Make the '.' special character match any character at all, including a newline; without this flag, '.' will match anything except a newline. Corresponds to the inline flag (?s).
|
# re.DOTALL: Make the '.' special character match any character at all, including a newline; without this flag, '.' will match anything except a newline. Corresponds to the inline flag (?s).
|
||||||
# 1. convert to easy-to-copy tex (do not render math)
|
# 1. convert to easy-to-copy tex (do not render math)
|
||||||
convert_stage_2_1, n = re.subn(find_equation_pattern, replace_math_no_render, convert_stage_1, flags=re.DOTALL)
|
convert_stage_2_1, n = re.subn(
|
||||||
|
find_equation_pattern,
|
||||||
|
replace_math_no_render,
|
||||||
|
convert_stage_1,
|
||||||
|
flags=re.DOTALL,
|
||||||
|
)
|
||||||
# 2. convert to rendered equation
|
# 2. convert to rendered equation
|
||||||
convert_stage_2_2, n = re.subn(find_equation_pattern, replace_math_render, convert_stage_1, flags=re.DOTALL)
|
convert_stage_2_2, n = re.subn(
|
||||||
|
find_equation_pattern, replace_math_render, convert_stage_1, flags=re.DOTALL
|
||||||
|
)
|
||||||
# cat them together
|
# cat them together
|
||||||
return pre + convert_stage_2_1 + f'{split}' + convert_stage_2_2 + suf
|
return pre + convert_stage_2_1 + f"{split}" + convert_stage_2_2 + suf
|
||||||
else:
|
else:
|
||||||
return pre + markdown.markdown(txt, extensions=['fenced_code', 'codehilite', 'tables', 'sane_lists']) + suf
|
return (
|
||||||
|
pre
|
||||||
|
+ markdown.markdown(
|
||||||
|
txt, extensions=["fenced_code", "codehilite", "tables", "sane_lists"]
|
||||||
|
)
|
||||||
|
+ suf
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
sample = preprocess_newbing_out(sample)
|
sample = preprocess_newbing_out(sample)
|
||||||
sample = close_up_code_segment_during_stream(sample)
|
sample = close_up_code_segment_during_stream(sample)
|
||||||
sample = markdown_convertion(sample)
|
sample = markdown_convertion(sample)
|
||||||
with open('tmp.html', 'w', encoding='utf8') as f:
|
with open("tmp.html", "w", encoding="utf8") as f:
|
||||||
f.write("""
|
f.write(
|
||||||
|
"""
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>My Website</title>
|
<title>My Website</title>
|
||||||
<link rel="stylesheet" type="text/css" href="style.css">
|
<link rel="stylesheet" type="text/css" href="style.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
""")
|
"""
|
||||||
|
)
|
||||||
f.write(sample)
|
f.write(sample)
|
||||||
|
@ -61,4 +61,3 @@ VI 两种音频监听模式切换时,需要刷新页面才有效。
|
|||||||
VII 非localhost运行+非https情况下无法打开录音功能的坑:https://blog.csdn.net/weixin_39461487/article/details/109594434
|
VII 非localhost运行+非https情况下无法打开录音功能的坑:https://blog.csdn.net/weixin_39461487/article/details/109594434
|
||||||
|
|
||||||
## 5.点击函数插件区“实时音频采集” 或者其他音频交互功能
|
## 5.点击函数插件区“实时音频采集” 或者其他音频交互功能
|
||||||
|
|
||||||
|
@ -5,4 +5,3 @@ accelerate
|
|||||||
matplotlib
|
matplotlib
|
||||||
huggingface_hub
|
huggingface_hub
|
||||||
triton
|
triton
|
||||||
|
|
||||||
|
@ -3,12 +3,14 @@
|
|||||||
# """
|
# """
|
||||||
def validate_path():
|
def validate_path():
|
||||||
import os, sys
|
import os, sys
|
||||||
dir_name = os.path.dirname(__file__)
|
|
||||||
root_dir_assume = os.path.abspath(os.path.dirname(__file__) + '/..')
|
os.path.dirname(__file__)
|
||||||
|
root_dir_assume = os.path.abspath(os.path.dirname(__file__) + "/..")
|
||||||
os.chdir(root_dir_assume)
|
os.chdir(root_dir_assume)
|
||||||
sys.path.append(root_dir_assume)
|
sys.path.append(root_dir_assume)
|
||||||
|
|
||||||
validate_path() # validate path so you can run from base directory
|
|
||||||
|
validate_path() # validate path so you can run from base directory
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# from request_llms.bridge_newbingfree import predict_no_ui_long_connection
|
# from request_llms.bridge_newbingfree import predict_no_ui_long_connection
|
||||||
# from request_llms.bridge_moss import predict_no_ui_long_connection
|
# from request_llms.bridge_moss import predict_no_ui_long_connection
|
||||||
@ -19,18 +21,18 @@ if __name__ == "__main__":
|
|||||||
# from request_llms.bridge_deepseekcoder import predict_no_ui_long_connection
|
# from request_llms.bridge_deepseekcoder import predict_no_ui_long_connection
|
||||||
# from request_llms.bridge_qwen_7B import predict_no_ui_long_connection
|
# from request_llms.bridge_qwen_7B import predict_no_ui_long_connection
|
||||||
from request_llms.bridge_qwen_local import predict_no_ui_long_connection
|
from request_llms.bridge_qwen_local import predict_no_ui_long_connection
|
||||||
|
|
||||||
# from request_llms.bridge_spark import predict_no_ui_long_connection
|
# from request_llms.bridge_spark import predict_no_ui_long_connection
|
||||||
# from request_llms.bridge_zhipu import predict_no_ui_long_connection
|
# from request_llms.bridge_zhipu import predict_no_ui_long_connection
|
||||||
# from request_llms.bridge_chatglm3 import predict_no_ui_long_connection
|
# from request_llms.bridge_chatglm3 import predict_no_ui_long_connection
|
||||||
|
|
||||||
llm_kwargs = {
|
llm_kwargs = {
|
||||||
'max_length': 4096,
|
"max_length": 4096,
|
||||||
'top_p': 1,
|
"top_p": 1,
|
||||||
'temperature': 1,
|
"temperature": 1,
|
||||||
}
|
}
|
||||||
|
|
||||||
result = predict_no_ui_long_connection( inputs="请问什么是质子?",
|
result = predict_no_ui_long_connection(
|
||||||
llm_kwargs=llm_kwargs,
|
inputs="请问什么是质子?", llm_kwargs=llm_kwargs, history=["你好", "我好!"], sys_prompt=""
|
||||||
history=["你好", "我好!"],
|
)
|
||||||
sys_prompt="")
|
print("final result:", result)
|
||||||
print('final result:', result)
|
|
||||||
|
@ -29,16 +29,20 @@ md = """
|
|||||||
请随时告诉我您的需求,我会尽力提供帮助。如果您有任何问题或需要解答的议题,请随时提问。
|
请随时告诉我您的需求,我会尽力提供帮助。如果您有任何问题或需要解答的议题,请随时提问。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def validate_path():
|
def validate_path():
|
||||||
import os, sys
|
import os, sys
|
||||||
dir_name = os.path.dirname(__file__)
|
|
||||||
root_dir_assume = os.path.abspath(os.path.dirname(__file__) + '/..')
|
os.path.dirname(__file__)
|
||||||
|
root_dir_assume = os.path.abspath(os.path.dirname(__file__) + "/..")
|
||||||
os.chdir(root_dir_assume)
|
os.chdir(root_dir_assume)
|
||||||
sys.path.append(root_dir_assume)
|
sys.path.append(root_dir_assume)
|
||||||
validate_path() # validate path so you can run from base directory
|
|
||||||
|
|
||||||
|
validate_path() # validate path so you can run from base directory
|
||||||
from toolbox import markdown_convertion
|
from toolbox import markdown_convertion
|
||||||
|
|
||||||
html = markdown_convertion(md)
|
html = markdown_convertion(md)
|
||||||
print(html)
|
print(html)
|
||||||
with open('test.html', 'w', encoding='utf-8') as f:
|
with open("test.html", "w", encoding="utf-8") as f:
|
||||||
f.write(html)
|
f.write(html)
|
@ -4,16 +4,28 @@
|
|||||||
|
|
||||||
|
|
||||||
import os, sys
|
import os, sys
|
||||||
def validate_path(): dir_name = os.path.dirname(__file__); root_dir_assume = os.path.abspath(dir_name + '/..'); os.chdir(root_dir_assume); sys.path.append(root_dir_assume)
|
|
||||||
validate_path() # 返回项目根路径
|
|
||||||
|
def validate_path():
|
||||||
|
dir_name = os.path.dirname(__file__)
|
||||||
|
root_dir_assume = os.path.abspath(dir_name + "/..")
|
||||||
|
os.chdir(root_dir_assume)
|
||||||
|
sys.path.append(root_dir_assume)
|
||||||
|
|
||||||
|
|
||||||
|
validate_path() # 返回项目根路径
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
from tests.test_utils import plugin_test
|
from tests.test_utils import plugin_test
|
||||||
|
|
||||||
# plugin_test(plugin='crazy_functions.函数动态生成->函数动态生成', main_input='交换图像的蓝色通道和红色通道', advanced_arg={"file_path_arg": "./build/ants.jpg"})
|
# plugin_test(plugin='crazy_functions.函数动态生成->函数动态生成', main_input='交换图像的蓝色通道和红色通道', advanced_arg={"file_path_arg": "./build/ants.jpg"})
|
||||||
|
|
||||||
# plugin_test(plugin='crazy_functions.Latex输出PDF结果->Latex翻译中文并重新编译PDF', main_input="2307.07522")
|
# plugin_test(plugin='crazy_functions.Latex输出PDF结果->Latex翻译中文并重新编译PDF', main_input="2307.07522")
|
||||||
|
|
||||||
plugin_test(plugin='crazy_functions.Latex输出PDF结果->Latex翻译中文并重新编译PDF', main_input="G:/SEAFILE_LOCAL/50503047/我的资料库/学位/paperlatex/aaai/Fu_8368_with_appendix")
|
plugin_test(
|
||||||
|
plugin="crazy_functions.Latex输出PDF结果->Latex翻译中文并重新编译PDF",
|
||||||
|
main_input="G:/SEAFILE_LOCAL/50503047/我的资料库/学位/paperlatex/aaai/Fu_8368_with_appendix",
|
||||||
|
)
|
||||||
|
|
||||||
# plugin_test(plugin='crazy_functions.虚空终端->虚空终端', main_input='修改api-key为sk-jhoejriotherjep')
|
# plugin_test(plugin='crazy_functions.虚空终端->虚空终端', main_input='修改api-key为sk-jhoejriotherjep')
|
||||||
|
|
||||||
@ -61,4 +73,3 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
# advanced_arg = {"advanced_arg":"--pre_seq_len=128 --learning_rate=2e-2 --num_gpus=1 --json_dataset='t_code.json' --ptuning_directory='/home/hmp/ChatGLM2-6B/ptuning' " }
|
# advanced_arg = {"advanced_arg":"--pre_seq_len=128 --learning_rate=2e-2 --num_gpus=1 --json_dataset='t_code.json' --ptuning_directory='/home/hmp/ChatGLM2-6B/ptuning' " }
|
||||||
# plugin_test(plugin='crazy_functions.chatglm微调工具->启动微调', main_input='build/dev.json', advanced_arg=advanced_arg)
|
# plugin_test(plugin='crazy_functions.chatglm微调工具->启动微调', main_input='build/dev.json', advanced_arg=advanced_arg)
|
||||||
|
|
||||||
|
@ -9,45 +9,52 @@ from functools import wraps
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
def chat_to_markdown_str(chat):
|
def chat_to_markdown_str(chat):
|
||||||
result = ""
|
result = ""
|
||||||
for i, cc in enumerate(chat):
|
for i, cc in enumerate(chat):
|
||||||
result += f'\n\n{cc[0]}\n\n{cc[1]}'
|
result += f"\n\n{cc[0]}\n\n{cc[1]}"
|
||||||
if i != len(chat)-1:
|
if i != len(chat) - 1:
|
||||||
result += '\n\n---'
|
result += "\n\n---"
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def silence_stdout(func):
|
def silence_stdout(func):
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
def wrapper(*args, **kwargs):
|
def wrapper(*args, **kwargs):
|
||||||
_original_stdout = sys.stdout
|
_original_stdout = sys.stdout
|
||||||
sys.stdout = open(os.devnull, 'w')
|
sys.stdout = open(os.devnull, "w")
|
||||||
sys.stdout.reconfigure(encoding='utf-8')
|
sys.stdout.reconfigure(encoding="utf-8")
|
||||||
for q in func(*args, **kwargs):
|
for q in func(*args, **kwargs):
|
||||||
sys.stdout = _original_stdout
|
sys.stdout = _original_stdout
|
||||||
yield q
|
yield q
|
||||||
sys.stdout = open(os.devnull, 'w')
|
sys.stdout = open(os.devnull, "w")
|
||||||
sys.stdout.reconfigure(encoding='utf-8')
|
sys.stdout.reconfigure(encoding="utf-8")
|
||||||
sys.stdout.close()
|
sys.stdout.close()
|
||||||
sys.stdout = _original_stdout
|
sys.stdout = _original_stdout
|
||||||
|
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
|
|
||||||
def silence_stdout_fn(func):
|
def silence_stdout_fn(func):
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
def wrapper(*args, **kwargs):
|
def wrapper(*args, **kwargs):
|
||||||
_original_stdout = sys.stdout
|
_original_stdout = sys.stdout
|
||||||
sys.stdout = open(os.devnull, 'w')
|
sys.stdout = open(os.devnull, "w")
|
||||||
sys.stdout.reconfigure(encoding='utf-8')
|
sys.stdout.reconfigure(encoding="utf-8")
|
||||||
result = func(*args, **kwargs)
|
result = func(*args, **kwargs)
|
||||||
sys.stdout.close()
|
sys.stdout.close()
|
||||||
sys.stdout = _original_stdout
|
sys.stdout = _original_stdout
|
||||||
return result
|
return result
|
||||||
|
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
class VoidTerminal():
|
|
||||||
|
class VoidTerminal:
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
vt = VoidTerminal()
|
vt = VoidTerminal()
|
||||||
vt.get_conf = silence_stdout_fn(get_conf)
|
vt.get_conf = silence_stdout_fn(get_conf)
|
||||||
vt.set_conf = silence_stdout_fn(set_conf)
|
vt.set_conf = silence_stdout_fn(set_conf)
|
||||||
@ -56,9 +63,27 @@ vt.get_plugin_handle = silence_stdout_fn(get_plugin_handle)
|
|||||||
vt.get_plugin_default_kwargs = silence_stdout_fn(get_plugin_default_kwargs)
|
vt.get_plugin_default_kwargs = silence_stdout_fn(get_plugin_default_kwargs)
|
||||||
vt.get_chat_handle = silence_stdout_fn(get_chat_handle)
|
vt.get_chat_handle = silence_stdout_fn(get_chat_handle)
|
||||||
vt.get_chat_default_kwargs = silence_stdout_fn(get_chat_default_kwargs)
|
vt.get_chat_default_kwargs = silence_stdout_fn(get_chat_default_kwargs)
|
||||||
vt.chat_to_markdown_str = (chat_to_markdown_str)
|
vt.chat_to_markdown_str = chat_to_markdown_str
|
||||||
proxies, WEB_PORT, LLM_MODEL, CONCURRENT_COUNT, AUTHENTICATION, CHATBOT_HEIGHT, LAYOUT, API_KEY = \
|
(
|
||||||
vt.get_conf('proxies', 'WEB_PORT', 'LLM_MODEL', 'CONCURRENT_COUNT', 'AUTHENTICATION', 'CHATBOT_HEIGHT', 'LAYOUT', 'API_KEY')
|
proxies,
|
||||||
|
WEB_PORT,
|
||||||
|
LLM_MODEL,
|
||||||
|
CONCURRENT_COUNT,
|
||||||
|
AUTHENTICATION,
|
||||||
|
CHATBOT_HEIGHT,
|
||||||
|
LAYOUT,
|
||||||
|
API_KEY,
|
||||||
|
) = vt.get_conf(
|
||||||
|
"proxies",
|
||||||
|
"WEB_PORT",
|
||||||
|
"LLM_MODEL",
|
||||||
|
"CONCURRENT_COUNT",
|
||||||
|
"AUTHENTICATION",
|
||||||
|
"CHATBOT_HEIGHT",
|
||||||
|
"LAYOUT",
|
||||||
|
"API_KEY",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def plugin_test(main_input, plugin, advanced_arg=None, debug=True):
|
def plugin_test(main_input, plugin, advanced_arg=None, debug=True):
|
||||||
from rich.live import Live
|
from rich.live import Live
|
||||||
@ -69,9 +94,9 @@ def plugin_test(main_input, plugin, advanced_arg=None, debug=True):
|
|||||||
|
|
||||||
plugin = vt.get_plugin_handle(plugin)
|
plugin = vt.get_plugin_handle(plugin)
|
||||||
plugin_kwargs = vt.get_plugin_default_kwargs()
|
plugin_kwargs = vt.get_plugin_default_kwargs()
|
||||||
plugin_kwargs['main_input'] = main_input
|
plugin_kwargs["main_input"] = main_input
|
||||||
if advanced_arg is not None:
|
if advanced_arg is not None:
|
||||||
plugin_kwargs['plugin_kwargs'] = advanced_arg
|
plugin_kwargs["plugin_kwargs"] = advanced_arg
|
||||||
if debug:
|
if debug:
|
||||||
my_working_plugin = (plugin)(**plugin_kwargs)
|
my_working_plugin = (plugin)(**plugin_kwargs)
|
||||||
else:
|
else:
|
||||||
|
@ -4,14 +4,25 @@
|
|||||||
|
|
||||||
|
|
||||||
import os, sys
|
import os, sys
|
||||||
def validate_path(): dir_name = os.path.dirname(__file__); root_dir_assume = os.path.abspath(dir_name + '/..'); os.chdir(root_dir_assume); sys.path.append(root_dir_assume)
|
|
||||||
validate_path() # 返回项目根路径
|
|
||||||
|
def validate_path():
|
||||||
|
dir_name = os.path.dirname(__file__)
|
||||||
|
root_dir_assume = os.path.abspath(dir_name + "/..")
|
||||||
|
os.chdir(root_dir_assume)
|
||||||
|
sys.path.append(root_dir_assume)
|
||||||
|
|
||||||
|
|
||||||
|
validate_path() # 返回项目根路径
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
from tests.test_utils import plugin_test
|
from tests.test_utils import plugin_test
|
||||||
|
|
||||||
plugin_test(plugin='crazy_functions.知识库问答->知识库文件注入', main_input="./README.md")
|
plugin_test(plugin="crazy_functions.知识库问答->知识库文件注入", main_input="./README.md")
|
||||||
|
|
||||||
plugin_test(plugin='crazy_functions.知识库问答->读取知识库作答', main_input="What is the installation method?")
|
plugin_test(
|
||||||
|
plugin="crazy_functions.知识库问答->读取知识库作答",
|
||||||
|
main_input="What is the installation method?",
|
||||||
|
)
|
||||||
|
|
||||||
plugin_test(plugin='crazy_functions.知识库问答->读取知识库作答', main_input="远程云服务器部署?")
|
plugin_test(plugin="crazy_functions.知识库问答->读取知识库作答", main_input="远程云服务器部署?")
|
||||||
|
@ -479,4 +479,3 @@
|
|||||||
.dark .codehilite .vi { color: #89DDFF } /* Name.Variable.Instance */
|
.dark .codehilite .vi { color: #89DDFF } /* Name.Variable.Instance */
|
||||||
.dark .codehilite .vm { color: #82AAFF } /* Name.Variable.Magic */
|
.dark .codehilite .vm { color: #82AAFF } /* Name.Variable.Magic */
|
||||||
.dark .codehilite .il { color: #F78C6C } /* Literal.Number.Integer.Long */
|
.dark .codehilite .il { color: #F78C6C } /* Literal.Number.Integer.Long */
|
||||||
|
|
||||||
|
@ -1,18 +1,26 @@
|
|||||||
import os
|
import os
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
from toolbox import get_conf
|
from toolbox import get_conf
|
||||||
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf('CODE_HIGHLIGHT', 'ADD_WAIFU', 'LAYOUT')
|
|
||||||
|
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT")
|
||||||
theme_dir = os.path.dirname(__file__)
|
theme_dir = os.path.dirname(__file__)
|
||||||
|
|
||||||
def adjust_theme():
|
|
||||||
|
|
||||||
|
def adjust_theme():
|
||||||
try:
|
try:
|
||||||
color_er = gr.themes.utils.colors.fuchsia
|
color_er = gr.themes.utils.colors.fuchsia
|
||||||
set_theme = gr.themes.Default(
|
set_theme = gr.themes.Default(
|
||||||
primary_hue=gr.themes.utils.colors.orange,
|
primary_hue=gr.themes.utils.colors.orange,
|
||||||
neutral_hue=gr.themes.utils.colors.gray,
|
neutral_hue=gr.themes.utils.colors.gray,
|
||||||
font=["Helvetica", "Microsoft YaHei", "ui-sans-serif", "sans-serif", "system-ui"],
|
font=[
|
||||||
font_mono=["ui-monospace", "Consolas", "monospace"])
|
"Helvetica",
|
||||||
|
"Microsoft YaHei",
|
||||||
|
"ui-sans-serif",
|
||||||
|
"sans-serif",
|
||||||
|
"system-ui",
|
||||||
|
],
|
||||||
|
font_mono=["ui-monospace", "Consolas", "monospace"],
|
||||||
|
)
|
||||||
set_theme.set(
|
set_theme.set(
|
||||||
# Colors
|
# Colors
|
||||||
input_background_fill_dark="*neutral_800",
|
input_background_fill_dark="*neutral_800",
|
||||||
@ -59,7 +67,7 @@ def adjust_theme():
|
|||||||
button_cancel_text_color_dark="white",
|
button_cancel_text_color_dark="white",
|
||||||
)
|
)
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'common.js'), 'r', encoding='utf8') as f:
|
with open(os.path.join(theme_dir, "common.js"), "r", encoding="utf8") as f:
|
||||||
js = f"<script>{f.read()}</script>"
|
js = f"<script>{f.read()}</script>"
|
||||||
|
|
||||||
# 添加一个萌萌的看板娘
|
# 添加一个萌萌的看板娘
|
||||||
@ -69,21 +77,26 @@ def adjust_theme():
|
|||||||
<script src="file=docs/waifu_plugin/jquery-ui.min.js"></script>
|
<script src="file=docs/waifu_plugin/jquery-ui.min.js"></script>
|
||||||
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
||||||
"""
|
"""
|
||||||
if not hasattr(gr, 'RawTemplateResponse'):
|
if not hasattr(gr, "RawTemplateResponse"):
|
||||||
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
||||||
gradio_original_template_fn = gr.RawTemplateResponse
|
gradio_original_template_fn = gr.RawTemplateResponse
|
||||||
|
|
||||||
def gradio_new_template_fn(*args, **kwargs):
|
def gradio_new_template_fn(*args, **kwargs):
|
||||||
res = gradio_original_template_fn(*args, **kwargs)
|
res = gradio_original_template_fn(*args, **kwargs)
|
||||||
res.body = res.body.replace(b'</html>', f'{js}</html>'.encode("utf8"))
|
res.body = res.body.replace(b"</html>", f"{js}</html>".encode("utf8"))
|
||||||
res.init_headers()
|
res.init_headers()
|
||||||
return res
|
return res
|
||||||
gr.routes.templates.TemplateResponse = gradio_new_template_fn # override gradio template
|
|
||||||
|
gr.routes.templates.TemplateResponse = (
|
||||||
|
gradio_new_template_fn # override gradio template
|
||||||
|
)
|
||||||
except:
|
except:
|
||||||
set_theme = None
|
set_theme = None
|
||||||
print('gradio版本较旧, 不能自定义字体和颜色')
|
print("gradio版本较旧, 不能自定义字体和颜色")
|
||||||
return set_theme
|
return set_theme
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'contrast.css'), "r", encoding="utf-8") as f:
|
|
||||||
|
with open(os.path.join(theme_dir, "contrast.css"), "r", encoding="utf-8") as f:
|
||||||
advanced_css = f.read()
|
advanced_css = f.read()
|
||||||
with open(os.path.join(theme_dir, 'common.css'), "r", encoding="utf-8") as f:
|
with open(os.path.join(theme_dir, "common.css"), "r", encoding="utf-8") as f:
|
||||||
advanced_css += f.read()
|
advanced_css += f.read()
|
||||||
|
@ -303,4 +303,3 @@
|
|||||||
.dark .codehilite .vi { color: #89DDFF } /* Name.Variable.Instance */
|
.dark .codehilite .vi { color: #89DDFF } /* Name.Variable.Instance */
|
||||||
.dark .codehilite .vm { color: #82AAFF } /* Name.Variable.Magic */
|
.dark .codehilite .vm { color: #82AAFF } /* Name.Variable.Magic */
|
||||||
.dark .codehilite .il { color: #F78C6C } /* Literal.Number.Integer.Long */
|
.dark .codehilite .il { color: #F78C6C } /* Literal.Number.Integer.Long */
|
||||||
|
|
||||||
|
@ -1,17 +1,26 @@
|
|||||||
import os
|
import os
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
from toolbox import get_conf
|
from toolbox import get_conf
|
||||||
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf('CODE_HIGHLIGHT', 'ADD_WAIFU', 'LAYOUT')
|
|
||||||
theme_dir = os.path.dirname(__file__)
|
|
||||||
def adjust_theme():
|
|
||||||
|
|
||||||
|
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT")
|
||||||
|
theme_dir = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
|
||||||
|
def adjust_theme():
|
||||||
try:
|
try:
|
||||||
color_er = gr.themes.utils.colors.fuchsia
|
color_er = gr.themes.utils.colors.fuchsia
|
||||||
set_theme = gr.themes.Default(
|
set_theme = gr.themes.Default(
|
||||||
primary_hue=gr.themes.utils.colors.orange,
|
primary_hue=gr.themes.utils.colors.orange,
|
||||||
neutral_hue=gr.themes.utils.colors.gray,
|
neutral_hue=gr.themes.utils.colors.gray,
|
||||||
font=["Helvetica", "Microsoft YaHei", "ui-sans-serif", "sans-serif", "system-ui"],
|
font=[
|
||||||
font_mono=["ui-monospace", "Consolas", "monospace"])
|
"Helvetica",
|
||||||
|
"Microsoft YaHei",
|
||||||
|
"ui-sans-serif",
|
||||||
|
"sans-serif",
|
||||||
|
"system-ui",
|
||||||
|
],
|
||||||
|
font_mono=["ui-monospace", "Consolas", "monospace"],
|
||||||
|
)
|
||||||
set_theme.set(
|
set_theme.set(
|
||||||
# Colors
|
# Colors
|
||||||
input_background_fill_dark="*neutral_800",
|
input_background_fill_dark="*neutral_800",
|
||||||
@ -58,7 +67,7 @@ def adjust_theme():
|
|||||||
button_cancel_text_color_dark="white",
|
button_cancel_text_color_dark="white",
|
||||||
)
|
)
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'common.js'), 'r', encoding='utf8') as f:
|
with open(os.path.join(theme_dir, "common.js"), "r", encoding="utf8") as f:
|
||||||
js = f"<script>{f.read()}</script>"
|
js = f"<script>{f.read()}</script>"
|
||||||
|
|
||||||
# 添加一个萌萌的看板娘
|
# 添加一个萌萌的看板娘
|
||||||
@ -68,21 +77,26 @@ def adjust_theme():
|
|||||||
<script src="file=docs/waifu_plugin/jquery-ui.min.js"></script>
|
<script src="file=docs/waifu_plugin/jquery-ui.min.js"></script>
|
||||||
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
||||||
"""
|
"""
|
||||||
if not hasattr(gr, 'RawTemplateResponse'):
|
if not hasattr(gr, "RawTemplateResponse"):
|
||||||
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
||||||
gradio_original_template_fn = gr.RawTemplateResponse
|
gradio_original_template_fn = gr.RawTemplateResponse
|
||||||
|
|
||||||
def gradio_new_template_fn(*args, **kwargs):
|
def gradio_new_template_fn(*args, **kwargs):
|
||||||
res = gradio_original_template_fn(*args, **kwargs)
|
res = gradio_original_template_fn(*args, **kwargs)
|
||||||
res.body = res.body.replace(b'</html>', f'{js}</html>'.encode("utf8"))
|
res.body = res.body.replace(b"</html>", f"{js}</html>".encode("utf8"))
|
||||||
res.init_headers()
|
res.init_headers()
|
||||||
return res
|
return res
|
||||||
gr.routes.templates.TemplateResponse = gradio_new_template_fn # override gradio template
|
|
||||||
|
gr.routes.templates.TemplateResponse = (
|
||||||
|
gradio_new_template_fn # override gradio template
|
||||||
|
)
|
||||||
except:
|
except:
|
||||||
set_theme = None
|
set_theme = None
|
||||||
print('gradio版本较旧, 不能自定义字体和颜色')
|
print("gradio版本较旧, 不能自定义字体和颜色")
|
||||||
return set_theme
|
return set_theme
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'default.css'), "r", encoding="utf-8") as f:
|
|
||||||
|
with open(os.path.join(theme_dir, "default.css"), "r", encoding="utf-8") as f:
|
||||||
advanced_css = f.read()
|
advanced_css = f.read()
|
||||||
with open(os.path.join(theme_dir, 'common.css'), "r", encoding="utf-8") as f:
|
with open(os.path.join(theme_dir, "common.css"), "r", encoding="utf-8") as f:
|
||||||
advanced_css += f.read()
|
advanced_css += f.read()
|
||||||
|
@ -2,29 +2,36 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
from toolbox import get_conf, ProxyNetworkActivate
|
from toolbox import get_conf, ProxyNetworkActivate
|
||||||
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf('CODE_HIGHLIGHT', 'ADD_WAIFU', 'LAYOUT')
|
|
||||||
|
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT")
|
||||||
theme_dir = os.path.dirname(__file__)
|
theme_dir = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
|
||||||
def dynamic_set_theme(THEME):
|
def dynamic_set_theme(THEME):
|
||||||
set_theme = gr.themes.ThemeClass()
|
set_theme = gr.themes.ThemeClass()
|
||||||
with ProxyNetworkActivate('Download_Gradio_Theme'):
|
with ProxyNetworkActivate("Download_Gradio_Theme"):
|
||||||
logging.info('正在下载Gradio主题,请稍等。')
|
logging.info("正在下载Gradio主题,请稍等。")
|
||||||
if THEME.startswith('Huggingface-'): THEME = THEME.lstrip('Huggingface-')
|
if THEME.startswith("Huggingface-"):
|
||||||
if THEME.startswith('huggingface-'): THEME = THEME.lstrip('huggingface-')
|
THEME = THEME.lstrip("Huggingface-")
|
||||||
|
if THEME.startswith("huggingface-"):
|
||||||
|
THEME = THEME.lstrip("huggingface-")
|
||||||
set_theme = set_theme.from_hub(THEME.lower())
|
set_theme = set_theme.from_hub(THEME.lower())
|
||||||
return set_theme
|
return set_theme
|
||||||
|
|
||||||
|
|
||||||
def adjust_theme():
|
def adjust_theme():
|
||||||
try:
|
try:
|
||||||
set_theme = gr.themes.ThemeClass()
|
set_theme = gr.themes.ThemeClass()
|
||||||
with ProxyNetworkActivate('Download_Gradio_Theme'):
|
with ProxyNetworkActivate("Download_Gradio_Theme"):
|
||||||
logging.info('正在下载Gradio主题,请稍等。')
|
logging.info("正在下载Gradio主题,请稍等。")
|
||||||
THEME = get_conf('THEME')
|
THEME = get_conf("THEME")
|
||||||
if THEME.startswith('Huggingface-'): THEME = THEME.lstrip('Huggingface-')
|
if THEME.startswith("Huggingface-"):
|
||||||
if THEME.startswith('huggingface-'): THEME = THEME.lstrip('huggingface-')
|
THEME = THEME.lstrip("Huggingface-")
|
||||||
|
if THEME.startswith("huggingface-"):
|
||||||
|
THEME = THEME.lstrip("huggingface-")
|
||||||
set_theme = set_theme.from_hub(THEME.lower())
|
set_theme = set_theme.from_hub(THEME.lower())
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'common.js'), 'r', encoding='utf8') as f:
|
with open(os.path.join(theme_dir, "common.js"), "r", encoding="utf8") as f:
|
||||||
js = f"<script>{f.read()}</script>"
|
js = f"<script>{f.read()}</script>"
|
||||||
|
|
||||||
# 添加一个萌萌的看板娘
|
# 添加一个萌萌的看板娘
|
||||||
@ -34,20 +41,26 @@ def adjust_theme():
|
|||||||
<script src="file=docs/waifu_plugin/jquery-ui.min.js"></script>
|
<script src="file=docs/waifu_plugin/jquery-ui.min.js"></script>
|
||||||
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
||||||
"""
|
"""
|
||||||
if not hasattr(gr, 'RawTemplateResponse'):
|
if not hasattr(gr, "RawTemplateResponse"):
|
||||||
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
||||||
gradio_original_template_fn = gr.RawTemplateResponse
|
gradio_original_template_fn = gr.RawTemplateResponse
|
||||||
|
|
||||||
def gradio_new_template_fn(*args, **kwargs):
|
def gradio_new_template_fn(*args, **kwargs):
|
||||||
res = gradio_original_template_fn(*args, **kwargs)
|
res = gradio_original_template_fn(*args, **kwargs)
|
||||||
res.body = res.body.replace(b'</html>', f'{js}</html>'.encode("utf8"))
|
res.body = res.body.replace(b"</html>", f"{js}</html>".encode("utf8"))
|
||||||
res.init_headers()
|
res.init_headers()
|
||||||
return res
|
return res
|
||||||
gr.routes.templates.TemplateResponse = gradio_new_template_fn # override gradio template
|
|
||||||
except Exception as e:
|
gr.routes.templates.TemplateResponse = (
|
||||||
|
gradio_new_template_fn # override gradio template
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
set_theme = None
|
set_theme = None
|
||||||
from toolbox import trimmed_format_exc
|
from toolbox import trimmed_format_exc
|
||||||
logging.error('gradio版本较旧, 不能自定义字体和颜色:', trimmed_format_exc())
|
|
||||||
|
logging.error("gradio版本较旧, 不能自定义字体和颜色:", trimmed_format_exc())
|
||||||
return set_theme
|
return set_theme
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'common.css'), "r", encoding="utf-8") as f:
|
|
||||||
|
with open(os.path.join(theme_dir, "common.css"), "r", encoding="utf-8") as f:
|
||||||
advanced_css = f.read()
|
advanced_css = f.read()
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
import os
|
import os
|
||||||
import gradio as gr
|
import gradio as gr
|
||||||
from toolbox import get_conf
|
from toolbox import get_conf
|
||||||
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf('CODE_HIGHLIGHT', 'ADD_WAIFU', 'LAYOUT')
|
|
||||||
|
CODE_HIGHLIGHT, ADD_WAIFU, LAYOUT = get_conf("CODE_HIGHLIGHT", "ADD_WAIFU", "LAYOUT")
|
||||||
theme_dir = os.path.dirname(__file__)
|
theme_dir = os.path.dirname(__file__)
|
||||||
|
|
||||||
|
|
||||||
def adjust_theme():
|
def adjust_theme():
|
||||||
try:
|
try:
|
||||||
set_theme = gr.themes.Soft(
|
set_theme = gr.themes.Soft(
|
||||||
@ -50,7 +52,6 @@ def adjust_theme():
|
|||||||
c900="#2B2B2B",
|
c900="#2B2B2B",
|
||||||
c950="#171717",
|
c950="#171717",
|
||||||
),
|
),
|
||||||
|
|
||||||
radius_size=gr.themes.sizes.radius_sm,
|
radius_size=gr.themes.sizes.radius_sm,
|
||||||
).set(
|
).set(
|
||||||
button_primary_background_fill="*primary_500",
|
button_primary_background_fill="*primary_500",
|
||||||
@ -75,7 +76,7 @@ def adjust_theme():
|
|||||||
chatbot_code_background_color_dark="*neutral_950",
|
chatbot_code_background_color_dark="*neutral_950",
|
||||||
)
|
)
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'common.js'), 'r', encoding='utf8') as f:
|
with open(os.path.join(theme_dir, "common.js"), "r", encoding="utf8") as f:
|
||||||
js = f"<script>{f.read()}</script>"
|
js = f"<script>{f.read()}</script>"
|
||||||
|
|
||||||
# 添加一个萌萌的看板娘
|
# 添加一个萌萌的看板娘
|
||||||
@ -86,24 +87,29 @@ def adjust_theme():
|
|||||||
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
<script src="file=docs/waifu_plugin/autoload.js"></script>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'green.js'), 'r', encoding='utf8') as f:
|
with open(os.path.join(theme_dir, "green.js"), "r", encoding="utf8") as f:
|
||||||
js += f"<script>{f.read()}</script>"
|
js += f"<script>{f.read()}</script>"
|
||||||
|
|
||||||
if not hasattr(gr, 'RawTemplateResponse'):
|
if not hasattr(gr, "RawTemplateResponse"):
|
||||||
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
gr.RawTemplateResponse = gr.routes.templates.TemplateResponse
|
||||||
gradio_original_template_fn = gr.RawTemplateResponse
|
gradio_original_template_fn = gr.RawTemplateResponse
|
||||||
|
|
||||||
def gradio_new_template_fn(*args, **kwargs):
|
def gradio_new_template_fn(*args, **kwargs):
|
||||||
res = gradio_original_template_fn(*args, **kwargs)
|
res = gradio_original_template_fn(*args, **kwargs)
|
||||||
res.body = res.body.replace(b'</html>', f'{js}</html>'.encode("utf8"))
|
res.body = res.body.replace(b"</html>", f"{js}</html>".encode("utf8"))
|
||||||
res.init_headers()
|
res.init_headers()
|
||||||
return res
|
return res
|
||||||
gr.routes.templates.TemplateResponse = gradio_new_template_fn # override gradio template
|
|
||||||
|
gr.routes.templates.TemplateResponse = (
|
||||||
|
gradio_new_template_fn # override gradio template
|
||||||
|
)
|
||||||
except:
|
except:
|
||||||
set_theme = None
|
set_theme = None
|
||||||
print('gradio版本较旧, 不能自定义字体和颜色')
|
print("gradio版本较旧, 不能自定义字体和颜色")
|
||||||
return set_theme
|
return set_theme
|
||||||
|
|
||||||
with open(os.path.join(theme_dir, 'green.css'), "r", encoding="utf-8") as f:
|
|
||||||
|
with open(os.path.join(theme_dir, "green.css"), "r", encoding="utf-8") as f:
|
||||||
advanced_css = f.read()
|
advanced_css = f.read()
|
||||||
with open(os.path.join(theme_dir, 'common.css'), "r", encoding="utf-8") as f:
|
with open(os.path.join(theme_dir, "common.css"), "r", encoding="utf-8") as f:
|
||||||
advanced_css += f.read()
|
advanced_css += f.read()
|
||||||
|
@ -10,29 +10,33 @@ from toolbox import get_conf
|
|||||||
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def load_dynamic_theme(THEME):
|
def load_dynamic_theme(THEME):
|
||||||
adjust_dynamic_theme = None
|
adjust_dynamic_theme = None
|
||||||
if THEME == 'Chuanhu-Small-and-Beautiful':
|
if THEME == "Chuanhu-Small-and-Beautiful":
|
||||||
from .green import adjust_theme, advanced_css
|
from .green import adjust_theme, advanced_css
|
||||||
theme_declaration = "<h2 align=\"center\" class=\"small\">[Chuanhu-Small-and-Beautiful主题]</h2>"
|
|
||||||
elif THEME == 'High-Contrast':
|
theme_declaration = (
|
||||||
|
'<h2 align="center" class="small">[Chuanhu-Small-and-Beautiful主题]</h2>'
|
||||||
|
)
|
||||||
|
elif THEME == "High-Contrast":
|
||||||
from .contrast import adjust_theme, advanced_css
|
from .contrast import adjust_theme, advanced_css
|
||||||
|
|
||||||
theme_declaration = ""
|
theme_declaration = ""
|
||||||
elif '/' in THEME:
|
elif "/" in THEME:
|
||||||
from .gradios import adjust_theme, advanced_css
|
from .gradios import adjust_theme, advanced_css
|
||||||
from .gradios import dynamic_set_theme
|
from .gradios import dynamic_set_theme
|
||||||
|
|
||||||
adjust_dynamic_theme = dynamic_set_theme(THEME)
|
adjust_dynamic_theme = dynamic_set_theme(THEME)
|
||||||
theme_declaration = ""
|
theme_declaration = ""
|
||||||
else:
|
else:
|
||||||
from .default import adjust_theme, advanced_css
|
from .default import adjust_theme, advanced_css
|
||||||
|
|
||||||
theme_declaration = ""
|
theme_declaration = ""
|
||||||
return adjust_theme, advanced_css, theme_declaration, adjust_dynamic_theme
|
return adjust_theme, advanced_css, theme_declaration, adjust_dynamic_theme
|
||||||
|
|
||||||
adjust_theme, advanced_css, theme_declaration, _ = load_dynamic_theme(get_conf('THEME'))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
adjust_theme, advanced_css, theme_declaration, _ = load_dynamic_theme(get_conf("THEME"))
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -42,26 +46,26 @@ cookie相关工具函数
|
|||||||
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def init_cookie(cookies, chatbot):
|
def init_cookie(cookies, chatbot):
|
||||||
# 为每一位访问的用户赋予一个独一无二的uuid编码
|
# 为每一位访问的用户赋予一个独一无二的uuid编码
|
||||||
cookies.update({'uuid': uuid.uuid4()})
|
cookies.update({"uuid": uuid.uuid4()})
|
||||||
return cookies
|
return cookies
|
||||||
|
|
||||||
|
|
||||||
def to_cookie_str(d):
|
def to_cookie_str(d):
|
||||||
# Pickle the dictionary and encode it as a string
|
# Pickle the dictionary and encode it as a string
|
||||||
pickled_dict = pickle.dumps(d)
|
pickled_dict = pickle.dumps(d)
|
||||||
cookie_value = base64.b64encode(pickled_dict).decode('utf-8')
|
cookie_value = base64.b64encode(pickled_dict).decode("utf-8")
|
||||||
return cookie_value
|
return cookie_value
|
||||||
|
|
||||||
|
|
||||||
def from_cookie_str(c):
|
def from_cookie_str(c):
|
||||||
# Decode the base64-encoded string and unpickle it into a dictionary
|
# Decode the base64-encoded string and unpickle it into a dictionary
|
||||||
pickled_dict = base64.b64decode(c.encode('utf-8'))
|
pickled_dict = base64.b64decode(c.encode("utf-8"))
|
||||||
return pickle.loads(pickled_dict)
|
return pickle.loads(pickled_dict)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||||
第 3 部分
|
第 3 部分
|
||||||
@ -114,5 +118,3 @@ js_code_for_persistent_cookie_init = """(persistent_cookie) => {
|
|||||||
return getCookie("persistent_cookie");
|
return getCookie("persistent_cookie");
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user