diff --git a/main.py b/main.py index 8ade5f9..c9af1a1 100644 --- a/main.py +++ b/main.py @@ -3,22 +3,22 @@ import gradio as gr from predict import predict from toolbox import format_io, find_free_port -# 建议您复制一个config_private.py放自己的秘密,如API和代理网址,避免不小心传github被别人看到 -try: from config_private import proxies, WEB_PORT -except: from config import proxies, WEB_PORT +# 建议您复制一个config_private.py放自己的秘密, 如API和代理网址, 避免不小心传github被别人看到 +try: from config_private import proxies, WEB_PORT, LLM_MODEL +except: from config import proxies, WEB_PORT, LLM_MODEL -# 如果WEB_PORT是-1,则随机选取WEB端口 +# 如果WEB_PORT是-1, 则随机选取WEB端口 PORT = find_free_port() if WEB_PORT <= 0 else WEB_PORT initial_prompt = "Serve me as a writing and programming assistant." title_html = """

ChatGPT 学术优化

""" -# 问询记录,python 版本建议3.9+(越新越好) +# 问询记录, python 版本建议3.9+(越新越好) import logging os.makedirs('gpt_log', exist_ok=True) try:logging.basicConfig(filename='gpt_log/chat_secrets.log', level=logging.INFO, encoding='utf-8') except:logging.basicConfig(filename='gpt_log/chat_secrets.log', level=logging.INFO) -print('所有问询记录将自动保存在本地目录./gpt_log/chat_secrets.log,请注意自我隐私保护哦!') +print('所有问询记录将自动保存在本地目录./gpt_log/chat_secrets.log, 请注意自我隐私保护哦!') # 一些普通功能模块 from functional import get_functionals @@ -31,12 +31,9 @@ crazy_functional = get_crazy_functionals() # 处理markdown文本格式的转变 gr.Chatbot.postprocess = format_io -# 做一些样式上的调整 -try: set_theme = gr.themes.Default( primary_hue=gr.themes.utils.colors.orange, - font=["ui-sans-serif", "system-ui", "sans-serif", gr.themes.utils.fonts.GoogleFont("Source Sans Pro")], - font_mono=["ui-monospace", "Consolas", "monospace", gr.themes.utils.fonts.GoogleFont("IBM Plex Mono")]) -except: - set_theme = None; print('gradio版本较旧,不能自定义字体和颜色') +# 做一些外观色彩上的调整 +from theme import adjust_theme +set_theme = adjust_theme() with gr.Blocks(theme=set_theme, analytics_enabled=False) as demo: gr.HTML(title_html) @@ -53,7 +50,10 @@ with gr.Blocks(theme=set_theme, analytics_enabled=False) as demo: with gr.Column(scale=12): txt = gr.Textbox(show_label=False, placeholder="Input question here.").style(container=False) with gr.Column(scale=1): - submitBtn = gr.Button("Ask", variant="primary") + submitBtn = gr.Button("提交", variant="primary") + with gr.Row(): + from check_proxy import check_proxy + statusDisplay = gr.Markdown(f"Tip: 按Enter提交, 按Shift+Enter换行. \nNetwork: {check_proxy(proxies)}\nModel: {LLM_MODEL}") with gr.Row(): for k in functional: variant = functional[k]["Color"] if "Color" in functional[k] else "secondary" @@ -69,8 +69,6 @@ with gr.Blocks(theme=set_theme, analytics_enabled=False) as demo: with gr.Row(): file_upload = gr.Files(label='任何文件,但推荐上传压缩文件(zip, tar)', file_count="multiple") - from check_proxy import check_proxy - statusDisplay = gr.Markdown(f"{check_proxy(proxies)}") systemPromptTxt = gr.Textbox(show_label=True, placeholder=f"System Prompt", label="System prompt", value=initial_prompt).style(container=True) #inputs, top_p, temperature, top_k, repetition_penalty with gr.Accordion("arguments", open=False): @@ -91,7 +89,7 @@ with gr.Blocks(theme=set_theme, analytics_enabled=False) as demo: except: pass -# 延迟函数,做一些准备工作,最后尝试打开浏览器 +# 延迟函数, 做一些准备工作, 最后尝试打开浏览器 def auto_opentab_delay(): import threading, webbrowser, time print(f"URL http://localhost:{PORT}") diff --git a/theme.py b/theme.py new file mode 100644 index 0000000..ac042e9 --- /dev/null +++ b/theme.py @@ -0,0 +1,83 @@ +import gradio as gr + +# gradio可用颜色列表 + +# slate +# gray +# zinc +# neutral +# stone +# red +# orange +# amber +# yellow +# lime +# green +# emerald +# teal +# cyan +# sky +# blue +# indigo +# violet +# purple +# fuchsia +# pink +# rose + +def adjust_theme(): + try: + color_er = gr.themes.utils.colors.pink + set_theme = gr.themes.Default( + primary_hue=gr.themes.utils.colors.orange, + neutral_hue=gr.themes.utils.colors.gray, + font=["sans-serif", "Microsoft YaHei", "ui-sans-serif", "system-ui", "sans-serif", gr.themes.utils.fonts.GoogleFont("Source Sans Pro")], + font_mono=["ui-monospace", "Consolas", "monospace", gr.themes.utils.fonts.GoogleFont("IBM Plex Mono")]) + set_theme.set( + # Colors + input_background_fill_dark="*neutral_800", + # Transition + button_transition="none", + # Shadows + button_shadow="*shadow_drop", + button_shadow_hover="*shadow_drop_lg", + button_shadow_active="*shadow_inset", + input_shadow="0 0 0 *shadow_spread transparent, *shadow_inset", + input_shadow_focus="0 0 0 *shadow_spread *secondary_50, *shadow_inset", + input_shadow_focus_dark="0 0 0 *shadow_spread *neutral_700, *shadow_inset", + checkbox_label_shadow="*shadow_drop", + block_shadow="*shadow_drop", + form_gap_width="1px", + # Button borders + input_border_width="1px", + input_background_fill="white", + # Gradients + stat_background_fill="linear-gradient(to right, *primary_400, *primary_200)", + stat_background_fill_dark="linear-gradient(to right, *primary_400, *primary_600)", + error_background_fill=f"linear-gradient(to right, {color_er.c100}, *background_fill_secondary)", + error_background_fill_dark="*background_fill_primary", + checkbox_label_background_fill="linear-gradient(to top, *neutral_50, white)", + checkbox_label_background_fill_dark="linear-gradient(to top, *neutral_900, *neutral_800)", + checkbox_label_background_fill_hover="linear-gradient(to top, *neutral_100, white)", + checkbox_label_background_fill_hover_dark="linear-gradient(to top, *neutral_900, *neutral_800)", + button_primary_background_fill="linear-gradient(to bottom right, *primary_100, *primary_300)", + button_primary_background_fill_dark="linear-gradient(to bottom right, *primary_500, *primary_600)", + button_primary_background_fill_hover="linear-gradient(to bottom right, *primary_100, *primary_200)", + button_primary_background_fill_hover_dark="linear-gradient(to bottom right, *primary_500, *primary_500)", + button_primary_border_color_dark="*primary_500", + button_secondary_background_fill="linear-gradient(to bottom right, *neutral_100, *neutral_200)", + button_secondary_background_fill_dark="linear-gradient(to bottom right, *neutral_600, *neutral_700)", + button_secondary_background_fill_hover="linear-gradient(to bottom right, *neutral_100, *neutral_100)", + button_secondary_background_fill_hover_dark="linear-gradient(to bottom right, *neutral_600, *neutral_600)", + button_cancel_background_fill=f"linear-gradient(to bottom right, {color_er.c100}, {color_er.c200})", + button_cancel_background_fill_dark=f"linear-gradient(to bottom right, {color_er.c600}, {color_er.c700})", + button_cancel_background_fill_hover=f"linear-gradient(to bottom right, {color_er.c100}, {color_er.c100})", + button_cancel_background_fill_hover_dark=f"linear-gradient(to bottom right, {color_er.c600}, {color_er.c600})", + button_cancel_border_color=color_er.c200, + button_cancel_border_color_dark=color_er.c600, + button_cancel_text_color=color_er.c600, + button_cancel_text_color_dark="white", + ) + except: + set_theme = None; print('gradio版本较旧, 不能自定义字体和颜色') + return set_theme