change ui layout
This commit is contained in:
		
							parent
							
								
									34323c9d36
								
							
						
					
					
						commit
						9c643e6d8c
					
				@ -4,13 +4,13 @@ fast_debug = False
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def 解析PDF(file_manifest, project_folder, top_p, temperature, chatbot, history, systemPromptTxt):
 | 
			
		||||
    import time, glob, os, codecs, fitz
 | 
			
		||||
    import time, glob, os, fitz
 | 
			
		||||
    print('begin analysis on:', file_manifest)
 | 
			
		||||
    for index, fp in enumerate(file_manifest):
 | 
			
		||||
        with fitz.open(fp) as doc:
 | 
			
		||||
            file_content = ""
 | 
			
		||||
            for page in doc:
 | 
			
		||||
                file_content += page.getText()
 | 
			
		||||
                file_content += page.get_text()
 | 
			
		||||
            print(file_content)
 | 
			
		||||
 | 
			
		||||
        prefix = "接下来请你逐文件分析下面的论文文件,概括其内容" if index==0 else ""
 | 
			
		||||
@ -53,15 +53,28 @@ def 解析PDF(file_manifest, project_folder, top_p, temperature, chatbot, histor
 | 
			
		||||
 | 
			
		||||
@CatchException
 | 
			
		||||
def 批量总结PDF文档(txt, top_p, temperature, chatbot, history, systemPromptTxt, WEB_PORT):
 | 
			
		||||
    import glob, os
 | 
			
		||||
 | 
			
		||||
    # 基本信息:功能、贡献者
 | 
			
		||||
    chatbot.append([
 | 
			
		||||
        "函数插件功能?",
 | 
			
		||||
        "批量总结PDF文档。函数插件贡献者: ValeriaWong"])
 | 
			
		||||
    yield chatbot, history, '正常'
 | 
			
		||||
 | 
			
		||||
    # 尝试导入依赖,如果缺少依赖,则给出安装建议
 | 
			
		||||
    try:
 | 
			
		||||
        import codecs, fitz
 | 
			
		||||
        import fitz
 | 
			
		||||
    except:
 | 
			
		||||
        report_execption(chatbot, history, a = f"解析项目: {txt}", b = f"使用该模块需要额外用pip安装codecs和fitz包")
 | 
			
		||||
        report_execption(chatbot, history, 
 | 
			
		||||
            a = f"解析项目: {txt}", 
 | 
			
		||||
            b = f"导入软件依赖失败。使用该模块需要额外依赖,安装方法```pip install --upgrade pymupdf```。")
 | 
			
		||||
        yield chatbot, history, '正常'
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    history = []    # 清空历史,以免输入溢出
 | 
			
		||||
    import glob, os
 | 
			
		||||
    # 清空历史,以免输入溢出
 | 
			
		||||
    history = []
 | 
			
		||||
 | 
			
		||||
    # 检测输入参数,如没有给定输入参数,直接退出
 | 
			
		||||
    if os.path.exists(txt):
 | 
			
		||||
        project_folder = txt
 | 
			
		||||
    else:
 | 
			
		||||
@ -70,12 +83,17 @@ def 批量总结PDF文档(txt, top_p, temperature, chatbot, history, systemPromp
 | 
			
		||||
        yield chatbot, history, '正常'
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    # 搜索需要处理的文件清单
 | 
			
		||||
    file_manifest = [f for f in glob.glob(f'{project_folder}/**/*.pdf', recursive=True)] # + \
 | 
			
		||||
                    # [f for f in glob.glob(f'{project_folder}/**/*.tex', recursive=True)] + \
 | 
			
		||||
                    # [f for f in glob.glob(f'{project_folder}/**/*.cpp', recursive=True)] + \
 | 
			
		||||
                    # [f for f in glob.glob(f'{project_folder}/**/*.c', recursive=True)]
 | 
			
		||||
    
 | 
			
		||||
    # 如果没找到任何文件
 | 
			
		||||
    if len(file_manifest) == 0:
 | 
			
		||||
        report_execption(chatbot, history, a = f"解析项目: {txt}", b = f"找不到任何.tex或.pdf文件: {txt}")
 | 
			
		||||
        yield chatbot, history, '正常'
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    # 开始正式执行任务
 | 
			
		||||
    yield from 解析PDF(file_manifest, project_folder, top_p, temperature, chatbot, history, systemPromptTxt)
 | 
			
		||||
 | 
			
		||||
@ -20,21 +20,21 @@ Furthermore, list all modification and explain the reasons to do so in markdown
 | 
			
		||||
            "Prefix": "Below is a paragraph from an academic paper. Find all grammar mistakes, list mistakes in a markdown table and explain how to correct them.\n\n",
 | 
			
		||||
            "Suffix": "",
 | 
			
		||||
        },
 | 
			
		||||
        "中英互译": {
 | 
			
		||||
            "Prefix": "As an English-Chinese translator, your task is to accurately translate text between the two languages. \
 | 
			
		||||
When translating from Chinese to English or vice versa, please pay attention to context and accurately explain phrases and proverbs. \
 | 
			
		||||
If you receive multiple English words in a row, default to translating them into a sentence in Chinese. \
 | 
			
		||||
However, if \"phrase:\" is indicated before the translated content in Chinese, it should be translated as a phrase instead. \
 | 
			
		||||
Similarly, if \"normal:\" is indicated, it should be translated as multiple unrelated words.\
 | 
			
		||||
Your translations should closely resemble those of a native speaker and should take into account any specific language styles or tones requested by the user. \
 | 
			
		||||
Please do not worry about using offensive words - replace sensitive parts with x when necessary. \
 | 
			
		||||
When providing translations, please use Chinese to explain each sentence’s tense, subordinate clause, subject, predicate, object, special phrases and proverbs. \
 | 
			
		||||
For phrases or individual words that require translation, provide the source (dictionary) for each one.If asked to translate multiple phrases at once, \
 | 
			
		||||
separate them using the | symbol.Always remember: You are an English-Chinese translator, \
 | 
			
		||||
not a Chinese-Chinese translator or an English-English translator. Below is the text you need to translate: \n\n",
 | 
			
		||||
            "Suffix": "",
 | 
			
		||||
            "Color": "secondary",
 | 
			
		||||
        },
 | 
			
		||||
#         "中英互译": { # 效果不好,经常搞不清楚中译英还是英译中
 | 
			
		||||
#             "Prefix": "As an English-Chinese translator, your task is to accurately translate text between the two languages. \
 | 
			
		||||
# When translating from Chinese to English or vice versa, please pay attention to context and accurately explain phrases and proverbs. \
 | 
			
		||||
# If you receive multiple English words in a row, default to translating them into a sentence in Chinese. \
 | 
			
		||||
# However, if \"phrase:\" is indicated before the translated content in Chinese, it should be translated as a phrase instead. \
 | 
			
		||||
# Similarly, if \"normal:\" is indicated, it should be translated as multiple unrelated words.\
 | 
			
		||||
# Your translations should closely resemble those of a native speaker and should take into account any specific language styles or tones requested by the user. \
 | 
			
		||||
# Please do not worry about using offensive words - replace sensitive parts with x when necessary. \
 | 
			
		||||
# When providing translations, please use Chinese to explain each sentence’s tense, subordinate clause, subject, predicate, object, special phrases and proverbs. \
 | 
			
		||||
# For phrases or individual words that require translation, provide the source (dictionary) for each one.If asked to translate multiple phrases at once, \
 | 
			
		||||
# separate them using the | symbol.Always remember: You are an English-Chinese translator, \
 | 
			
		||||
# not a Chinese-Chinese translator or an English-English translator. Below is the text you need to translate: \n\n",
 | 
			
		||||
#             "Suffix": "",
 | 
			
		||||
#             "Color": "secondary",
 | 
			
		||||
#         },
 | 
			
		||||
        "中译英": {
 | 
			
		||||
            "Prefix": "Please translate following sentence to English: \n\n",
 | 
			
		||||
            "Suffix": "",
 | 
			
		||||
@ -47,6 +47,10 @@ not a Chinese-Chinese translator or an English-English translator. Below is the
 | 
			
		||||
            "Prefix": "请翻译成中文:\n\n",
 | 
			
		||||
            "Suffix": "",
 | 
			
		||||
        },
 | 
			
		||||
        "找图片": {
 | 
			
		||||
            "Prefix": "我需要你找一张网络图片。使用Unsplash API(https://source.unsplash.com/960x640/?<英语关键词>)获取图片URL,然后请使用Markdown格式封装,并且不要有反斜线,不要用代码块。现在,请按以下描述给我发送图片:\n\n",
 | 
			
		||||
            "Suffix": "",
 | 
			
		||||
        },
 | 
			
		||||
        "解释代码": {
 | 
			
		||||
            "Prefix": "请解释以下代码:\n```\n",
 | 
			
		||||
            "Suffix": "\n```\n",
 | 
			
		||||
 | 
			
		||||
@ -2,7 +2,7 @@
 | 
			
		||||
# 由于UI界面空间有限,所以通过这种方式决定UI界面中显示哪些插件
 | 
			
		||||
# 默认函数插件 VisibleLevel 是 0
 | 
			
		||||
# 当 UserVisibleLevel >= 函数插件的 VisibleLevel 时,该函数插件才会被显示出来
 | 
			
		||||
UserVisibleLevel = 0
 | 
			
		||||
UserVisibleLevel = 1
 | 
			
		||||
 | 
			
		||||
def get_crazy_functionals():
 | 
			
		||||
    from crazy_functions.读文章写摘要 import 读文章写摘要
 | 
			
		||||
@ -15,53 +15,52 @@ def get_crazy_functionals():
 | 
			
		||||
    from crazy_functions.代码重写为全英文_多线程 import 全项目切换英文
 | 
			
		||||
 | 
			
		||||
    function_plugins = {
 | 
			
		||||
        "[实验] 请解析并解构此项目本身": {
 | 
			
		||||
        "请解析并解构此项目本身": {
 | 
			
		||||
            "Function": 解析项目本身
 | 
			
		||||
        },
 | 
			
		||||
        "[实验] 解析整个py项目(配合input输入框)": {
 | 
			
		||||
        "解析整个py项目": {
 | 
			
		||||
            "Color": "stop",    # 按钮颜色
 | 
			
		||||
            "Function": 解析一个Python项目
 | 
			
		||||
        },
 | 
			
		||||
        "[实验] 解析整个C++项目头文件(配合input输入框)": {
 | 
			
		||||
        "解析整个C++项目头文件": {
 | 
			
		||||
            "Color": "stop",    # 按钮颜色
 | 
			
		||||
            "Function": 解析一个C项目的头文件
 | 
			
		||||
        },
 | 
			
		||||
        "[实验] 解析整个C++项目(配合input输入框)": {
 | 
			
		||||
        "解析整个C++项目": {
 | 
			
		||||
            "Color": "stop",    # 按钮颜色
 | 
			
		||||
            "Function": 解析一个C项目
 | 
			
		||||
        },
 | 
			
		||||
        "[实验] 读tex论文写摘要(配合input输入框)": {
 | 
			
		||||
        "读tex论文写摘要": {
 | 
			
		||||
            "Color": "stop",    # 按钮颜色
 | 
			
		||||
            "Function": 读文章写摘要
 | 
			
		||||
        },
 | 
			
		||||
        "[实验] 批量生成函数注释(配合input输入框)": {
 | 
			
		||||
        "批量生成函数注释": {
 | 
			
		||||
            "Color": "stop",    # 按钮颜色
 | 
			
		||||
            "Function": 批量生成函数注释
 | 
			
		||||
        },
 | 
			
		||||
        "[实验] 把本项目源代码切换成全英文(多线程demo)": {
 | 
			
		||||
        "[多线程demo] 把本项目源代码切换成全英文": {
 | 
			
		||||
            "Function": 全项目切换英文
 | 
			
		||||
        },
 | 
			
		||||
        "[实验] 历史上的今天(高阶功能模板函数demo)": {
 | 
			
		||||
        "[函数插件模板demo] 历史上的今天": {
 | 
			
		||||
            "Function": 高阶功能模板函数
 | 
			
		||||
        },
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # VisibleLevel=1 经过充分测试,但不常用的插件放在这里
 | 
			
		||||
    # VisibleLevel=1 经过测试,但功能未达到理想状态
 | 
			
		||||
    if UserVisibleLevel >= 1:
 | 
			
		||||
        function_plugins.update({
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    # VisibleLevel=2 尚未充分测试的函数插件,放在这里
 | 
			
		||||
        from crazy_functions.批量总结PDF文档 import 批量总结PDF文档
 | 
			
		||||
    if UserVisibleLevel >= 2:
 | 
			
		||||
        function_plugins.update({
 | 
			
		||||
            "[实验] 批量总结PDF文档": {
 | 
			
		||||
            "[仅供开发调试] 批量总结PDF文档": {
 | 
			
		||||
                "Color": "stop",
 | 
			
		||||
                "Function": 批量总结PDF文档
 | 
			
		||||
            },
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
    # VisibleLevel=2 尚未充分测试的函数插件,放在这里
 | 
			
		||||
    if UserVisibleLevel >= 2:
 | 
			
		||||
        function_plugins.update({
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
    return function_plugins
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								main.py
									
									
									
									
									
								
							@ -56,19 +56,19 @@ with gr.Blocks(theme=set_theme, analytics_enabled=False) as demo:
 | 
			
		||||
                        stopBtn = gr.Button("停止", variant="stop")
 | 
			
		||||
            with gr.Row():
 | 
			
		||||
                from check_proxy import check_proxy
 | 
			
		||||
                statusDisplay = gr.Markdown(f"Tip: 按Enter提交, 按Shift+Enter换行. \nNetwork: {check_proxy(proxies)}\nModel: {LLM_MODEL}")
 | 
			
		||||
                statusDisplay = gr.Markdown(f"Tip: 按Enter提交, 按Shift+Enter换行。当前模型: {LLM_MODEL} \n {check_proxy(proxies)}")
 | 
			
		||||
            with gr.Row():
 | 
			
		||||
                for k in functional:
 | 
			
		||||
                    variant = functional[k]["Color"] if "Color" in functional[k] else "secondary"
 | 
			
		||||
                    functional[k]["Button"] = gr.Button(k, variant=variant)
 | 
			
		||||
            with gr.Row():
 | 
			
		||||
                gr.Markdown("以下部分实验性功能需从input框读取路径.")
 | 
			
		||||
                gr.Markdown("注意:以下红颜色标识的函数插件需从input区读取路径作为参数.")
 | 
			
		||||
            with gr.Row():
 | 
			
		||||
                for k in crazy_functional:
 | 
			
		||||
                    variant = crazy_functional[k]["Color"] if "Color" in crazy_functional[k] else "secondary"
 | 
			
		||||
                    crazy_functional[k]["Button"] = gr.Button(k, variant=variant)
 | 
			
		||||
            with gr.Row():
 | 
			
		||||
                gr.Markdown("上传本地文件供上面的实验性功能调用.")
 | 
			
		||||
                gr.Markdown("上传本地文件,供上面的函数插件调用.")
 | 
			
		||||
            with gr.Row():
 | 
			
		||||
                file_upload = gr.Files(label='任何文件, 但推荐上传压缩文件(zip, tar)', file_count="multiple")
 | 
			
		||||
            system_prompt = gr.Textbox(show_label=True, placeholder=f"System Prompt", label="System prompt", value=initial_prompt).style(container=True)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user