【大模型驯化-gradio】成功解决gradio出现httpcore.ReadTimeout: timed out问题
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注: 微信公众号 发送 pandas 即可获取
🎇 相关内容视频**讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
🌵文章目录🌵
- 🎯 一、问题介绍
- 💡 二、解决方案
下滑查看解决方法
🎯 一、问题介绍
在实际的工作中,我们经常会启用一个docker来管理自己的环境隔离问题,在使用gradio
对大模型进行可视化接口调用时,我们使用如下命令安装gradio:
pip install gradio
gradio 4.36.1
gradio_client 1.0.1
从上述的结果可以看出我们已经在一个conda环境中安装成功了gradio,我们通过gradio撰写一个测试代码,具体如下所示:test.py:
import numpy as np
import gradio as gr
def flip_text(x):
return x[::-1]
def flip_image(x):
return np.fliplr(x)
with gr.Blocks() as demo:
#用markdown语法编辑输出一段话
gr.Markdown("Flip text or image files using this demo.")
# 设置tab选项卡
with gr.Tab("Flip Text"):
#Blocks特有组件,设置所有子组件按垂直排列
#垂直排列是默认情况,不加也没关系
with gr.Column():
text_input = gr.Textbox()
text_output = gr.Textbox()
text_button = gr.Button("Flip")
with gr.Tab("Flip Image"):
#Blocks特有组件,设置所有子组件按水平排列
with gr.Row():
image_input = gr.Image()
image_output = gr.Image()
image_button = gr.Button("Flip")
#设置折叠内容
with gr.Accordion("Open for More!"):
gr.Markdown("Look at me...")
text_button.click(flip_text, inputs=text_input, outputs=text_output)
image_button.click(flip_image, inputs=image_input, outputs=image_output)
if __name__ == "__main__":
demo.launch(server_name='0.0.0.0', server_port=8080, share=True)
在terimal终端中运行代码:python test.py,出现如下的错误:
httpcore.ReadTimeout: timed out
The above exception was the direct cause of the following exception:
💡 二、解决方案
针对上面的问题,由于在大模型相关的技术和bug调试还不是特别的多,因此,在通过百度进行查询相对有点困难,通过谷歌在stackout等网站,通过我不懈努力的调试下,终于找到了问题,最开始担心是http的问题,后面发现也不是http的问题,最终找到的问题还是gradio的安装问题,我们之前通过pip install gradio
安装会导致缺少httpcore里面的一个配置文件,需要将安装目录改写为如下:
pip install https://gradio-builds.s3.amazonaws.com/aae46d9199e1edc8a22c96aba1ade12f6ebc1da1/gradio-4.21.0-py3-none-any.whl
通过重新安装上述的gradio,在重新运行test.py文件,即可得到正确的结果: