Jev 不是 OpenAI 兼容模型,无法直接接入 OpenWebUI 的「远程模型」表单,因其使用 /v1/decide 结构化决策接口,而非 OpenAI 的 /chat/completions 流式文本协议。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Jev 不是 OpenAI 兼容模型,不能直接填进 OpenWebUI 的「远程模型」表单。OpenWebUI 默认只支持 OpenAI-style API(/chat/completions 端点),而 Jev 是 TypeSafe 官方定义的结构化决策接口,走的是 /v1/decide,返回 JSON 结构而非流式文本,两者协议不兼容。
为什么填了 API Key 也连不上
你在 OpenWebUI 的「设置 → 连接」里填了 TypeSafe 的 API Key 和 Base URL(比如 https://api.typesafe.ai),但测试连接失败或发消息报 404/405,根本原因是:OpenWebUI 会固执地往 /v1/chat/completions 发 POST 请求,而 Jev 根本没有这个路径。它只响应 /v1/decide,且请求体格式是 {"state": "...", "questions": [...]},不是 OpenAI 的 messages 数组。
- OpenWebUI 不识别
jev-1.13.0这类模型 ID,也不会把它列进下拉框 - 即使你手动填入模型 ID,它仍会按 OpenAI 协议拼路径,最终请求
/v1/chat/completions,网关直接返回 404 - TypeSafe 官方明确说明 Jev 是“代码可直接使用的结构化答案”,不是对话模型,不提供流式输出或 role/content 消息格式
想在 OpenWebUI 里用 Jev,得加一层适配器
必须通过中间服务把 OpenWebUI 的 OpenAI 请求转成 Jev 能懂的格式。常见做法是写一个轻量代理(比如用 Flask/FastAPI),部署在本地或同机网络内:
- 代理监听
/v1/chat/completions,接收 OpenWebUI 的标准请求 - 提取
messages[0].content作为state,把用户问题映射为 Jev 的Noul或Choice问题 - 用你的
API Key向https://api.typesafe.ai/v1/decide转发 - 把 Jev 返回的
choices[0].answer和confidence包装成 OpenAI-style 的choices[0].message.content响应回去
这个代理的 Base URL 才是你该填进 OpenWebUI 的地址,而不是直接填 TypeSafe 的官方地址。
填错密钥的典型表现和检查点
如果你坚持绕过适配器、硬填 TypeSafe 的 Key 和地址,大概率遇到这些现象:
- 填
https://api.typesafe.ai测试连接就报 404:因为 OpenWebUI 默认加/v1/models,而 TypeSafe 的模型列表端点是/v1/models?scope=jev,不兼容 - 填
https://api.typesafe.ai/v1后测试连接成功,但发消息报 401:Jev 的鉴权头要求Authorization: Bearer <your_key>,但 OpenWebUI 可能漏传或格式错位(比如多空格) - 填对了却返回空内容:Jev 对输入长度敏感,
state+ 单个问题超过 32K Token 会静默截断,OpenWebUI 收不到错误,只看到空响应
真正落地时,别试图让 OpenWebUI “原生支持” Jev——它不是设计来干这事的。适配器那几十行代码才是可控、可调、可 debug 的路径。否则你花半天调配置,最后发现是协议层不匹配,白费时间。

















