* Zhipu sdk update 适配最新的智谱SDK,支持GLM4v (#1502) * 适配 google gemini 优化为从用户input中提取文件 * 适配最新的智谱SDK、支持glm-4v * requirements.txt fix * pending history check --------- Co-authored-by: binary-husky <qingxu.fu@outlook.com> * Update "生成多种Mermaid图表" plugin: Separate out the file reading function (#1520) * Update crazy_functional.py with new functionality deal with PDF * Update crazy_functional.py and Mermaid.py for plugin_kwargs * Update crazy_functional.py with new chart type: mind map * Update SELECT_PROMPT and i_say_show_user messages * Update ArgsReminder message in get_crazy_functions() function * Update with read md file and update PROMPTS * Return the PROMPTS as the test found that the initial version worked best * Update Mermaid chart generation function * version 3.71 * 解决issues #1510 * Remove unnecessary text from sys_prompt in 解析历史输入 function * Remove sys_prompt message in 解析历史输入 function * Update bridge_all.py: supports gpt-4-turbo-preview (#1517) * Update bridge_all.py: supports gpt-4-turbo-preview supports gpt-4-turbo-preview * Update bridge_all.py --------- Co-authored-by: binary-husky <96192199+binary-husky@users.noreply.github.com> * Update config.py: supports gpt-4-turbo-preview (#1516) * Update config.py: supports gpt-4-turbo-preview supports gpt-4-turbo-preview * Update config.py --------- Co-authored-by: binary-husky <96192199+binary-husky@users.noreply.github.com> * Refactor 解析历史输入 function to handle file input * Update Mermaid chart generation functionality * rename files and functions --------- Co-authored-by: binary-husky <qingxu.fu@outlook.com> Co-authored-by: hongyi-zhao <hongyi.zhao@gmail.com> Co-authored-by: binary-husky <96192199+binary-husky@users.noreply.github.com> * 接入mathpix ocr功能 (#1468) * Update Latex输出PDF结果.py 借助mathpix实现了PDF翻译中文并重新编译PDF * Update config.py add mathpix appid & appkey * Add 'PDF翻译中文并重新编译PDF' feature to plugins. --------- Co-authored-by: binary-husky <96192199+binary-husky@users.noreply.github.com> * fix zhipuai * check picture * remove glm-4 due to bug * 修改config * 检查MATHPIX_APPID * Remove unnecessary code and update function_plugins dictionary * capture non-standard token overflow * bug fix #1524 * change mermaid style * 支持mermaid 滚动放大缩小重置,鼠标滚动和拖拽 (#1530) * 支持mermaid 滚动放大缩小重置,鼠标滚动和拖拽 * 微调未果 先stage一下 * update --------- Co-authored-by: binary-husky <qingxu.fu@outlook.com> Co-authored-by: binary-husky <96192199+binary-husky@users.noreply.github.com> * ver 3.72 * change live2d * save the status of ``clear btn` in cookie * 前端选择保持 * js ui bug fix * reset btn bug fix * update live2d tips * fix missing get_token_num method * fix live2d toggle switch * fix persistent custom btn with cookie * fix zhipuai feedback with core functionality * Refactor button update and clean up functions --------- Co-authored-by: XIao <46100050+Kilig947@users.noreply.github.com> Co-authored-by: Menghuan1918 <menghuan2003@outlook.com> Co-authored-by: hongyi-zhao <hongyi.zhao@gmail.com> Co-authored-by: Hao Ma <893017927@qq.com> Co-authored-by: zeyuan huang <599012428@qq.com>
197 lines
5.7 KiB
Python
197 lines
5.7 KiB
Python
import pickle
|
|
import base64
|
|
import uuid
|
|
from toolbox import get_conf
|
|
|
|
"""
|
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
第 1 部分
|
|
加载主题相关的工具函数
|
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
"""
|
|
|
|
|
|
def load_dynamic_theme(THEME):
|
|
adjust_dynamic_theme = None
|
|
if THEME == "Chuanhu-Small-and-Beautiful":
|
|
from .green import adjust_theme, advanced_css
|
|
|
|
theme_declaration = (
|
|
'<h2 align="center" class="small">[Chuanhu-Small-and-Beautiful主题]</h2>'
|
|
)
|
|
elif THEME == "High-Contrast":
|
|
from .contrast import adjust_theme, advanced_css
|
|
|
|
theme_declaration = ""
|
|
elif "/" in THEME:
|
|
from .gradios import adjust_theme, advanced_css
|
|
from .gradios import dynamic_set_theme
|
|
|
|
adjust_dynamic_theme = dynamic_set_theme(THEME)
|
|
theme_declaration = ""
|
|
else:
|
|
from .default import adjust_theme, advanced_css
|
|
|
|
theme_declaration = ""
|
|
return adjust_theme, advanced_css, theme_declaration, adjust_dynamic_theme
|
|
|
|
|
|
adjust_theme, advanced_css, theme_declaration, _ = load_dynamic_theme(get_conf("THEME"))
|
|
|
|
|
|
"""
|
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
第 2 部分
|
|
cookie相关工具函数
|
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
"""
|
|
|
|
def init_cookie(cookies):
|
|
# 为每一位访问的用户赋予一个独一无二的uuid编码
|
|
cookies.update({"uuid": uuid.uuid4()})
|
|
return cookies
|
|
|
|
|
|
def to_cookie_str(d):
|
|
# Pickle the dictionary and encode it as a string
|
|
pickled_dict = pickle.dumps(d)
|
|
cookie_value = base64.b64encode(pickled_dict).decode("utf-8")
|
|
return cookie_value
|
|
|
|
|
|
def from_cookie_str(c):
|
|
# Decode the base64-encoded string and unpickle it into a dictionary
|
|
pickled_dict = base64.b64decode(c.encode("utf-8"))
|
|
return pickle.loads(pickled_dict)
|
|
|
|
|
|
"""
|
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
第 3 部分
|
|
内嵌的javascript代码
|
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
"""
|
|
|
|
js_code_for_css_changing = """(css) => {
|
|
var existingStyles = document.querySelectorAll("body > gradio-app > div > style")
|
|
for (var i = 0; i < existingStyles.length; i++) {
|
|
var style = existingStyles[i];
|
|
style.parentNode.removeChild(style);
|
|
}
|
|
var existingStyles = document.querySelectorAll("style[data-loaded-css]");
|
|
for (var i = 0; i < existingStyles.length; i++) {
|
|
var style = existingStyles[i];
|
|
style.parentNode.removeChild(style);
|
|
}
|
|
var styleElement = document.createElement('style');
|
|
styleElement.setAttribute('data-loaded-css', 'placeholder');
|
|
styleElement.innerHTML = css;
|
|
document.body.appendChild(styleElement);
|
|
}
|
|
"""
|
|
|
|
|
|
js_code_for_toggle_darkmode = """() => {
|
|
if (document.querySelectorAll('.dark').length) {
|
|
setCookie("js_darkmode_cookie", "False", 365);
|
|
document.querySelectorAll('.dark').forEach(el => el.classList.remove('dark'));
|
|
} else {
|
|
setCookie("js_darkmode_cookie", "True", 365);
|
|
document.querySelector('body').classList.add('dark');
|
|
}
|
|
document.querySelectorAll('code_pending_render').forEach(code => {code.remove();})
|
|
}"""
|
|
|
|
|
|
js_code_for_persistent_cookie_init = """(py_pickle_cookie, cookie) => {
|
|
return [getCookie("py_pickle_cookie"), cookie];
|
|
}
|
|
"""
|
|
|
|
|
|
js_code_reset = """
|
|
(a,b,c)=>{
|
|
return [[], [], "已重置"];
|
|
}
|
|
"""
|
|
|
|
|
|
js_code_clear = """
|
|
(a,b)=>{
|
|
return ["", ""];
|
|
}
|
|
"""
|
|
|
|
|
|
js_code_show_or_hide = """
|
|
(display_panel_arr)=>{
|
|
setTimeout(() => {
|
|
// get conf
|
|
display_panel_arr = get_checkbox_selected_items("cbs");
|
|
|
|
////////////////////// 输入清除键 ///////////////////////////
|
|
let searchString = "输入清除键";
|
|
let ele = "none";
|
|
if (display_panel_arr.includes(searchString)) {
|
|
let clearButton = document.getElementById("elem_clear");
|
|
let clearButton2 = document.getElementById("elem_clear2");
|
|
clearButton.style.display = "block";
|
|
clearButton2.style.display = "block";
|
|
setCookie("js_clearbtn_show_cookie", "True", 365);
|
|
} else {
|
|
let clearButton = document.getElementById("elem_clear");
|
|
let clearButton2 = document.getElementById("elem_clear2");
|
|
clearButton.style.display = "none";
|
|
clearButton2.style.display = "none";
|
|
setCookie("js_clearbtn_show_cookie", "False", 365);
|
|
}
|
|
|
|
////////////////////// 基础功能区 ///////////////////////////
|
|
searchString = "基础功能区";
|
|
if (display_panel_arr.includes(searchString)) {
|
|
ele = document.getElementById("basic-panel");
|
|
ele.style.display = "block";
|
|
} else {
|
|
ele = document.getElementById("basic-panel");
|
|
ele.style.display = "none";
|
|
}
|
|
|
|
////////////////////// 函数插件区 ///////////////////////////
|
|
searchString = "函数插件区";
|
|
if (display_panel_arr.includes(searchString)) {
|
|
ele = document.getElementById("plugin-panel");
|
|
ele.style.display = "block";
|
|
} else {
|
|
ele = document.getElementById("plugin-panel");
|
|
ele.style.display = "none";
|
|
}
|
|
|
|
}, 50);
|
|
}
|
|
"""
|
|
|
|
|
|
|
|
js_code_show_or_hide_group2 = """
|
|
(display_panel_arr)=>{
|
|
setTimeout(() => {
|
|
// console.log("display_panel_arr");
|
|
// get conf
|
|
display_panel_arr = get_checkbox_selected_items("cbsc");
|
|
|
|
////////////////////// 添加Live2D形象 ///////////////////////////
|
|
let searchString = "添加Live2D形象";
|
|
let ele = "none";
|
|
if (display_panel_arr.includes(searchString)) {
|
|
setCookie("js_live2d_show_cookie", "True", 365);
|
|
loadLive2D();
|
|
} else {
|
|
setCookie("js_live2d_show_cookie", "False", 365);
|
|
$('.waifu').hide();
|
|
}
|
|
|
|
|
|
}, 50);
|
|
}
|
|
"""
|