Gradio 的妙处在于它把前端 UI 封装得几乎透明,让你能专注于后端逻辑。借助 ChatInterface,我们无需编写任何 HTML、CSS 或 JS,就能自动获得包含输入框、发送按钮和滚动记录聊天的完整界面。
整个交互流程其实很直观:用户输入触发函数调用,返回结果后直接渲染到界面上。核心逻辑在于 chat_stream 函数,它负责整理多轮上下文并处理流式响应。
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,
)
partial = ""
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
partial += delta
yield partial
demo = gr.ChatInterface(
fn=chat_stream,
title="AI 智能助手",
description=,
)
__name__ == :
demo.launch(server_name=, server_port=)



