山东大学软件学院创新项目实训——使用用Gradio实现网页交互

使用 Gradio 库构建一个简单的聊天机器人界面。该界面允许用户输入消息,并根据用户的输入生成回复,同时提供了一些可调节的参数。

以下是对所写代码的详细解释:

  • with gr.Blocks() as demo:创建一个 Gradio 应用,命名为 demo
  • gr.HTML("""<h1 align="center">ChatGLM3-6B Gradio Simple Demo</h1>"""):添加一个 HTML 标题,显示在页面顶部。
  • chatbot = gr.Chatbot():创建一个聊天机器人界面。

布局:

  • with gr.Row():创建一个水平排列的行。
  • with gr.Column(scale=4):创建一个宽度为 4 的列。
    • user_input = gr.Textbox(...):在列中添加一个文本输入框,用户在此输入消息。
    • submitBtn = gr.Button("Submit"):在列中添加一个提交按钮。
  • with gr.Column(scale=1):创建一个较窄的列。
    • emptyBtn = gr.Button("Clear History"):添加一个按钮,用于清除聊天记录。
    • max_length = gr.Slider(...):添加一个滑块,用于调整生成回复的最大长度。
    • top_p = gr.Slider(...):添加一个滑块,用于调整生成回复的 top_p 参数。
    • temperature = gr.Slider(...):添加一个滑块,用于调整生成回复的温度参数。

定义用户输入和处理逻辑

  • def user(query, history):定义一个函数,用于处理用户输入。
    • query:用户输入的消息。
    • history:聊天记录。
    • return "", history + [[parse_text(query), ""]]:清空用户输入框,并将用户输入添加到聊天记录中。
  • submitBtn.click(...):设置提交按钮的点击事件。
    • user:点击提交按钮后,调用 user 函数。
    • [user_input, chatbot]user 函数的输入参数。
    • [user_input, chatbot]user 函数的输出参数。
    • queue=False:不使用队列,立即处理请求。
  • .then(...):在 user 函数执行后,调用 predict 函数。
    • predict:用于生成回复的函数。
    • [chatbot, max_length, top_p, temperature]predict 函数的输入参数。
    • chatbotpredict 函数的输出参数。
  • emptyBtn.click(lambda: None, None, chatbot, queue=False):设置清空按钮的点击事件,清空聊天记录。

启动 Gradio 应用

  • demo.queue():启用请求队列(尽管在 submitBtn.click 中禁用了队列,这里启用队列以确保其他操作也能按顺序处理)。
  • demo.launch(server_name="127.0.0.1", server_port=8080, inbrowser=True, share=False):启动 Gradio 应用。
    • server_name="127.0.0.1":设置服务器地址为本地。
    • server_port=8080:设置服务器端口为 8080。
    • inbrowser=True:启动后在浏览器中打开应用。
    • share=False:不生成共享链接。

总结

     这段代码使用 Gradio 库创建了一个简单的聊天机器人界面,允许用户输入消息并获取生成的回复。界面包括输入框、提交按钮、清空按钮以及用于调节生成回复参数的滑块。通过设置点击事件和定义处理函数,实现了基本的聊天功能。

最终界面:

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我们可以使用 Gradio 来测试 YOLOv5 训练后的模型。首先,您需要安装 Gradio 和 YOLOv5。 安装 Gradio: ``` !pip install gradio ``` 安装 YOLOv5: ``` !git clone https://github.com/ultralytics/yolov5.git ``` 然后,您需要下载 YOLOv5 训练后的模型权重文件(.pt文件)。您可以在 https://github.com/ultralytics/yolov5/releases 下载预训练的模型权重文件,或者使用您自己训练的权重文件。 在您的 Jupyter Notebook 中,您可以使用以下代码来载模型并使用 Gradio 进行测试: ```python import gradio as gr import torch import cv2 from PIL import Image from pathlib import Path # Load YOLOv5 model model = torch.hub.load('ultralytics/yolov5', 'custom', path_or_model='path/to/your/weights.pt') # Define prediction function def predict(input_image): # Convert Gradio input image to OpenCV format input_image = cv2.cvtColor(input_image, cv2.COLOR_RGB2BGR) # Use YOLOv5 model to predict objects results = model(input_image) # Draw bounding boxes on image results.render() # Convert OpenCV image to PIL format output_image = Image.fromarray(cv2.cvtColor(results.imgs[0], cv2.COLOR_BGR2RGB)) # Return predicted image return output_image # Define Gradio interface inputs = gr.inputs.Image() outputs = gr.outputs.Image() gr_interface = gr.Interface(fn=predict, inputs=inputs, outputs=outputs, title='YOLOv5 Object Detection') # Launch Gradio interface gr_interface.launch() ``` 在这个例子中,我们使用了 YOLOv5 预训练的模型权重文件。如果您使用自己的权重文件,需要将 `path/to/your/weights.pt` 替换为您的权重文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值