1. API请求
智信AI-使用指南
  • 使用指南
    • 平台介绍
    • 使用指南
      • 快速开始
      • 注册账号
      • 账户充值
      • 新建API令牌
      • 获取BaseUrl
      • 系统令牌及用户ID
      • 余额查询接口
      • 计费规则
      • 平台管理类接口
        • 模型列表查询
        • 检索API令牌
        • 模型用量查询
        • 获取API令牌
    • 开发者文档
      • 基础核心概念
      • API请求
        • 平台通用格式
        • 文本对话(非流)
        • 文本对话(流式)
        • 输出JSON格式
        • 向量嵌入
        • 函数调用
        • 图片分析
        • Responses API
    • 接入指南
      • 编程工具
        • Cursor 配置指南
        • VSCode (Continue) 配置指南
        • Claude Code 配置指南
      • 应用集成
        • NextChat 配置指南
        • Open Claw 配置指南
        • Chatbox 配置指南
        • Dify 配置指南
  1. API请求

文本对话(流式)

OpenAI 流式请求格式#


概述:#

什么是流式输出#
Server-Sent Events(SSE) 是一种基于HTTP 长连接的服务器单向主动推送技术,允许服务端以 数据流(Stream)形式,将数据分块持续发送至客户端,实现低延迟、实时的数据传输。在大模型对话场景中,SSE 是实现流式输出(打字机效果) 的标准技术方案。
服务端严格遵循固定格式推送:#
每条消息以data: 开头
消息体为 JSON 字符串
消息间以\n\n分隔
传输结束标识:data: [DONE]\n\n

接口地址#

https://ai.hcrzx.com/v1/chat/completions

请求示例#

import json
import requests

# -------------------------- 配置信息 --------------------------
API_KEY = "sk-******************************************"
API_URL = "https://ai.hcrzx.com/v1/chat/completions"
MODEL = "qwen3.6-plus"

# -------------------------- 发起 SSE 流式请求 --------------------------
def chat_stream(prompt: str):
    payload = {
        "model": MODEL,
        "messages": [
            {"role": "system", "content": "你是一个专业、简洁的助手。"},
            {"role": "user", "content": prompt}
        ],
        "stream": True,                  # 开启 SSE 流式输出
        "enable_thinking": False,        # 关闭思考过程(关键)
        "max_tokens": 2000               # 限制回答长度
    }

    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
        "Accept": "text/event-stream"    # SSE 标准请求头
    }

    # 发起流式请求
    with requests.post(
        url=API_URL,
        json=payload,
        headers=headers,
        stream=True,                     # 必须开启流式
        timeout=(10, 60)                 # 连接超时/读取超时
    ) as response:

        # 检查HTTP状态
        response.raise_for_status()

        # 逐行解析SSE数据流
        for line in response.iter_lines():
            # 跳过空行(SSE协议中空行用于分隔事件)
            if not line.strip():
                continue

            # 解码数据
            line = line.decode("utf-8").strip()

            # SSE标准:只处理 data: 开头的消息
            if not line.startswith("data: "):
                continue

            # 提取消息体
            data = line[6:]

            # 结束标志
            if data == "[DONE]":
                print("\n[输出完成]")
                break

            # 解析JSON
            try:
                chunk = json.loads(data)
                if "choices" in chunk and len(chunk["choices"]) > 0 and "delta" in chunk["choices"][0]:
                    delta = chunk["choices"][0]["delta"]
                    content = delta.get("content", "")

                    # 实时输出(不换行、强制刷新)
                    if content:
                        print(content, end="", flush=True)

            except json.JSONDecodeError:
                continue
            except KeyError:
                continue

# -------------------------- 调用示例 --------------------------
if __name__ == "__main__":
    chat_stream("曹植是曹操的儿子吗?请用简洁的语言回答")

执行结果#

是的,曹植是曹操的第三子。
修改于 2026-05-12 07:45:56
上一页
文本对话(非流)
下一页
输出JSON格式
Built with