每个应用,各自维护。
入口、上游凭证与异常处理,分散在不同应用。
从各自维护连接,
到集中组织模型入口。
入口、上游凭证与异常处理,分散在不同应用。
应用使用网关凭证,上游连接凭证集中管理。
目录帮助了解模型,别名组织调用目标,
供应商与通道定义连接。
概念关系示意,非内核执行顺序。目标模型 A · 核对能力与可调用状态。
模型目录组织模型信息与规格,帮助核对上下文、模态与工具能力。目录里有记录,不代表已经接通。
概念关系示意,非内核执行顺序。assistant-chat · 需自行配置的业务别名。
将业务名称与后端目标建立映射,集中维护调用关系。替换目标前,仍需验证参数、响应与业务效果。
概念关系示意,非内核执行顺序。通道 A · 供应商连接下的已配置通道。
供应商连接定义服务地址与网络配置,通道组织可用的上游凭证或端点,并按配置参与选择。
配置地址、凭证与模型名称,
再验证业务依赖的参数和响应。
请求转换 · 目标路由
响应与流式事件适配
应用采用的接口与后端模型服务分别组织。右侧展示部署形态,M、N 表示多种接入与目标,不是已验证的数量;连线不代表任意组合均完整兼容。
每个组合分别核对:普通请求、流式返回、工具调用与多模态能力。具体支持范围取决于接口、目标模型及接入配置。
POST /v1/chat/completions采用 Chat Completions 请求结构的应用。
查看接口文档POST /v1/responses采用 Responses 请求结构的应用。
查看接口文档POST /anthropic/v1/messages采用 Anthropic Messages 请求结构的应用。
查看接口文档import os
from openai import OpenAI
client = OpenAI(
base_url=os.environ["OMNICORTEX_BASE_URL"],
api_key=os.environ["OMNICORTEX_VIRTUAL_KEY"],
)
response = client.chat.completions.create(
model=os.environ["OMNICORTEX_MODEL"],
messages=[{"role": "user", "content": "你好"}],
)/v1 的基础地址。先配置上述环境变量。此处仅展示调用结构,不发送真实请求。
统一入口不代表协议完全等价。特殊参数、工具调用、响应结构及模型能力,需要按实际组合验证。
按配置权重参与通道选择,不代表每一小批请求都满足固定比例。
当前目标出现可重试错误时,在配置范围内再次尝试。
满足条件时尝试已配置的候选模型或供应商,候选仍可能失败。
候选目标保留待用,本次没有执行。
本例满足降级条件,已配置的候选目标返回;实际结果取决于目标可用性与请求能力匹配。
本例假设请求允许降级,且尚未向客户端交付流式输出。
可尝试目标均未成功。应用需要处理失败结果,并结合调用记录排查。
本例假设请求允许降级,且尚未向客户端交付流式输出。
不承诺中途换模型续写,客户端应处理异常结束。
不能以更换供应商为由绕过访问规则或安全策略。
提前核对上下文、模态、工具与参数的支持范围。
按模型与协议的实际支持范围,
逐项核对业务需要的交互。
核对首段、增量、正常结束、异常结束与客户端超时。
核对返回范围、字段形态、客户端展示与多轮回传要求。
核对工具定义、调用参数、结果回传与多轮连续性。
核对输入类型、上下文限制与候选模型的能力。
网关适配不会让目标模型获得其原本不支持的能力。工具调用信息的传递,也不等于网关已执行外部工具。
将应用与模型服务之间分散的连接、凭证和调用名称集中组织,并为适用的上游异常配置后续尝试路径。
普通 API 网关主要处理通用 HTTP 转发与访问控制;模型网关进一步处理模型名称、供应商协议、流式响应和工具调用等模型接口语义。具体适配范围取决于模型与协议组合。
应用通常使用分配的网关调用凭证,上游连接凭证在网关侧管理。具体鉴权和访问范围按部署方式及策略配置确认。
这是常见接入起点。模型名称、特殊参数、响应格式以及流式和工具调用仍需验证,兼容入口不代表所有功能完全等价。
别名帮助维护稳定的调用名称,不保证不同模型的输出质量和能力一致。替换前应验证业务样例、上下文和工具调用。
可按支持的协议和连接配置接入不同部署形态的模型。自部署网关仍可能向云端模型发送请求,数据路径取决于选用的目标和服务配置。
不会。需要存在候选配置并满足降级条件,候选也可能失败;不允许降级的错误应终止后续尝试。
不承诺已经输出后的跨模型续写。客户端需要处理异常结束,是否重发以及如何组织上下文由应用自身决定。
不代表。还需要有效连接、可用通道、相应访问权限,以及模型与请求能力匹配。