跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

【Gradio系列】使用 Gradio 快速构建对话式 AI 应用

gr.ChatInterface 本质上是一个高级封装组件,它帮你自动完成了:聊天界面(前端 UI)。自动生成:对话气泡(用户 / AI),输入框,发送按钮,滚动聊天记录,不需要写 HTML / CSS / JS。 ChatInterface 的执行流程:用户输入 → ChatInterface → 调用 fn → 返回结果 → 渲染UI chat\_stream 是整个应用的核心函数,负责把用户…

字节跳动发布于 2026/4/6更新于 2026/7/2048K 浏览
【Gradio系列】使用 Gradio 快速构建对话式 AI 应用
import os import gradio as gr from openai import OpenAI client = OpenAI( api_key=os.getenv("OPENAI_API_KEY","sk-"), base_url=os.getenv("OPENAI_BASE_URL", "https://dashscope.aliyuncs.com/compatible-mode/v1"), ) MODEL_NAME = os.getenv("MODEL_NAME", "qwen-plus") SYSTEM_PROMPT = "你是一个友好、专业、谨慎的中文智能助手。" def chat_stream(message, history): messages = [{"role": "system", "content": SYSTEM_PROMPT}] for item in history: if item.get("role") in ["user", "assistant"]: messages.append(item) messages.append({"role": "user", "content": message}) stream = client.chat.completions.create( model=MODEL_NAME, messages=messages, stream=True, temperature=0.7, ) for chunk in stream: delta = chunk.choices[0].delta.content or "" partial += delta yield partial demo = gr.ChatInterface( fn=chat_stream, title="AI智能助手", description="基于Gradio", ) if __name__ == "__main__": demo.launch(server_name="0.0.0.0", server_port=7860)

gr.ChatInterface 本质上是一个高级封装组件,它帮你自动完成了:聊天界面(前端 UI)。自动生成:对话气泡(用户 / AI),输入框,发送按钮,滚动聊天记录,不需要写 HTML / CSS / JS。

ChatInterface 的执行流程:用户输入 → ChatInterface → 调用 fn → 返回结果 → 渲染UI

chat_stream 是整个应用的核心函数,负责把用户输入和历史对话整理成模型需要的 messages 格式,然后调用大模型接口获取回复;其中通过遍历 history 实现多轮上下文记忆,再把当前 message 追加进去发送请求,并开启 stream=True 进行流式调用,最后用 yield 持续返回逐步生成的内容,从而在前端实现类似 ChatGPT 的'边生成边显示'的实时对话体验。

文章配图

  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • OpenClaw Zero Token 深度解析:浏览器自动化实现大模型免 Token 调用
  • Web 虚拟卡销售平台架构与实现详解
  • Web 虚拟卡销售平台:Spring Boot + Vue 全栈实现方案
  • 延迟退休时代,AI 能帮上哪些忙
  • 基于 OpenClaw 与飞书搭建服务器运维机器人
  • OpenClaw 集成 MCP 协议构建通用 AI 助手
  • 数据结构:链式二叉树的递归实现与遍历分析
  • 基于腾讯云 CVM 部署 Clawdbot 并对接 Telegram 机器人
  • RAP-MCTS 算法详解:大模型思维链
  • SpringBoot+Vue 应急物资管理系统设计与实现
  • 滑动窗口算法实战:最大连续 1 与最小操作数
  • 老旧 ABAP 系统与云端新平台:RFC 驱动的现代 Web 应用实战指南
  • Android ClassLoader 核心机制与分类解析
  • 鸿蒙金融理财全栈项目:基础架构、数据安全与用户体验
  • Java 滑动窗口算法详解与 LeetCode 题解
  • Reasoning Models Generate Societies of Thought 论文解读
  • 纯 C# 自研轻量 UI 引擎:内核<200KB,支持.NET8 AOT 跨平台
  • 即梦 AI 基础操作指南:从绘图到视频生成
  • 基于 SpringBoot2+Vue3 的在线家具商城系统设计与实现
  • Gitea 本地部署指南:安装配置与常用 Git 命令实战

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online