尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

给自己做一个 ChatGPT:基于 Gradio 的本地 LLM 网页对话界面

给自己做一个 ChatGPT:基于 Gradio 的本地 LLM 网页对话界面
📅 发布时间:2026/6/20 11:35:55

给自己做一个 ChatGPT:基于 Gradio 的本地 LLM 网页对话界面

摘要:黑底白字的命令行虽然极客,但不够直观。今天我们将使用 Python 领域最流行的机器学习界面库Gradio,为我们在 RTX 3090 上微调的 Qwen/Llama 模型穿上一件漂亮的“外衣”。我们将实现流式输出 (Streaming),让 AI 的回答像打字机一样一个个字蹦出来,体验拉满!

关键词:GradioWebUIChatbot流式输出RTX 3090


1. 准备工作

首先,我们需要安装 Gradio。

conda activate llm_learn pipinstallgradio

2. 编写 WebUI 代码

在工作目录下新建web_demo.py。
我们将以Qwen2.5-7B为例(因为它聊起天来更有趣)。

fromunslothimportFastLanguageModelimporttorchimportgradioasgrfromthreadingimportThreadfromtransformersimportTextIteratorStreamer# ===========================# 1. 模型加载 (只运行一次)# ===========================model_path="lora_model"# 指向我们微调 Qwen 的目录max_seq_length=2048print(f"🚀 正在加载模型:{model_path}...")model,tokenizer=FastLanguageModel.from_pretrained(model_name=model_path,max_seq_length=max_seq_length,dtype=None,load_in_4bit=True,)FastLanguageModel.for_inference(model)# ===========================# 2. 定义聊天逻辑 (支持流式)# ===========================defchat_stream(message,history):# message: 用户当前的输入# history: 之前的对话记录 [[user, bot], [user, bot]...]# 构造 Prompt (Qwen 格式)# 这里我们简化处理,只取最近一轮对话,实际项目可以拼接 historyprompt=f"""<|im_start|>user{message}<|im_end|> <|im_start|>assistant """inputs=tokenizer([prompt],return_tensors="pt").to("cuda")# 定义流式输出器streamer=TextIteratorStreamer(tokenizer,skip_prompt=True,skip_special_tokens=True)generation_kwargs=dict(inputs,streamer=streamer,max_new_tokens=512,temperature=0.3,)# 在独立线程中运行生成,主线程读取流thread=Thread(target=model.generate,kwargs=generation_kwargs)thread.start()# 逐步返回生成的文字partial_text=""fornew_textinstreamer:partial_text+=new_textyieldpartial_text# ===========================# 3. 搭建界面# ===========================demo=gr.ChatInterface(fn=chat_stream,title="🤖 我的专属 Qwen 助手 (RTX 3090版)",description="这是我在本地微调并部署的大模型,支持流式对话!",examples=["RTX 3090 适合做深度学习吗?","请用 Python 写一个快排","你是谁?"],theme=gr.themes.Soft())if__name__=="__main__":# share=True 可以生成一个公网链接发给朋友体验demo.launch(server_name="0.0.0.0",share=False)

3. 启动服务

python web_demo.py

终端会输出:
Running on local URL: http://0.0.0.0:7860

打开浏览器访问http://localhost:7860。

体验亮点:

  • 打字机效果:当你问问题时,AI 的回答是实时蹦出来的,不用等十几秒才看到结果。
  • 历史记录:gr.ChatInterface自动帮你处理了对话气泡的 UI。
  • 专属知识:试试问它“RTX 3090 适合做深度学习吗?”,它会用你微调过的知识回答你!

4. 进阶玩法

如果你想让朋友也能通过互联网访问这个界面,只需将最后一行代码改为:

demo.launch(share=True)

Gradio 会自动生成一个为期 72 小时的免费公网链接(类似https://xxxx.gradio.live)。

尽情享受你的私人 GPT 吧!

相关新闻

  • Axelspace:与Pale Blue, Inc.签署在轨演示服务合同的公告
  • 【鸿蒙开发者跨平台开发可选工具】Windows 11 安装 Android Studio 完整指南
  • Java虚拟机面试题:内存管理(下)

最新新闻

  • OpenClaw 2.6.4:零代码智能体工作流引擎实战指南
  • ComfyUI Manager高效配置终极指南:解决实际工作流中的5大痛点
  • 基于知识蒸馏与LoRA的代码审查毒性检测:原理、实现与工程实践
  • 三相逆变器电源与信号调理电路设计实战:从宽压输入到精密采样
  • 2025 Linux图像查看器深度评测:性能、色彩与元数据实战指南
  • 张量网络:从数学工具到机器学习模型压缩与构建的利器

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号