fix: Update TypeSafe JEV client to support API v0.7 schema
Los mantenedores suelen responder en 1 día
@wanghe-fit2cloud ya está trabajando en esto.
Desde el 13/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
现象
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写接口与端点可配置能力,方便用户在官方端点异常时切换到自建/代理端点。
- Lenguaje dominante
- Go
- Estrellas
- 37.1k
- Forks
- 3.4k
- Merge medio
- 11 h 49 min
- PR fusionados (30 d)
- 94
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de 1Panel-dev/1Panel
-
[Feature] Country (GeoIP) based rules in firewall for TCP/UDP portsPosiblemente ocupada @wanghe-fit2cloud la tomó hace 1 día. Abierto
1Panel-dev/1Panel#14087 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Bug] Unable to Configure the Website Directory When Installing OpenRestyPosiblemente ocupada @wanghe-fit2cloud la tomó hace 1 día. Abiertotype: question
1Panel-dev/1Panel#14084 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Feature] Add RPM, QPS, and TPM Limits to AI GatewayPosiblemente ocupada @wanghe-fit2cloud la tomó hace 1 día. Abiertotype: ai-gateway
1Panel-dev/1Panel#14081 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Bug] Revoked API Keys Cannot Be DeletedPosiblemente ocupada @wanghe-fit2cloud la tomó hace 2 días. Abiertotype: feature-request
1Panel-dev/1Panel#14074 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Bug] The UI language switches to English after deleting a child node in multi-node managementPosiblemente ocupada @wanghe-fit2cloud la tomó hace 2 días. Abiertostatus: dev-complete status: ready-for-release type: optimization
1Panel-dev/1Panel#14073 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de 1Panel-dev/1Panel
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Gentleman-Programming/engram#1899 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
OpenTollGate/tollgate-module-basic-go#949 ·
Los mantenedores suelen responder en 1 día