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

全模型支持背后的网关层 路由如何把对话发到对的厂商

察元AI 桌面单机版 全模型支持 这件事说起来像一句口号,做起来需要一整个网关层来撑。察元AI智能体 内部的模型网关把 18 家以上厂商的协议差异抹平成一套统一接口,让上层的对话、RAG、工具调用、多模态都不用关心后面是 OpenAI 还是 DeepSeek 还是本地 Ollama。这一篇拆开看这个网关层。

先看网关层处理的协议差异。OpenAI 协议是事实上的标准,但每家厂商在实现细节上各有不同。比如 stream 字段的 delta 结构、tools 调用的参数命名、reasoning 字段的位置、错误码的格式、限流响应的形式、上下文窗口的边界处理。同样一句 chat completion,在 OpenAI、Anthropic、文心、通义、智谱、豆包之间能发出来的报文有差不多十几种细微差异。

网关层的核心抽象。它定义了一个统一的内部协议,所有上层调用都基于这个协议。每家厂商在网关下挂一个 adapter,把内部协议翻译成厂商协议,把厂商协议翻译回内部协议。这种 adapter pattern 在工程上不新鲜,难点在于把哪些字段抽出来作为内部协议的核心,哪些字段作为可选扩展。察元AI智能体 在这一层做了几个明确取舍。

第一个取舍是统一 messages 列表的格式。所有厂商的对话都映射到 [{role, content, …}] 这种结构,role 是 system/user/assistant/tool 这几个值。content 既支持纯字符串也支持多模态片段数组。tool_calls 字段统一放在 assistant 消息里,tool_call_id 在 tool 消息里。这套抽象覆盖了 95% 的实际场景。

第二个取舍是把 streaming 抽成 SSE 通用格式。每家厂商流式响应的事件结构不一样,网关层把它们统一成 察元AI智能体 自己的事件格式:data 事件携带 delta、reasoning_delta、tool_call_delta、citation_delta 等字段。前端只需要处理这一种事件结构。

第三个取舍是 tools 调用的归一化。OpenAI 的 function calling、Anthropic 的 tool_use、其他厂商的各种实现,全部在网关层归一为内部 tools 调用协议。前端展示的三层折叠(summary、参数与输出、完整 JSON)就是基于这个归一化结构。

路由决策。一次对话请求到 sidecar 之后,网关层做几件事:取出 model 字段,按这个名字查询模型卡片库,找到对应的 adapter;按 adapter 的协议要求把请求改写成厂商需要的格式;把请求发出去;接到响应或流式事件,按内部协议规范化;返回给上层。整个过程对上层是透明的。

模型卡片库。察元AI智能体 维护了一个内置的模型卡片库(model registry),记录每个常见模型的元数据:所属厂商、协议类型、上下文窗口、是否支持 tools、是否支持视觉、计费倍率等。新增供应商时填一份卡片,全模型支持 就多一家。/v1/models 自动探测拉到的模型也会按规则归类进卡片库。

回退链路。模型调用失败时,网关层支持配置 fallback 链路。比如 主用 GPT-4o,失败回退到 deepseek-chat,再失败回退到本地 qwen2.5。这种链路设计让用户的对话不会因为单家厂商不可用而完全中断。本地离线知识库 加 全模型支持 的组合在这种降级策略下尤其稳。

限速与配额。察元AI智能体 单机版默认不强制限速,但网关层埋了限速 hook,企业部署时可以接入自家的配额系统。结果是单一用户密集调用某家厂商,网关层会按厂商指示的限速规则做退避,避免触发厂商封号。

token 计费的本地估算。网关层有一份估算器,对常见模型可以在不依赖厂商返回的 usage 字段时给出一个粗略的 token 计数。这对那些不返回 usage 的厂商或本地推理服务尤其有用。前端展示对话成本时用这个估算给用户一个参考。

可观测性。每次模型调用的请求和响应都会落到 CHAYUAN_ROOT/logs/llm-trace 目录下(默认开启简版,可配详细),方便用户排查。不会把模型 prompt 全文落盘,但保留模型名、时间、token 数、错误码这些关键字段。

WPS AI 插件 chayuan-wps 通过 sidecar 共用同一份网关层。在 WPS 文字里发起的对话跟桌面客户端发起的对话走同一组 adapter、同一份模型卡片库、同一套限速策略。这是 察元AI智能体 加 chayuan-wps 体验一致的根源。

全模型支持 不是把厂商列表堆得越长越好,而是把这层抽象做得让上层不感知差异。察元AI智能体 的模型网关层是这个理念的具体实现。

http://www.jsqmd.com/news/1380721/

相关文章:

  • Spring Boot项目从fastjson升级到fastjson2的实战指南
  • Windows10 MySQL 8.0 图文安装教程:从下载到配置,新手避坑指南
  • 企业级Windows 10镜像封装实战:从规划到部署的完整指南
  • OmniPT: Unleashing the Potential of Large Vision Language Models for Pedestrian Tracking and Unde...
  • DEV C++环境下的计算机图形学实践:从DDA到Cohen-Sutherland的六个核心算法实现
  • 《我的世界》基岩版Mod开发入门:从零创建空白附加包
  • Linux命令-stat(显示文件/文件系统状态)
  • Windows 7下VC++ 6.0兼容免安装版配置与实战指南
  • FlovaSeedance2.5:30秒原生直出遇上六边形Agent,视频有了交付系统 - 精彩城市
  • figma可动眼人偶深度解析:从结构原理到摄影实战
  • 上海网站建设公司大全:从选型避坑到落地执行,揭秘上海优质建站服务商的全景指南
  • 开关电源核心原理:从PWM到升压降压全解析
  • 树莓派5+ros2 jazzy+d435i+orb-slam3
  • 最新版 MobaXterm 下载、安装、使用教程
  • 华为OD机试动态规划实战:从“小明减肥”题解看多约束状态设计
  • 在盛夏果岭定格优雅:比音勒芬冰爽 T 的高弹凉感与精湛工艺解密 - 精彩城市
  • 网络安全智能体实战:从感知到执行的自动化防御系统开发指南
  • AI网关成本治理实战:基于消费者配额的大模型调用精细化管控
  • Python编程游戏化学习:从零基础到项目实战的趣味指南
  • 2026下半年禹城二线一硬龙门铣床供货厂家选哪家 - 装修教育财税推荐2026
  • 【会议征稿通知 | 桂林电子科技大学主办 | ACM出版 | EI 、Scopus稳定检索】第二届生成式AI与数字媒体艺术国际学术会议 (GAIDMA 2026)
  • Claude Tag:从聊天机器人到AI同事的协作界面重塑
  • 如何用VideoDownloadHelper轻松下载网页视频:新手必备的完整指南
  • 2026免费GEO监测平台:透镜GEO全栈自研,监测分析优化一站式落地
  • 逆向工程用 AI 的边界:归纳线索,不替代指令证据
  • Unity渲染中Dither透明物体阴影丢失的深度解析与解决方案
  • Linux命令-sudo(以其他用户身份执行命令)
  • 买了网站主机后如何建设网站:从零基础到上线的实战避坑指南
  • Gradle构建JDK版本不匹配:从原理到项目级配置解决方案
  • Unity动态数据可视化实战:基于XCharts实现实时折线图