Spaces:
Build error
Build error
| import gradio as gr | |
| import pulp | |
| import pandas as pd | |
| import openpyxl | |
| import requests | |
| import os | |
| os.system('pip install paddlepaddle') | |
| os.system('pip install paddleocr') | |
| from paddleocr import PaddleOCR, draw_ocr | |
| from PIL import Image | |
| import torch | |
| import re | |
| import matplotlib | |
| matplotlib.use('Agg') | |
| import matplotlib.pyplot as plt | |
| import numpy as np | |
| html_code=''' | |
| <iframe src="https://web.powerva.microsoft.com/environments/Default-51a58d6c-4fcf-4b75-8608-d00bf7f244d5/bots/new_bot_830e155fc862429e89683426b31c9bd5/webchat" height="500" frameborder="1" style="width:100%"></iframe> | |
| ''' | |
| ht_text=''' | |
| <iframe width="800" height="800" frameborder="0" scrolling="no" src="https://dyrscomcn-my.sharepoint.com/personal/huangcaiguang_dyrs_com_cn/_layouts/15/Doc.aspx?sourcedoc={6d3da844-5b54-473b-a32a-08659600d015}&action=embedview&AllowTyping=True&ActiveCell='业绩'!A1&wdInConfigurator=True&wdInConfigurator=True&edesNext=false&ejss=false"></iframe> | |
| ''' | |
| demo = gr.Blocks(css=''' | |
| #chedan {-webkit-transition-duration: 0.4s; transition-duration: 0.4s; border-radius: 40%} | |
| #chedan:hover {background-color: #4CAF50; color: white;} | |
| #chedan:active {background-color: #3e8e41; box-shadow: 0 5px #666; transform: translateY(4px);} | |
| ''') | |
| def fx1(x): | |
| return f"欢迎练习Gradio, {x}!" | |
| def fx2(x,y): | |
| m=pulp.LpProblem() | |
| x=list(map(int,x.split(','))) | |
| t=[pulp.LpVariable('t'+str(i),cat=pulp.LpBinary) for i in range(len(x))] | |
| m+=pulp.lpDot(x,t) | |
| m+=(pulp.lpDot(x,t)==y) | |
| m.solve() | |
| resu={'data':[x[i] for i in range(len(t)) if pulp.value(t[i])]} | |
| return resu | |
| def fx3(x): | |
| df=pd.read_excel(x,header=0,engine='openpyxl') | |
| return df | |
| def fx4(x): | |
| url_s="https://tts.baidu.com/text2audio?tex="+x+"&cuid=baike&lan=ZH&ie=utf-8&ctp=1&pdt=301&vol=9&rate=32&per=0" | |
| return "点击音频文件 [voice]("+url_s+")" | |
| def fx5(): | |
| return html_code | |
| def fx6(img, lang): | |
| ocr = PaddleOCR(use_angle_cls=True, lang={'中文':'ch','英文':'en','法文':'fr','德文':'german','韩文':'korean','日文':'japan'}[lang],use_gpu=False) | |
| img_path = img.name | |
| result = ocr.ocr(img_path, cls=True) | |
| image = Image.open(img_path).convert('RGB') | |
| boxes = [line[0] for line in result] | |
| txts = [line[1][0] for line in result] | |
| scores = [line[1][1] for line in result] | |
| im_show = draw_ocr(image, boxes, txts, scores, | |
| font_path='simfang.ttf') | |
| im_show = Image.fromarray(im_show) | |
| im_show.save('result.jpg') | |
| return 'result.jpg',list(zip(txts)) | |
| def fx7(x,y): | |
| res=re.findall(r'{0}'.format(y),x) | |
| return res | |
| def fx8(x,y,z): | |
| res=re.sub(r'{0}'.format(x),y,z) | |
| return res | |
| def plot(v, a): | |
| g = 9.81 | |
| theta = a / 180 * 3.14 | |
| tmax = ((2 * v) * np.sin(theta)) / g | |
| timemat = tmax * np.linspace(0, 1, 40)[:, None] | |
| x = (v * timemat) * np.cos(theta) | |
| y = ((v * timemat) * np.sin(theta)) - ((0.5 * g) * (timemat**2)) | |
| fig = plt.figure() | |
| plt.scatter(x=x, y=y, marker=".") | |
| plt.xlim(0, 100) | |
| plt.ylim(0, 60) | |
| return fig | |
| def fx9(x): | |
| pd.options.plotting.backend='matplotlib' | |
| plt.close('all') | |
| ax = x.plot(x='数据1',y='数据2',kind='bar',title='chinese word error!', color=["red","green","purple"]) | |
| ax.table(cellText=df.values,colLabels=df.columns,loc='bottom',colLoc='center') | |
| return ax.get_figure() | |
| with demo: | |
| gr.Markdown( | |
| """ | |
| # <center> WEB APP测试应用! | |
| <div align=center><img src="https://pbihub.cn/uploads/images/201809/23/44/n6xk1x6UnN.gif" width="405" height="405" /></div> | |
| """) | |
| with gr.Tabs(): | |
| with gr.TabItem("测试1"): | |
| text_input = gr.Textbox(placeholder='请输入测试字符串,如"畅心"',label="请输入测试内容",show_label=True) | |
| text_output = gr.Textbox(label="输出结果",show_label=True) | |
| tj_button = gr.Button("提交>>",elem_id="chedan") | |
| with gr.TabItem("凑数"): | |
| val_input = [gr.Textbox(placeholder='请输入凑数序列,如"1,3,5,10,16,54,32,48,6,7"',label="请输入待凑数序列",show_label=True),gr.Number(value=80,label="请输入凑数和值",show_label=True)] | |
| json_output = gr.JSON(label="输出运算结果",show_label=True) | |
| cs_button = gr.Button("开始凑数>>") | |
| with gr.TabItem("文件交互"): | |
| file_input = gr.File(file_count="single",label="请选择需要读取的excel文件",show_label=True) | |
| table_output = gr.Dataframe(label="输出读取的表格数据",show_label=True) | |
| dq_button = gr.Button("开始读取>>") | |
| with gr.TabItem("TTS"): | |
| TS_input = gr.Textbox(placeholder='请输入测试字符串,如"欢迎测试字符串转语音功能模块"',label="请输入测试内容",show_label=True) | |
| audio_output = gr.Markdown(label="点击生成音频文件",show_label=True) | |
| tts_button = gr.Button("开始转换>>") | |
| with gr.TabItem("Power Virtual Agents"): | |
| pva_button = gr.Button("调用机器人对话>>") | |
| pva_output=gr.HTML(label="机器人聊天窗口",show_label=True) | |
| with gr.TabItem("Excel365测试"): | |
| gr.HTML(value=ht_text,label="在线版演示",show_label=True) | |
| with gr.TabItem("OCR识别"): | |
| ocr_input=[gr.Image(type='file', label='请提供你需要识别的照片'),gr.Dropdown(choices=['中文','英文','法文','德文','韩文','日文'], type="value", default='中文', label='请选择需要识别的语言')] | |
| ocr_output=[gr.Image(type='file', label='识别结果'),gr.Dataframe(label="识别信息",show_label=True)] | |
| ocr_button = gr.Button("开始ocr识别") | |
| with gr.TabItem("正则处理"): | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown('<center> 正则匹配') | |
| zz1_input = [gr.Textbox(placeholder='请输入测试字符串,如"畅心语文100,数学666,英语95.7"',label="请输入测试内容"),gr.Textbox(placeholder='请输入正则表达式,如"\d+"',label="请输入正则表达式")] | |
| zz1_output = gr.Dataframe(label="输出正则匹配数据",show_label=True) | |
| zz1_button = gr.Button("开始正则处理>>") | |
| with gr.Column(): | |
| gr.Markdown('<center> 正则替换') | |
| zz2_input = [gr.Textbox(placeholder='输入正则表达式,如"\d+"',label="输入正则表达式"),gr.Textbox(placeholder='正则匹配对象替换为啥',label="输入替换为的字符串"),gr.Textbox(placeholder='待替换对象',label="输入原始字符串")] | |
| zz2_output = gr.Textbox(label="输出",show_label=True) | |
| zz2_button = gr.Button("开始正则替换>>") | |
| with gr.TabItem("图表展示1"): | |
| with gr.Row(): | |
| with gr.Group(): | |
| speed = gr.Slider(1, 30, 25, label="Speed") | |
| angle = gr.Slider(0, 90, 45, label="Angle") | |
| output = gr.Plot() | |
| tb_button = gr.Button("Run") | |
| with gr.Box(): | |
| pd_input=gr.Dataframe(headers=['数据1','数据2'],value=[[42,10],[68,15]],datatype='number',label="可编辑数据框",interactive=True) | |
| pd_output=gr.Plot() | |
| pd_button=gr.Button("编辑测试") | |
| tj_button.click(fx1, inputs=text_input, outputs=text_output) | |
| cs_button.click(fx2, inputs=val_input, outputs=json_output,api_name="ghqj") | |
| dq_button.click(fx3, inputs=file_input, outputs=table_output,api_name="df") | |
| tts_button.click(fx4, inputs=TS_input, outputs=audio_output) | |
| pva_button.click(fx5, inputs=[],outputs=pva_output) | |
| ocr_button.click(fx6,inputs=ocr_input,outputs=ocr_output,api_name="ocr") | |
| zz1_button.click(fx7,inputs=zz1_input,outputs=zz1_output,api_name="zzpp") | |
| zz2_button.click(fx8,inputs=zz2_input,outputs=zz2_output,api_name="zzth") | |
| tb_button.click(plot, [speed, angle], output) | |
| pd_button.click(fx9,pd_input,pd_output) | |
| demo.launch(enable_queue=True) | |