镜像自地址
https://github.com/binary-husky/gpt_academic.git
已同步 2025-12-06 06:26:47 +00:00
save conversation wrap
这个提交包含在:
@@ -22,9 +22,9 @@ def get_crazy_functions():
|
|||||||
from crazy_functions.解析项目源代码 import 解析一个CSharp项目
|
from crazy_functions.解析项目源代码 import 解析一个CSharp项目
|
||||||
from crazy_functions.总结word文档 import 总结word文档
|
from crazy_functions.总结word文档 import 总结word文档
|
||||||
from crazy_functions.解析JupyterNotebook import 解析ipynb文件
|
from crazy_functions.解析JupyterNotebook import 解析ipynb文件
|
||||||
from crazy_functions.对话历史存档 import 对话历史存档
|
from crazy_functions.Conversation_To_File import 载入对话历史存档
|
||||||
from crazy_functions.对话历史存档 import 载入对话历史存档
|
from crazy_functions.Conversation_To_File import Conversation_To_File_Wrap
|
||||||
from crazy_functions.对话历史存档 import 删除所有本地对话历史记录
|
from crazy_functions.Conversation_To_File import 删除所有本地对话历史记录
|
||||||
from crazy_functions.辅助功能 import 清除缓存
|
from crazy_functions.辅助功能 import 清除缓存
|
||||||
from crazy_functions.Markdown_Translate import Markdown英译中
|
from crazy_functions.Markdown_Translate import Markdown英译中
|
||||||
from crazy_functions.批量总结PDF文档 import 批量总结PDF文档
|
from crazy_functions.批量总结PDF文档 import 批量总结PDF文档
|
||||||
@@ -198,7 +198,9 @@ def get_crazy_functions():
|
|||||||
"Group": "对话",
|
"Group": "对话",
|
||||||
"AsButton": True,
|
"AsButton": True,
|
||||||
"Info": "保存当前的对话 | 不需要输入参数",
|
"Info": "保存当前的对话 | 不需要输入参数",
|
||||||
"Function": HotReload(对话历史存档),
|
# "Function": HotReload(Conversation_To_File),
|
||||||
|
"Function": None,
|
||||||
|
"Class": Conversation_To_File_Wrap
|
||||||
},
|
},
|
||||||
"[多线程Demo]解析此项目本身(源码自译解)": {
|
"[多线程Demo]解析此项目本身(源码自译解)": {
|
||||||
"Group": "对话|编程",
|
"Group": "对话|编程",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from toolbox import CatchException, update_ui, promote_file_to_downloadzone, get_log_folder, get_user
|
from toolbox import CatchException, update_ui, promote_file_to_downloadzone, get_log_folder, get_user
|
||||||
|
from crazy_functions.plugin_template.plugin_class_template import GptAcademicPluginTemplate, ArgProperty
|
||||||
import re
|
import re
|
||||||
|
|
||||||
f_prefix = 'GPT-Academic对话存档'
|
f_prefix = 'GPT-Academic对话存档'
|
||||||
@@ -79,11 +80,42 @@ def 对话历史存档(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_
|
|||||||
system_prompt 给gpt的静默提醒
|
system_prompt 给gpt的静默提醒
|
||||||
user_request 当前用户的请求信息(IP地址等)
|
user_request 当前用户的请求信息(IP地址等)
|
||||||
"""
|
"""
|
||||||
|
file_name = plugin_kwargs.get("file_name", None)
|
||||||
|
if (file_name is not None) and (file_name != "") and (not file_name.endswith('.html')): file_name += '.html'
|
||||||
|
else: file_name = None
|
||||||
|
|
||||||
chatbot.append(("保存当前对话",
|
chatbot.append((None, f"[Local Message] {write_chat_to_file(chatbot, history, file_name)},您可以调用下拉菜单中的“载入对话历史存档”还原当下的对话。"))
|
||||||
f"[Local Message] {write_chat_to_file(chatbot, history)},您可以调用下拉菜单中的“载入对话历史存档”还原当下的对话。"))
|
|
||||||
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 # 由于请求gpt需要一段时间,我们先及时地做一次界面更新
|
yield from update_ui(chatbot=chatbot, history=history) # 刷新界面 # 由于请求gpt需要一段时间,我们先及时地做一次界面更新
|
||||||
|
|
||||||
|
|
||||||
|
class Conversation_To_File_Wrap(GptAcademicPluginTemplate):
|
||||||
|
def __init__(self):
|
||||||
|
"""
|
||||||
|
请注意`execute`会执行在不同的线程中,因此您在定义和使用类变量时,应当慎之又慎!
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def define_arg_selection_menu(self):
|
||||||
|
"""
|
||||||
|
定义插件的二级选项菜单
|
||||||
|
|
||||||
|
第一个参数,名称`file_name`,参数`type`声明这是一个文本框,文本框上方显示`title`,文本框内部显示`description`,`default_value`为默认值;
|
||||||
|
"""
|
||||||
|
gui_definition = {
|
||||||
|
"file_name": ArgProperty(title="保存文件名", description="输入对话存档文件名,留空则使用时间作为文件名", default_value="", type="string").model_dump_json(), # 主输入,自动从输入框同步
|
||||||
|
}
|
||||||
|
return gui_definition
|
||||||
|
|
||||||
|
def execute(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, user_request):
|
||||||
|
"""
|
||||||
|
执行插件
|
||||||
|
"""
|
||||||
|
yield from 对话历史存档(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, user_request)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def hide_cwd(str):
|
def hide_cwd(str):
|
||||||
import os
|
import os
|
||||||
current_path = os.getcwd()
|
current_path = os.getcwd()
|
||||||
@@ -294,7 +294,7 @@ def Latex英文纠错加PDF对比(txt, llm_kwargs, plugin_kwargs, chatbot, histo
|
|||||||
promote_file_to_downloadzone(file=zip_res, chatbot=chatbot)
|
promote_file_to_downloadzone(file=zip_res, chatbot=chatbot)
|
||||||
else:
|
else:
|
||||||
chatbot.append((f"失败了",
|
chatbot.append((f"失败了",
|
||||||
'虽然PDF生成失败了, 但请查收结果(压缩包), 内含已经翻译的Tex文档, 也是可读的, 您可以到Github Issue区, 用该压缩包+对话历史存档进行反馈 ...'))
|
'虽然PDF生成失败了, 但请查收结果(压缩包), 内含已经翻译的Tex文档, 也是可读的, 您可以到Github Issue区, 用该压缩包+Conversation_To_File进行反馈 ...'))
|
||||||
yield from update_ui(chatbot=chatbot, history=history);
|
yield from update_ui(chatbot=chatbot, history=history);
|
||||||
time.sleep(1) # 刷新界面
|
time.sleep(1) # 刷新界面
|
||||||
promote_file_to_downloadzone(file=zip_res, chatbot=chatbot)
|
promote_file_to_downloadzone(file=zip_res, chatbot=chatbot)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
| crazy_functions\下载arxiv论文翻译摘要.py | 下载 `arxiv` 论文的 PDF 文件,并提取摘要和翻译 |
|
| crazy_functions\下载arxiv论文翻译摘要.py | 下载 `arxiv` 论文的 PDF 文件,并提取摘要和翻译 |
|
||||||
| crazy_functions\代码重写为全英文_多线程.py | 将Python源代码文件中的中文内容转化为英文 |
|
| crazy_functions\代码重写为全英文_多线程.py | 将Python源代码文件中的中文内容转化为英文 |
|
||||||
| crazy_functions\图片生成.py | 根据激励文本使用GPT模型生成相应的图像 |
|
| crazy_functions\图片生成.py | 根据激励文本使用GPT模型生成相应的图像 |
|
||||||
| crazy_functions\对话历史存档.py | 将每次对话记录写入Markdown格式的文件中 |
|
| crazy_functions\Conversation_To_File.py | 将每次对话记录写入Markdown格式的文件中 |
|
||||||
| crazy_functions\总结word文档.py | 对输入的word文档进行摘要生成 |
|
| crazy_functions\总结word文档.py | 对输入的word文档进行摘要生成 |
|
||||||
| crazy_functions\总结音视频.py | 对输入的音视频文件进行摘要生成 |
|
| crazy_functions\总结音视频.py | 对输入的音视频文件进行摘要生成 |
|
||||||
| crazy_functions\Markdown_Translate.py | 将指定目录下的Markdown文件进行中英文翻译 |
|
| crazy_functions\Markdown_Translate.py | 将指定目录下的Markdown文件进行中英文翻译 |
|
||||||
@@ -155,9 +155,9 @@ toolbox.py是一个工具类库,其中主要包含了一些函数装饰器和
|
|||||||
|
|
||||||
该程序文件提供了一个用于生成图像的函数`图片生成`。函数实现的过程中,会调用`gen_image`函数来生成图像,并返回图像生成的网址和本地文件地址。函数有多个参数,包括`prompt`(激励文本)、`llm_kwargs`(GPT模型的参数)、`plugin_kwargs`(插件模型的参数)等。函数核心代码使用了`requests`库向OpenAI API请求图像,并做了简单的处理和保存。函数还更新了交互界面,清空聊天历史并显示正在生成图像的消息和最终的图像网址和预览。
|
该程序文件提供了一个用于生成图像的函数`图片生成`。函数实现的过程中,会调用`gen_image`函数来生成图像,并返回图像生成的网址和本地文件地址。函数有多个参数,包括`prompt`(激励文本)、`llm_kwargs`(GPT模型的参数)、`plugin_kwargs`(插件模型的参数)等。函数核心代码使用了`requests`库向OpenAI API请求图像,并做了简单的处理和保存。函数还更新了交互界面,清空聊天历史并显示正在生成图像的消息和最终的图像网址和预览。
|
||||||
|
|
||||||
## [18/48] 请对下面的程序文件做一个概述: crazy_functions\对话历史存档.py
|
## [18/48] 请对下面的程序文件做一个概述: crazy_functions\Conversation_To_File.py
|
||||||
|
|
||||||
这个文件是名为crazy_functions\对话历史存档.py的Python程序文件,包含了4个函数:
|
这个文件是名为crazy_functions\Conversation_To_File.py的Python程序文件,包含了4个函数:
|
||||||
|
|
||||||
1. write_chat_to_file(chatbot, history=None, file_name=None):用来将对话记录以Markdown格式写入文件中,并且生成文件名,如果没指定文件名则用当前时间。写入完成后将文件路径打印出来。
|
1. write_chat_to_file(chatbot, history=None, file_name=None):用来将对话记录以Markdown格式写入文件中,并且生成文件名,如果没指定文件名则用当前时间。写入完成后将文件路径打印出来。
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ toolbox.py是一个工具类库,其中主要包含了一些函数装饰器和
|
|||||||
|
|
||||||
3. read_file_to_chat(chatbot, history, file_name):从传入的文件中读取内容,解析出对话历史记录并更新聊天显示框。
|
3. read_file_to_chat(chatbot, history, file_name):从传入的文件中读取内容,解析出对话历史记录并更新聊天显示框。
|
||||||
|
|
||||||
4. 对话历史存档(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, user_request):一个主要函数,用于保存当前对话记录并提醒用户。如果用户希望加载历史记录,则调用read_file_to_chat()来更新聊天显示框。如果用户希望删除历史记录,调用删除所有本地对话历史记录()函数完成删除操作。
|
4. Conversation_To_File(txt, llm_kwargs, plugin_kwargs, chatbot, history, system_prompt, user_request):一个主要函数,用于保存当前对话记录并提醒用户。如果用户希望加载历史记录,则调用read_file_to_chat()来更新聊天显示框。如果用户希望删除历史记录,调用删除所有本地对话历史记录()函数完成删除操作。
|
||||||
|
|
||||||
## [19/48] 请对下面的程序文件做一个概述: crazy_functions\总结word文档.py
|
## [19/48] 请对下面的程序文件做一个概述: crazy_functions\总结word文档.py
|
||||||
|
|
||||||
@@ -331,13 +331,13 @@ check_proxy.py, colorful.py, config.py, config_private.py, core_functional.py, c
|
|||||||
这些程序源文件提供了基础的文本和语言处理功能、工具函数和高级插件,使 Chatbot 能够处理各种复杂的学术文本问题,包括润色、翻译、搜索、下载、解析等。
|
这些程序源文件提供了基础的文本和语言处理功能、工具函数和高级插件,使 Chatbot 能够处理各种复杂的学术文本问题,包括润色、翻译、搜索、下载、解析等。
|
||||||
|
|
||||||
## 用一张Markdown表格简要描述以下文件的功能:
|
## 用一张Markdown表格简要描述以下文件的功能:
|
||||||
crazy_functions\代码重写为全英文_多线程.py, crazy_functions\图片生成.py, crazy_functions\对话历史存档.py, crazy_functions\总结word文档.py, crazy_functions\总结音视频.py, crazy_functions\Markdown_Translate.py, crazy_functions\批量总结PDF文档.py, crazy_functions\批量总结PDF文档pdfminer.py, crazy_functions\PDF_Translate.py, crazy_functions\理解PDF文档内容.py, crazy_functions\生成函数注释.py, crazy_functions\联网的ChatGPT.py, crazy_functions\解析JupyterNotebook.py, crazy_functions\解析项目源代码.py, crazy_functions\询问多个大语言模型.py, crazy_functions\读文章写摘要.py。根据以上分析,用一句话概括程序的整体功能。
|
crazy_functions\代码重写为全英文_多线程.py, crazy_functions\图片生成.py, crazy_functions\Conversation_To_File.py, crazy_functions\总结word文档.py, crazy_functions\总结音视频.py, crazy_functions\Markdown_Translate.py, crazy_functions\批量总结PDF文档.py, crazy_functions\批量总结PDF文档pdfminer.py, crazy_functions\PDF_Translate.py, crazy_functions\理解PDF文档内容.py, crazy_functions\生成函数注释.py, crazy_functions\联网的ChatGPT.py, crazy_functions\解析JupyterNotebook.py, crazy_functions\解析项目源代码.py, crazy_functions\询问多个大语言模型.py, crazy_functions\读文章写摘要.py。根据以上分析,用一句话概括程序的整体功能。
|
||||||
|
|
||||||
| 文件名 | 功能简述 |
|
| 文件名 | 功能简述 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 代码重写为全英文_多线程.py | 将Python源代码文件中的中文内容转化为英文 |
|
| 代码重写为全英文_多线程.py | 将Python源代码文件中的中文内容转化为英文 |
|
||||||
| 图片生成.py | 根据激励文本使用GPT模型生成相应的图像 |
|
| 图片生成.py | 根据激励文本使用GPT模型生成相应的图像 |
|
||||||
| 对话历史存档.py | 将每次对话记录写入Markdown格式的文件中 |
|
| Conversation_To_File.py | 将每次对话记录写入Markdown格式的文件中 |
|
||||||
| 总结word文档.py | 对输入的word文档进行摘要生成 |
|
| 总结word文档.py | 对输入的word文档进行摘要生成 |
|
||||||
| 总结音视频.py | 对输入的音视频文件进行摘要生成 |
|
| 总结音视频.py | 对输入的音视频文件进行摘要生成 |
|
||||||
| Markdown_Translate.py | 将指定目录下的Markdown文件进行中英文翻译 |
|
| Markdown_Translate.py | 将指定目录下的Markdown文件进行中英文翻译 |
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
"总结word文档": "SummarizingWordDocuments",
|
"总结word文档": "SummarizingWordDocuments",
|
||||||
"解析ipynb文件": "ParsingIpynbFiles",
|
"解析ipynb文件": "ParsingIpynbFiles",
|
||||||
"解析JupyterNotebook": "ParsingJupyterNotebook",
|
"解析JupyterNotebook": "ParsingJupyterNotebook",
|
||||||
"对话历史存档": "ConversationHistoryArchive",
|
"Conversation_To_File": "ConversationHistoryArchive",
|
||||||
"载入对话历史存档": "LoadConversationHistoryArchive",
|
"载入Conversation_To_File": "LoadConversationHistoryArchive",
|
||||||
"删除所有本地对话历史记录": "DeleteAllLocalConversationHistoryRecords",
|
"删除所有本地对话历史记录": "DeleteAllLocalConversationHistoryRecords",
|
||||||
"Markdown英译中": "TranslateMarkdownFromEnglishToChinese",
|
"Markdown英译中": "TranslateMarkdownFromEnglishToChinese",
|
||||||
"Markdown_Translate": "BatchTranslateMarkdown",
|
"Markdown_Translate": "BatchTranslateMarkdown",
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
"总结word文档": "SummarizeWordDocument",
|
"总结word文档": "SummarizeWordDocument",
|
||||||
"解析ipynb文件": "ParseIpynbFile",
|
"解析ipynb文件": "ParseIpynbFile",
|
||||||
"解析JupyterNotebook": "ParseJupyterNotebook",
|
"解析JupyterNotebook": "ParseJupyterNotebook",
|
||||||
"对话历史存档": "ConversationHistoryArchive",
|
"Conversation_To_File": "ConversationHistoryArchive",
|
||||||
"载入对话历史存档": "LoadConversationHistoryArchive",
|
"载入Conversation_To_File": "LoadConversationHistoryArchive",
|
||||||
"删除所有本地对话历史记录": "DeleteAllLocalChatHistory",
|
"删除所有本地对话历史记录": "DeleteAllLocalChatHistory",
|
||||||
"Markdown英译中": "MarkdownTranslateFromEngToChi",
|
"Markdown英译中": "MarkdownTranslateFromEngToChi",
|
||||||
"Markdown_Translate": "BatchTranslateMarkdown",
|
"Markdown_Translate": "BatchTranslateMarkdown",
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
"高阶功能模板函数": "HighOrderFunctionTemplateFunctions",
|
"高阶功能模板函数": "HighOrderFunctionTemplateFunctions",
|
||||||
"高级功能函数模板": "AdvancedFunctionTemplate",
|
"高级功能函数模板": "AdvancedFunctionTemplate",
|
||||||
"总结word文档": "SummarizingWordDocuments",
|
"总结word文档": "SummarizingWordDocuments",
|
||||||
"载入对话历史存档": "LoadConversationHistoryArchive",
|
"载入Conversation_To_File": "LoadConversationHistoryArchive",
|
||||||
"Latex中译英": "LatexChineseToEnglish",
|
"Latex中译英": "LatexChineseToEnglish",
|
||||||
"Latex英译中": "LatexEnglishToChinese",
|
"Latex英译中": "LatexEnglishToChinese",
|
||||||
"连接网络回答问题": "ConnectToNetworkToAnswerQuestions",
|
"连接网络回答问题": "ConnectToNetworkToAnswerQuestions",
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
"读文章写摘要": "ReadArticleWriteSummary",
|
"读文章写摘要": "ReadArticleWriteSummary",
|
||||||
"生成函数注释": "GenerateFunctionComments",
|
"生成函数注释": "GenerateFunctionComments",
|
||||||
"解析项目本身": "ParseProjectItself",
|
"解析项目本身": "ParseProjectItself",
|
||||||
"对话历史存档": "ConversationHistoryArchive",
|
"Conversation_To_File": "ConversationHistoryArchive",
|
||||||
"专业词汇声明": "ProfessionalTerminologyDeclaration",
|
"专业词汇声明": "ProfessionalTerminologyDeclaration",
|
||||||
"解析docx": "ParseDocx",
|
"解析docx": "ParseDocx",
|
||||||
"解析源代码新": "ParsingSourceCodeNew",
|
"解析源代码新": "ParsingSourceCodeNew",
|
||||||
|
|||||||
@@ -35,8 +35,8 @@
|
|||||||
"总结word文档": "SummarizeWordDocument",
|
"总结word文档": "SummarizeWordDocument",
|
||||||
"解析ipynb文件": "ParseIpynbFile",
|
"解析ipynb文件": "ParseIpynbFile",
|
||||||
"解析JupyterNotebook": "ParseJupyterNotebook",
|
"解析JupyterNotebook": "ParseJupyterNotebook",
|
||||||
"对话历史存档": "ConversationHistoryArchive",
|
"Conversation_To_File": "ConversationHistoryArchive",
|
||||||
"载入对话历史存档": "LoadConversationHistoryArchive",
|
"载入Conversation_To_File": "LoadConversationHistoryArchive",
|
||||||
"删除所有本地对话历史记录": "DeleteAllLocalConversationHistoryRecords",
|
"删除所有本地对话历史记录": "DeleteAllLocalConversationHistoryRecords",
|
||||||
"Markdown英译中": "MarkdownEnglishToChinese",
|
"Markdown英译中": "MarkdownEnglishToChinese",
|
||||||
"Markdown_Translate": "BatchMarkdownTranslation",
|
"Markdown_Translate": "BatchMarkdownTranslation",
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
#plugin_arg_menu {
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
border: dashed;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* hide remove all button */
|
/* hide remove all button */
|
||||||
.remove-all.svelte-aqlk7e.svelte-aqlk7e.svelte-aqlk7e {
|
.remove-all.svelte-aqlk7e.svelte-aqlk7e.svelte-aqlk7e {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ from toolbox import format_io, find_free_port, on_file_uploaded, on_report_gener
|
|||||||
|
|
||||||
def define_gui_advanced_plugin_class(plugins):
|
def define_gui_advanced_plugin_class(plugins):
|
||||||
# 定义新一代插件的高级参数区
|
# 定义新一代插件的高级参数区
|
||||||
with gr.Floating(init_x="40%", init_y="20%", visible=False, width="30%", drag="top", elem_id="plugin_arg_menu"):
|
with gr.Floating(init_x="50%", init_y="50%", visible=False, width="30%", drag="top", elem_id="plugin_arg_menu"):
|
||||||
with gr.Accordion("请选择并确认插件参数!", open=True, elem_id="plugin_arg_panel"):
|
with gr.Accordion("选择插件参数", open=True, elem_id="plugin_arg_panel"):
|
||||||
for u in range(8):
|
for u in range(8):
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
gr.Textbox(show_label=True, label="T1", placeholder="请输入", lines=1, visible=False, elem_id=f"plugin_arg_txt_{u}").style(container=False)
|
gr.Textbox(show_label=True, label="T1", placeholder="请输入", lines=1, visible=False, elem_id=f"plugin_arg_txt_{u}").style(container=False)
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户