@c轨道/系统一
从TypeSafe的Jev模型中对JSON状态进行打出选择,分数和是/否决定,作为验证结果或打出倒数返回. 轨道和交流剂的推论提供者:登记为 @intx/inference 适配器,也可以独立操作 evaluate()。 。 。 .
为什么 @c轨道/系统一?
- 输入决定,而不是自由文本. 你用ID发送问题;你得到每个ID一个经过验证的决定,有概率和信心. 没有快速解析 .
- 失败是数据. 缺少密钥、 超时、 HTTP 出错或坏身体返回 a
FallbackResult带有reason,所以一个门可以失败 关闭没有try。只有无效的调用输入. - 一个电话,很多问题. 列表中的每个问题都会在一个POST中出场,以1.5的默认超时为界.
它对照问题评价结构状态。 对于开放式聊天完成,请使用一般推论提供者,例如 @corbits/openai-responses。 。 。 .
安装
bun add @corbits/system-one @intx/inference@^0.4.0 @intx/types@^0.4.0
运行在 Bun QQ 1.2 或 Node QQ 24.
在发布前消耗一个精确的 Git 承诺, 启用包的
源条件, 因为 Git 依赖性不运行 prepack数字 :
bun add github:corbitsdev/corbits-system-one#<commit>
bun --conditions=corbits-system-one-src your-script.ts
已出版的消费者继续使用 dist 默认输入.
快速启动
需求 TYPESAFE_API_KEY 设置.
import { evaluate } from "@corbits/system-one";
const result = await evaluate({
state: { action: "deploy", env: "production" },
questions: [
{
id: "escalate",
type: "boolean",
instructions: "Must this request be escalated for human approval?",
},
],
});
console.log(result.fallback ? result.reason : result.decisions);
如果成功,每个问题都有一个决定,或者失败的后退原因:
[{ id: "escalate", type: "noul", noul: 0.91 }];
布尔问题回答如下: noul,从0到1的概率,答案是肯定的.
合适的话
互换 管理AI代理作为主要负责人(持有自己身份、授权和证书的账户)。 轨道包增加了一个代理产品需要的周围.
- 运行于 : 或任何过程.
evaluate()不需要交换运行时间. - 插入到 : 页:1
@intx/inference适配器登记册,作为corbits-system-one提供方编号. - 与 :
@corbits/openai-responses财务报告和审定财务报表@corbits/ollama-adapter其他的轨道推论提供者.
参考文献
| 导出 | 说明 |
|---|---|
evaluate(input, options?) | 运行一个评价。 回返 EvaluateResult:决定或决定 FallbackResult。 。 。 . |
systemOne(input, options?) | 关键决定。 回返 answers 由问名,或同倒回. |
choice, (中文(简体) ), noul, (中文(简体) ), score, (中文(简体) ), box | 构建一个按键问题 . box 定位一个区域并需要模型 jev-preview。 。 。 . |
image, (中文(简体) ), Image.fromBase64 | PNG 或 JPEG 字节, a Blob,或基数64. 其他格式在发送前被拒绝. |
withAssets | 标记这样插出图像的模板。 还有 withAssets.join。 。 。 . |
createSystemOneAdapter(config?) | 回返a ProviderAdapter 页:1 runInference。 。 。 . config 是一个 EvaluateConfig。 。 。 . |
createSystemOneAdapterFactory | 互换 AdapterFactory 页:1 SIDECAR_ADAPTER_MANIFEST{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}用点夸张的语气. |
SYSTEM_ONE_PROVIDER | 这个 "corbits-system-one" 提供方编号. |
DEFAULT_TIMEOUT_MS | 1500默认值 timeoutMs。 。 。 . |
SystemOneError | 丢入无效输入或 a custom 无终点 url。 。 。 . |
SystemOneTelemetryEvent | 传递到的事件的图表和类型 onTelemetry。 。 。 . |
EvaluateOptions, (中文(简体) ), EvaluateDeps | 类型 options数字 : onTelemetry,以及 deps: { fetch, scheduler }。 。 。 . |
Question, (中文(简体) ), QuestionList, (中文(简体) ), Decision, (中文(简体) ), EvaluateInput, (中文(简体) ), EvaluateConfig, (中文(简体) ), EndpointConfig, (中文(简体) ), EvaluateResult 财务报告和审定财务报表 FallbackResult 导出为方舟型计划和类型.
问 题
type | 字段 | 决策领域 |
|---|---|---|
choice | instructions, (中文(简体) ), criteria (可选名称 ) null, 1–255 选项) | choice, (中文(简体) ), probabilities, (中文(简体) ), confidence |
score | instructions, (中文(简体) ), criteria (2至10个说明) | score, (中文(简体) ), legend, (中文(简体) ), probabilities, (中文(简体) ), confidence |
boolean | instructions选项 criteria: { true?, false? } | noul |
noul | 与 boolean | noul |
box | instructions 说明要找到什么。 使用模式 jev-preview。 。 。 . | box (单位:千美元)top, (中文(简体) ), bottom, (中文(简体) ), left, (中文(简体) ), right 作为分数, confidence |
每个问题都有 id在列表中独一无二. box 外缘 [0, 1] 拒绝.
密钥问题
systemOne 使用相同的状态和记录 问题建立与 choice, (中文(简体) ), noul, (中文(简体) ), score,以及 box。名称是答案键。 这些帮助者汇编到列表中 evaluate 已经发送。 同样的倒计时理由也适用,这些失败是不会发生的。 帮助者也从 @corbits/system-one/decisions。 。 。 .
import { choice, noul, score, systemOne } from "@corbits/system-one";
const result = await systemOne({
state: { document: "I was charged twice." },
questions: {
category: choice("What is this?", { billing: null, technical: null }),
escalate: noul("Must this be escalated?"),
severity: score("How severe?", ["none", "cosmetic", "unusable"]),
},
});
关于成功,请阅读 result.answers.category.choice (单位:千美元) probabilities 财务报告和审定财务报表 confidence, (中文(简体) ), result.answers.escalate.noul,以及 result.answers.severity.score。 。 。 .
image() 接受一个 Blob 或者说 Uint8Array。 。 。 . Image.fromBase64() 接受 base64 文件字节。 只有PNG和JPEG被发送. 将图像放入 state,指示,或标准,或插入 withAssets (和 withAssets.join 名单。 普通模板字符串中的图像在请求前被拒绝. assets 将名称映射到图像中, 用于平整字符串; 每个名称必须在请求中显示为自己的符号 。 任何图像的请求是 multipart/form-data 发送 TypeSafe-Danger-Zone-Images: true否则尸体就留下JSON.
import { box, image, systemOne, withAssets } from "@corbits/system-one";
const photo = image(pngBytes);
const result = await systemOne({
state: withAssets`Returned item: ${photo}`,
questions: { damage: box("The damaged area") },
model: "jev-preview",
});
providerOptions.systemOne.questions 接受此按键记录以及提问列表.
配置
input.config 页:1 evaluate,或参数为 createSystemOneAdapter数字 :
| 外地 | 类型 | 默认 | 说明 |
|---|---|---|---|
endpoint | EndpointConfig | { kind: "official" } | official, (中文(简体) ), gateway,或 custom 带有 url。每个选择 model。 。 。 . custom 可能设定 auth: "none"。 。 。 . |
timeoutMs | number | 1500 | 整个来回的路程都要开着. |
apiKey | string | 环境状况 | 覆盖环境密钥. |
端点和密钥
kind | 網址 | 默认模式 | 环境钥匙 |
|---|---|---|---|
official | https://api.typesafe.ai/v1/systemone | jev-latest | TYPESAFE_API_KEY |
gateway | https://ai-gateway.vercel.sh/typesafe/v1/systemone | typesafe-ai/jev | AI_GATEWAY_API_KEY,则 VERCEL_OIDC_TOKEN |
custom | url | typesafe-ai/jev | SYSTEM_ONE_API_KEY,除非 auth: "none" |
SYSTEM_ONE_API_KEY 也是每个端点上支持的别名,在端点自己的密钥后读取.
自定义终点 auth: "none" 不需要密钥,也不发送 Authorization官方和网关总是需要钥匙。 任何其他 auth 值是无效的输入并丢出.
退缩原因
reason | 何时 |
|---|---|
no-key | 无密钥 apiKey 或环境,终点不是习惯的 auth: "none"未发出请求. |
timeout | 包括尸体在内的往返旅行超过 timeoutMs。 。 。 . |
network | 请求在答复前失败. |
http-error | 非-2xx回应. httpStatus 保持状态. |
parse-error | 尸体不是JSON或未验证. |
detail 带有基本信息.
使用互换
将适配器注册到 SYSTEM_ONE_PROVIDER 并传递每个呼叫中的问题 providerOptions.systemOne (单位:千美元){ state?, questions? }) (中文(简体) ). 无 state,适配器将记录文本作为状态发送。 无 questions,它问一个布尔问题 与id response。 。 。 .
import { createDependencies, runInference } from "@intx/inference";
import {
createSystemOneAdapter,
SYSTEM_ONE_PROVIDER,
type QuestionList,
} from "@corbits/system-one";
const deps = createDependencies({
has: (provider) => provider === SYSTEM_ONE_PROVIDER,
resolve: () => createSystemOneAdapter(),
});
const questions = [
{
id: "escalate",
type: "boolean",
instructions: "Must this request be escalated for human approval?",
},
] satisfies QuestionList;
let seq = 0;
for await (const event of runInference({
deps,
source: {
id: "system-one",
provider: SYSTEM_ONE_PROVIDER,
baseURL: "https://api.typesafe.ai/v1/systemone",
credentialId: "TYPESAFE_API_KEY",
model: "jev-latest",
},
turns: [
{
role: "user",
timestamp: Date.now(),
content: [{ type: "text", text: "Deploy to production?" }],
},
],
inferenceOptions: { providerOptions: { systemOne: { questions } } },
nextSeq: () => seq++,
readMaterial: (id) => {
const secret = process.env[id];
if (secret === undefined) throw new Error(`${id} is not set`);
return { secret };
},
})) {
if (event.type === "inference.text.delta")
console.log(JSON.parse(event.data.token));
}
适配器发出一个 inference.text.delta 每一决定 token 作为JSON的决定,然后 inference.usage 活动。 绳子能提供证书 readMaterial 并拥有复试。 一个畸形的反应机构是 ProtocolMismatchError而不是一个后退.
工厂
createSystemOneAdapterFactory(source, quirks?) 是互换 AdapterFactory,所以一个股票侧车装入它从 SIDECAR_ADAPTER_MANIFEST 没有自定义代码 :
[
{
"provider": "corbits-system-one",
"specifier": "@corbits/system-one",
"export": "createSystemOneAdapterFactory"
}
]
中心供货 quirks 验证并全部可选 :
{
"endpoint": {
"kind": "custom",
"url": "https://opencode.ai/zen/v1/systemone"
},
"model": "jev-1.13",
"questions": [{ "type": "boolean", "id": "gate", "instructions": "Allow?" }],
"state": {}
}
无 endpoint,适配器贴出目录提供者的 baseURL + 键 /systemone主办方的证书是发给的 A 类 model 奇克( 顶级 ) endpoint)是电线上发送的模型,因此一个目录模型可以由不同名称的提供者服务. questions 财务报告和审定财务报表 state (a) 按需要计算的缺省; providerOptions.systemOne 在呼叫中逐一获胜。 未知密钥丢出 。 适配器发送无记名信使,被接通的绳子注入祭品的证书,除了一个自定义的终点 auth: "none",省略 Authorization 因此,主机不附加密钥.
| 提供者 | 提供者 baseURL | model 诡异 |
|---|---|---|
| 类型安全 | https://api.typesafe.ai/v1 | jev-latest |
| Vercel AI 网关 | https://ai-gateway.vercel.sh/typesafe/v1 | typesafe-ai/jev |
| 打开路透社 | https://openrouter.ai/api/v1 | typesafe/jev-1.13 |
| 打开代码禅 | https://opencode.ai/zen/v1 | jev-1.13 或者说 jev-1.13-free |
升级至0.3.1
createSystemOneAdapterFactory无endpoint怪怪的现在贴到目录提供者的baseURL+ 键/systemone代替正式的 TypeSafe URL 。 设置提供者baseURL转到 API 根(例如https://api.typesafe.ai/v1),或保持旧行为{"endpoint":{"kind":"official"}}带子向适配器返回的 URL 发送送礼证书,所以只设置一个明确的endpoint在证书所属的宿主上.- A 类
model现在奇特地推翻了被绑住的模型(编目犬科名称). createSystemOneAdapter财务报告和审定财务报表evaluate接受auth: "none"自定义终点并省略Authorization。任何其他auth值抛出SystemOneError在请求建立之前.
从0.1升级
HttpError, (中文(简体) ),NetworkError财务报告和审定财务报表TimeoutError被删除。 运输故障返回aFallbackResult。 。 。 .- 一个不是JSON的2xx尸体
parse-error(曾经是)network) (中文(简体) ). 身体读取时的暂停是timeout。 。 。 . recordTelemetryEvent财务报告和审定财务报表drainTelemetryEvents被删除。 过evaluate(input, { onTelemetry })。 。 。 .- 电线帮手 怪胎预设,
JsonRecord, (中文(简体) ),Confidence而env-var名称常数不再被导出. - A 类
custom无终点model发送typesafe-ai/jev。 。 。 . - 同行是
@intx/inference财务报告和审定财务报表@intx/types^0.4.0。 。 。 . - 环境变量不变,包括:
SYSTEM_ONE_API_KEY。 。 。 .