【Agent智能体项目实战二】通义千问流式输出:实现像 ChatGPT 一样逐字打印效果

一、环境准备

bash 复制代码
pip install openai

二、完整流式输出代码

python 复制代码
from openai import OpenAI

# 1. 创建 OpenAI 格式客户端(对接阿里云通义千问)
client = OpenAI(
    api_key="你的ApiKey",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

# 2. 发起聊天请求,开启流式输出
response = client.chat.completions.create(
    model="qwen3.5-flash",
    messages=[
        {"role": "system", "content": "你是一个Python编程专家,幽默、简洁、不废话。"},
        {"role": "assistant", "content": "我是Python编程专家,你要问什么?"},
        {"role": "user", "content": "你是谁"}
    ],
    stream=True  # 关键:开启流式输出
)

# 3. 逐字接收并打印结果
for chunk in response:
    # 获取当前片段的内容
    content = chunk.choices[0].delta.content
    if content:
        # 逐字输出,不换行,立即刷新缓冲区
        print(content, end="", flush=True)

三、调用流程图(Mermaid,CSDN 可直接渲染)

用户运行代码
创建OpenAI客户端
配置api_key + base_url
发送请求 stream=True
通义千问模型开始逐字生成
返回一个个数据块chunk
遍历chunk 提取delta.content
逐字打印 实时显示


四、代码核心讲解

1. 关键参数:stream=True

  • stream=True:开启流式输出
  • 模型不再等全部生成完再返回,而是生成一点返回一点

2. 流式响应处理

python 复制代码
for chunk in response:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="", flush=True)
  • chunk:每一小段返回的数据
  • delta.content:本次新增的文字内容
  • end="":不自动换行
  • flush=True立即显示,不缓存

五、运行效果

控制台会像这样逐字蹦出来

复制代码
我是一名专业又有趣的Python编程专家,专门帮你解决各种Python问题~

六、重要安全提醒

  • 不要把 API Key 明文上传到公网!
  • 建议使用环境变量:
python 复制代码
import os
client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)

七、总结

  • 一行 stream=True 即可开启流式逐字输出
  • 通义千问完全兼容 OpenAI 格式,代码零改动
  • 适合做:聊天机器人、AI 助手、控制台炫酷效果
相关推荐
leeyi37 分钟前
把软件装进不能上网的机房——一套建好了、还没上过战场的交付工程(第101篇)
docker·aigc·agent
一点一木2 小时前
🚀 2026 年 8 月 GitHub 十大热门项目排行榜 🔥
人工智能·github
ssshooter2 小时前
现在网页都能提供 MCP 了?!
前端·人工智能·程序员
京东云开发者2 小时前
Claude Code vs Codex 记忆体系深度对比
人工智能
SelectDB2 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
机械改造鹅2 小时前
从零开始拆解Pi系列——(7)Extension API
agent
plainGeekDev3 小时前
Agent代码审查与批量修复流水线
agent·ai编程·claude
不加辣椒3 小时前
第 4 章 什么是 Harness Engineering
人工智能
桃西西呀3 小时前
上下文窗口都卷到 100 万了,大模型为什么还在为"位置"发愁?
人工智能·llm·ai编程
阿拉斯攀登3 小时前
SpringBoot整合MQTT:后端订阅设备数据、解析传感器报文
人工智能