增加NOUGAT消息提示和错误操作提示
This commit is contained in:
parent
a3f36668a8
commit
567c6530d8
@ -1,6 +1,7 @@
|
|||||||
from toolbox import update_ui, get_conf, trimmed_format_exc, get_log_folder
|
from toolbox import update_ui, get_conf, trimmed_format_exc, get_log_folder
|
||||||
import threading
|
import threading
|
||||||
import os
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
def input_clipping(inputs, history, max_token_limit):
|
def input_clipping(inputs, history, max_token_limit):
|
||||||
import numpy as np
|
import numpy as np
|
||||||
@ -714,6 +715,7 @@ class nougat_interface():
|
|||||||
|
|
||||||
def nougat_with_timeout(self, command, cwd, timeout=3600):
|
def nougat_with_timeout(self, command, cwd, timeout=3600):
|
||||||
import subprocess
|
import subprocess
|
||||||
|
logging.info('正在执行命令', command)
|
||||||
process = subprocess.Popen(command, shell=True, cwd=cwd)
|
process = subprocess.Popen(command, shell=True, cwd=cwd)
|
||||||
try:
|
try:
|
||||||
stdout, stderr = process.communicate(timeout=timeout)
|
stdout, stderr = process.communicate(timeout=timeout)
|
||||||
@ -725,13 +727,20 @@ class nougat_interface():
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def NOUGAT_parse_pdf(self, fp):
|
def NOUGAT_parse_pdf(self, fp, chatbot, history):
|
||||||
|
from toolbox import update_ui_lastest_msg
|
||||||
|
|
||||||
|
yield from update_ui_lastest_msg("正在解析论文, 请稍候。进度:正在排队, 等待线程锁...",
|
||||||
|
chatbot=chatbot, history=history, delay=0)
|
||||||
self.threadLock.acquire()
|
self.threadLock.acquire()
|
||||||
import glob, threading, os
|
import glob, threading, os
|
||||||
from toolbox import get_log_folder, gen_time_str
|
from toolbox import get_log_folder, gen_time_str
|
||||||
dst = os.path.join(get_log_folder(plugin_name='nougat'), gen_time_str())
|
dst = os.path.join(get_log_folder(plugin_name='nougat'), gen_time_str())
|
||||||
os.makedirs(dst)
|
os.makedirs(dst)
|
||||||
self.nougat_with_timeout(f'nougat --out "{os.path.abspath(dst)}" "{os.path.abspath(fp)}"', os.getcwd(), timeout=300)
|
|
||||||
|
yield from update_ui_lastest_msg("正在解析论文, 请稍候。进度:正在加载NOUGAT... (提示:首次运行需要花费较长时间下载NOUGAT参数)",
|
||||||
|
chatbot=chatbot, history=history, delay=0)
|
||||||
|
self.nougat_with_timeout(f'nougat --out "{os.path.abspath(dst)}" "{os.path.abspath(fp)}"', os.getcwd(), timeout=3600)
|
||||||
res = glob.glob(os.path.join(dst,'*.mmd'))
|
res = glob.glob(os.path.join(dst,'*.mmd'))
|
||||||
if len(res) == 0:
|
if len(res) == 0:
|
||||||
self.threadLock.release()
|
self.threadLock.release()
|
||||||
|
@ -100,7 +100,7 @@ def 解析PDF_基于NOUGAT(file_manifest, project_folder, llm_kwargs, plugin_kwa
|
|||||||
nougat_handle = nougat_interface()
|
nougat_handle = nougat_interface()
|
||||||
for index, fp in enumerate(file_manifest):
|
for index, fp in enumerate(file_manifest):
|
||||||
chatbot.append(["当前进度:", f"正在解析论文,请稍候。(第一次运行时,需要花费较长时间下载NOUGAT参数)"]); yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
chatbot.append(["当前进度:", f"正在解析论文,请稍候。(第一次运行时,需要花费较长时间下载NOUGAT参数)"]); yield from update_ui(chatbot=chatbot, history=history) # 刷新界面
|
||||||
fpp = nougat_handle.NOUGAT_parse_pdf(fp)
|
fpp = yield from nougat_handle.NOUGAT_parse_pdf(fp, chatbot, history)
|
||||||
|
|
||||||
with open(fpp, 'r', encoding='utf8') as f:
|
with open(fpp, 'r', encoding='utf8') as f:
|
||||||
article_content = f.readlines()
|
article_content = f.readlines()
|
||||||
|
@ -128,6 +128,7 @@ def predict(inputs, llm_kwargs, plugin_kwargs, chatbot, history=[], system_promp
|
|||||||
yield from update_ui(chatbot=chatbot, history=history, msg="缺少api_key") # 刷新界面
|
yield from update_ui(chatbot=chatbot, history=history, msg="缺少api_key") # 刷新界面
|
||||||
return
|
return
|
||||||
|
|
||||||
|
user_input = inputs
|
||||||
if additional_fn is not None:
|
if additional_fn is not None:
|
||||||
from core_functional import handle_core_functionality
|
from core_functional import handle_core_functionality
|
||||||
inputs, history = handle_core_functionality(additional_fn, inputs, history, chatbot)
|
inputs, history = handle_core_functionality(additional_fn, inputs, history, chatbot)
|
||||||
@ -138,8 +139,8 @@ def predict(inputs, llm_kwargs, plugin_kwargs, chatbot, history=[], system_promp
|
|||||||
yield from update_ui(chatbot=chatbot, history=history, msg="等待响应") # 刷新界面
|
yield from update_ui(chatbot=chatbot, history=history, msg="等待响应") # 刷新界面
|
||||||
|
|
||||||
# check mis-behavior
|
# check mis-behavior
|
||||||
if is_the_upload_folder(raw_input):
|
if is_the_upload_folder(user_input):
|
||||||
chatbot[-1] = (inputs, f"[Local Message] 检测到操作错误!当您上传文档之后,需要点击“函数插件区”按钮进行处理,而不是点击“提交”按钮。")
|
chatbot[-1] = (inputs, f"[Local Message] 检测到操作错误!当您上传文档之后,需点击“**函数插件区**”按钮进行处理,请勿点击“提交”按钮或者“基础功能区”按钮。")
|
||||||
yield from update_ui(chatbot=chatbot, history=history, msg="正常") # 刷新界面
|
yield from update_ui(chatbot=chatbot, history=history, msg="正常") # 刷新界面
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user