AI对话接口入参解析

部署运行你感兴趣的模型镜像

欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。

在这里插入图片描述

引言

本篇做常见的AI对话接口入参解析。
更多LLM应用设计分享可以看https://github.com/tataCrayon/llm-for-python-developers/tree/master/doc/system%20design

1 入参解析

1.1 核心参数

  • session_id/chat_session_id
    会话id,唯一标识对话链路,用于多轮上下文关联。

  • parent_msg_id
    消息id,用于标记当前消息在会话中的位置,实现消息顺序管理。

1.2 核心参数细节解析

就通义千问和DeepSeek而言,核心参数的获取流程如下:

  • session_id
    核心的session_id,QW是创建对话后第一次请求返回的,而DS是先通过create方法调用获取chat_session_id。

  • parent_msg_id

内容有所不同
两者第一次请求时,parent_msg_id都是空的,DS是null,而QW是""。
且两者值有很大不同,QW估计是UUIDv4或者哈希值,而DS简单的多,是从1开始递增的整数。

获取流程不同
不同的地方在于后续parent_msg_id的获取,QW是通过上一次请求返回的message_id获取,DS是

parent_msg_id其他分析

  • 对话分支
    msg_id与parent_msg_id是典型的树形结构的邻接设计,应当是可以和Gemini一样支持“对话分支”的。
    DS和QW不支持“对话分支”的话可以只采用一个msg_id作为最新消息标识的,即last_msg_id。
    但是设计一个这样也挺好的。
  • 连续对话的null值(边界问题,暂且忽略,TODO)
    所以实际设计时要注意连续对话中的parent_msg_id,如果为null或者"",应当是有问题的。

1.3 其他参数

会有一些其他参数设计用于做功能控制,比如:

  • 超时控制
  • 访问类型
  • 上下文长度
  • 调试参数
  • 文件信息
  • AI行为修改

这些参数也可能在Headers中,本项目暂不做分析与设计。

1.4 入参总结

简单工程觉得可以融合QW与DS,我们第一次不额外调用create接口生成seesion_id,而是第一次请求返回,同时msg_id使用整数。
简单的入参可以如下:

{
  "session_id": "首次请求留空", 
  "parent_msg_id": 0, // 首次为0,后续为上次响应的 msg_id
  "content": "你好!",
  "stream": true,
  "options": {
    "max_tokens": 1024,
    "temperature": 0.7
  }
}

2 响应解析

  • message_id\parent_msg_id
    QW每次请求都会返回一个msg_id作为下一次请求的parent_msg_id。
    DS也一样,名称不同。这里的细节有两点。

2.1 QW的冗余

这里值得注意的地方在于:
返回的每条data数据中都包含session_id、message_id和parent_msg_id。

作为同样火热的产品,为什么QW有这样的冗余,而DS又没有?

  • 数据独立性
    简单分析是QW为了每条流式响应的数据的独立性,类似gRPC流式调用(每个帧自带元数据)。
  • 多会话并行支持
    经验证,同一session_id下多开对话是可以的,msg_id不同,互不干扰。
    但是并没有做到对话分支的效果,而是保留时间靠后的对话作为patent_msg。
  • 更灵活
    多标识多灵活多功能。易于调试、恢复等。虽然提升了复杂度。

DS设计相对精简。QW的这点数据量其实也可以忽略不计。

2.2 大量的元数据

我们可以看到QW返回的元数据密度极高,而DS极低。
两者设计理念差异巨大,这里用DS做简单分析:

维度通义千问 (QW)DeepSeek (DS)设计理念差异
元数据密度极高(每帧 20+ 字段)极低(核心仅 2-3 字段)QW:状态完备性;DS:传输效率
消息结构全量快照式(含完整历史)增量补丁式(仅最新内容)QW:客户端免计算;DS:带宽优化
状态管理显式声明(msgStatus/contentType等)隐式事件驱动(event: finish等)QW:强状态机;DS:轻事件驱动
内容传递通过 contents[].content 传递完整内容直接通过 v 传递纯文本增量QW:结构化优先;DS:极简优先
会话控制内嵌会话元数据(sessionOpen/share等)独立会话事件(update_session)QW:耦合设计;DS:关注点分离

总结:QW牺牲带宽提升了每帧数据的独立性,进而提升了对话整体可用性。DS则保证了带宽。

2.3 响应总结

简单融合一下,DS方案更适合做一个一般项目。

// 初始帧(携带元数据)
{
  "session_id": "sess-123",
  "msg_id": 5,
  "features": {  // 功能开关
    "can_share": true,
    "can_feedback": false 
  }
}

// 增量帧(极简传输)
{"delta": "Hello"}

// 状态帧(按需发送)
{"status": "generating", "token_used": 128}

// 结束帧
{"status": "finished", "full_text": "Hello World!"}

3 Header分析(使用了AI)

DS和QW的Request Header都存储了较多的信息。

DS如下:

Header 名称方向设计目的示例值
Authorization请求身份验证核心机制Bearer sk-xxxBearer sess-zzz
Content-Type请求声明请求体格式application/json
Accept请求指定可接受的响应格式application/json
X-Session-Id响应返回当前会话ID (替代传统session cookie)sess-abc123xyz456
X-Request-ID双向全链路追踪ID (微服务调试关键)req-9876543210
X-RateLimit-Limit响应单位时间最大请求数100
X-RateLimit-Remaining响应剩余可用请求数97
X-RateLimit-Reset响应限额重置时间戳 (秒)1698765432
X-Conversation-ID响应长对话唯一标识 (跨session持续对话)conv-5e8f7a3d
X-User-Id请求可选 业务系统用户ID (用于审计/分析)user_12345
Stream请求启用流式响应 (SSE技术)true
Cache-Control双向控制缓存行为no-cache, no-store
  • Authorization 的双模式设计
# 模式1:API Key 认证(首次请求)
Authorization: Bearer sk-98c572b6f5a84f2a90b2c7d3e8f45912

# 模式2:Session 认证(后续请求)
Authorization: Bearer sess-abc123xyz456
  • 流式传输
    Stream: true 显式声明需要流式响应
    text/event-stream 启用 Server-Sent Events (SSE)
    chunked 编码实现动态内容分块传输
# 请求
Stream: true
Accept: text/event-stream

# 响应
Content-Type: text/event-stream
Transfer-Encoding: chunked

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深理解算法实现细节,同时可考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tataCrayon|啾啾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值