当前位置: 首页 > news >正文

python学习 调用硅基流动 对话模型接口 实现 流式输出

效果:

代码:

import requests
import jsonurl = "https://api.siliconflow.cn/v1/chat/completions"payload = {"model": "Qwen/Qwen3-8B","max_tokens": 512,"enable_thinking": False,"thinking_budget": 4096,"min_p": 0.05,"temperature": 0.7,"top_p": 0.7,"top_k": 50,"frequency_penalty": 0.5,"n": 1,"stream": True,  # 启用流式输出"messages": [{"content": "武汉得气候怎么样","role": "system"}]
}
#xxxxxxx换成自己得密钥
headers = {"Authorization": "Bearer xxxxxxx","Content-Type": "application/json"
}# 发送流式请求
response = requests.post(url, json=payload, headers=headers, stream=True)# 处理流式响应
if response.status_code == 200:print("开始接收流式输出:")print("-" * 40)for line in response.iter_lines():if line:# 解码并去除 "data: " 前缀decoded_line = line.decode('utf-8')if decoded_line.startswith('data: '):data_str = decoded_line[6:]  # 去除 "data: " 前缀# 检查是否为结束标志if data_str.strip() == '[DONE]':print("\n\n流式输出完成")breaktry:# 解析 JSON 数据data = json.loads(data_str)# 提取内容并实时输出if 'choices' in data and len(data['choices']) > 0:delta = data['choices'][0].get('delta', {})content = delta.get('content', '')if content:print(content, end='', flush=True)except json.JSONDecodeError:# 跳过无法解析的行continue
else:print(f"请求失败,状态码: {response.status_code}")print(response.text)

解释

# 普通请求:一次性返回完整响应
response = requests.post(url, json=payload)  # 等待完整响应

# 流式请求:保持连接开放,持续接收数据
response = requests.post(url, json=payload, stream=True)  # 立即返回,持续接收

sse格式:

data: {"choices":[{"delta":{"content":"武"}}]}

data: {"choices":[{"delta":{"content":"汉"}}]}

data: {"choices":[{"delta":{"content":"的"}}]}

data: [DONE]

http://www.dtcms.com/a/332497.html

相关文章:

  • 剧本杀小程序系统开发:重构推理娱乐生态
  • Spring WebFlux 性能优化实践指南
  • DAY 46 通道注意力(SE注意力)
  • 穿越数学时空:微积分的前世今生与无限未来
  • [论文阅读] 人工智能 | 当Hugging Face遇上GitHub:预训练语言模型的跨平台同步难题与解决方案
  • python30-正则表达式
  • 【模型评估中的BLEU、ROUGE、Bertscore、BERT分别什么意思?】
  • 把 AI 装进“冰箱贴”——基于超低功耗语音合成的小屏电子价签
  • 双面盲文刻印机市场报告:需求增长与技术升级驱动行业发展​
  • 计组-单周期cpu与多周期cpu对比
  • 杭州网站建设,外贸独立站搭建攻略分享
  • System V通信机制
  • 博弈论06——PPAD复杂度问题
  • 47.分布式事务理论
  • demo 通讯录 + 城市选择器 (字母索引左右联动 ListItemGroup+AlphabetIndexer)笔记
  • 2025最新:如何禁止指定软件联网?
  • 字符LCD显示模块是什么?
  • sqli-labs通关笔记-第50关 GET数值型order by堆叠注入(手工注入+脚本注入两种方法)
  • 智能工厂生产监控大屏-vue纯前端静态页面练习
  • [git] 当GitHub宕机时,我们如何协作?| github同步gitee的部署方法
  • 通俗易懂理解盲超分
  • 「iOS」————APP启动优化
  • 中年海尔,是时候押注新方向了
  • 笔试——Day39
  • Lecture 10: Concurrency 3
  • Midjourney绘画创作入门操作
  • 项目管理工具
  • 数据结构初阶:排序算法(二)交换排序
  • 第5节 循环神经网络 RNN(Recurrent Neural Network)
  • 基于多模型的零售销售预测实战指南