【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})

    partial = ""
    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 的"边生成边显示"的实时对话体验。

相关推荐
火山引擎开发者社区13 小时前
DeepSeek-V4 Pro 发布,veStack Day 0 完成模型适配
人工智能
2501_9269783313 小时前
AGI 的四种瓶颈:资源型还是发现型--以及DSH的位置
人工智能·经验分享·笔记·ai写作
Q4639134913 小时前
线下销售复盘难落地,AI 会话设备能帮上啥忙
人工智能·自然语言处理
ebok.13 小时前
国产大模型落地业务系统的优选载体:京微智枢信创 AI 业务支撑平台
大数据·人工智能·低代码·ai
wujian831113 小时前
怎么用文心生成word文档?从格式错乱到智能导出,AI导出鸭让创作再无后顾之忧
人工智能·ai·word·豆包·deepseek·ai导出鸭
动物园猫14 小时前
猪危险行为目标检测数据集:3类别、5,000+张图像 | 目标检测
人工智能·目标检测·计算机视觉
ai产品老杨14 小时前
AI视频分析并发优化完整流程:解决多路视频并发不足与高延迟排查指南
人工智能·音视频
why技术14 小时前
AI 写的文章,可能都带着手敲一遍都去不掉的“隐形水印”。
前端·人工智能·后端
罗西的思考14 小时前
【Agent OS / AIOS】AOHP 深度解读:当 OS 开始为 Agent 而设计
人工智能·算法·机器学习
新知图书14 小时前
8.2 智能体的心跳执行模式:以智能体为核心(智能体工程)
人工智能·agent·ai agent·智能体