fix: Update TypeSafe JEV client to support API v0.7 schema
Maintainer antworten meist innerhalb von 1 Tag
@wanghe-fit2cloud arbeitet bereits daran.
Seit 13.10.2026.
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
现象
1Panel AI 网关应用 v1.3.0 的智能路由「外部决策服务」(provider=typesafe、model=jev-latest)自 2026-10-11 起持续失败:
GET /api/v1/admin/smart-routing/decision-service→status.available=false、lastFailureCode="invalid_response";POST /api/v1/admin/smart-routing/decision-service/test→ HTTP 502upstream_invalid_response(2026-10-12 复现);- 决策日志(
GET /api/v1/admin/smart-routing/decisions)自 10-11 06:14 UTC 起decisionSource=fallback条目 100% 出现;同一配置在 10-05~10-08 曾连续成功 600+ 次(decisionSource=jev)。
结果:JEV 模式不可用,智能路由只能降级为 local_vector(向量两档)。
根因分析(供开发参考,证据充分)
- TypeSafe SDK v0.7(2026-10-09 上线,changelog:序列化库 msgspec → pydantic;
Score.criteria改为有序序列;Choicecriteria 要求对象/字典)收紧了/v1/systemone的请求 schema。 - 网关 v1.3.0 的 JEV 决策客户端仍按旧 schema 构造请求 → 上游返回 HTTP 422(pydantic 校验错误),网关归类为
invalid_response。 - 已排除地区封锁(451):2026-10-12 在同一网络出口直连
api.typesafe.ai/v1/systemone(同凭据、jev-latest、按 v0.7 新 schema 组请求体)21 次全部 200 成功,且答案稳定。
复现步骤
- 部署 1Panel AI 网关应用 v1.3.0,启用 JEV/外部决策服务(配置 TypeSafe 凭据);
- 调用
POST /api/v1/admin/smart-routing/decision-service/test; - 观察到 502
upstream_invalid_response;status.available=false;决策日志持续出现decisionSource=fallback。
期望行为
JEV 决策服务跟随 TypeSafe API v0.7 新 schema(choice criteria = dict(选项→描述)、score criteria = 有序数组)正常调用,/test 返回 200,JEV 模式可作为智能路由的第一选择(向量模式保留为兜底)。
环境
- 1Panel AI 网关应用:v1.3.0(2026-09-24,Docker 镜像
1panel/ai-gateway) - 上游:TypeSafe System One API(
api.typesafe.ai/v1/systemone,modeljev-latest,实测解析为 jev-1.13.0) - 故障起点:2026-10-11 06:14 UTC(与 TypeSafe v0.7 上线时间 10-09 吻合)
附带建议
- 升级网关内 TypeSafe 客户端的
/v1/systemone请求体构造至 v0.7 schema; - 目前 admin API 对
decision-service只读(PUT/POST 均 400/404),endpoint/凭据只能在 Web UI 配,建议补充PUT /smart-routing/decision-service写接口与端点可配置能力,方便用户在官方端点异常时切换到自建/代理端点。
- Vorherrschende Sprache
- Go
- Sterne
- 37.1k
- Forks
- 3.4k
- Ø Merge
- 11 Std. 40 Min.
- Gemergte PRs (30 T.)
- 95
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus 1Panel-dev/1Panel
-
[Feature] 防跨站攻击增加PHP_ADMIN_VALUE配置Evtl. vergeben @wanghe-fit2cloud hat das heute übernommen. Offen
1Panel-dev/1Panel#14112 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Feature] 增加批量修改网站PHP版本的功能Evtl. vergeben @wanghe-fit2cloud hat das heute übernommen. Offen
1Panel-dev/1Panel#14111 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Feature] 应用商店增加 WeKnoraEvtl. vergeben @wanghe-fit2cloud hat das heute übernommen. Offen
1Panel-dev/1Panel#14110 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Feature] 任务中心终止任务Evtl. vergeben @wanghe-fit2cloud hat das heute übernommen. Offen
1Panel-dev/1Panel#14107 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug] docker拉取镜像失败Evtl. vergeben @wanghe-fit2cloud hat das heute übernommen. Offen
1Panel-dev/1Panel#14106 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in 1Panel-dev/1Panel
Ähnliche Issues
-
area/import kind/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
kind/documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
kubernetes-sigs/dra-driver-nvidia-gpu#1569 ·
Maintainer antworten meist innerhalb von 1 Tag
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P2
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
openclaw/openclaw-enterprise#2571 · 1 Kommentar · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
[BUG] Keycloak OIDC group search fails for non-ASCII (e.g. Chinese) search terms with "unexpected end of JSON input"Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag