MaoShen's picture
Upload folder using huggingface_hub
2eb41d7 verified
import subprocess
import time
#import pdfkit
import re
def launch_app():
"""启动Gradio应用并获取公共URL"""
app_process = subprocess.Popen(
["python", "app.py"],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True
)
# 等待并捕获公共URL
public_url = None
for line in iter(app_process.stdout.readline, ''):
print(line.strip())
url_match = re.search(r'Running on public URL: (https?://\S+)', line)
if url_match:
public_url = url_match.group(1)
break
if not public_url:
raise RuntimeError("未能获取Gradio公共URL")
return app_process, public_url
def run_api_test(public_url):
"""执行API测试并生成JSON结果"""
subprocess.run(
["python", "api_test.py", public_url],
check=True
)
def generate_markdown():
"""生成Markdown报告"""
subprocess.run(
["python", "response_parser.py"],
check=True
)
stop = '''
def convert_to_pdf():
"""将Markdown转换为PDF"""
markdown_path = r"D:\007.Projects\008.deep_research\smolagents\examples\open_deep_research\analysis_report.md"
pdf_path = r"D:\007.Projects\008.deep_research\smolagents\examples\open_deep_research\analysis_report.pdf"
# 使用wkhtmltopdf进行转换
options = {
'encoding': 'UTF-8',
'custom-header': [
('Content-Encoding', 'UTF-8')
]
}
with open(markdown_path, 'r', encoding='utf-8') as f:
html_content = f.read()
pdfkit.from_string(html_content, pdf_path, options=options)
return pdf_path
'''
if __name__ == "__main__":
try:
# 1. 启动Gradio应用
app_proc, url = launch_app()
print(f"\n🚀 Gradio应用已启动: {url}")
# 2. 执行API测试
print("\n🔧 正在执行API测试...")
run_api_test(url)
# 3. 生成Markdown报告
print("\n📝 正在生成分析报告...")
generate_markdown()
# 4. 转换为PDF
#print("\n🔄 正在转换为PDF格式...")
#pdf_path = convert_to_pdf()
#print(f"\n✅ 流程完成!最终报告路径:{pdf_path}")
except Exception as e:
print(f"\n❌ 流程执行出错: {str(e)}")
finally:
# 关闭Gradio进程
if 'app_proc' in locals():
app_proc.terminate()