ModelRequest
KIT · interface · 类型合同
A normalized /chat/completions request, produced by snapshotRequest.
Optional undefined fields have already been dropped and stream is already defaulted, so rules always observe the same shape regardless of whether the caller used generate or the injected fetch.
导入
ts
import type { ModelRequest } from '@jangts/agent-core/mock';js
/** @typedef {import('@jangts/agent-core/mock').ModelRequest} ModelRequest */其他公开入口:@jangts/agent-core/mock。
定义
ts
interface ModelRequest字段结构
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
model | string | 必需 | 只读。Model identifier; required, non-empty, and compared verbatim by Rule.model. |
messages | readonly Readonly<{ [key: string]: unknown; role: string; content?: unknown; tool_calls?: unknown; tool_call_id?: string; }>[] | 必需 | 只读。Non-empty conversation; the last user message supplies the default prompt. |
stream | boolean | 必需 | 只读。Whether the codec should emit SSE; defaulted to false during normalization. |
tools | readonly unknown[] | undefined | 可省略 | 只读。Tool schemas declared by the client; only the array shape is validated. |
stream_options | Readonly<{ include_usage?: boolean; }> | undefined | 可省略 | 只读。include_usage: true appends a terminal usage-only chunk to the stream. |
索引结构
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
[key: string] | unknown | 必需 | 只读。索引项。 |
使用示例
- MockGPT:响应描述与场景生成器:固定结果用于严格回归,输入相关生成器用于探索接线,显式响应描述用于故障和流式场景。
编码已校验的模型结果
扩展 · Node.js
适配器负责请求校验、首包前延迟和生命周期;编码器不执行规则或修改 MockGPT 调用记录。
ts
import { encodeModelResponse } from '@jangts/agent-core/mock';
const controller = new AbortController();
const response = encodeModelResponse(
{ model: 'demo', messages: [{ role: 'user', content: '状态' }], stream: false },
{ content: '服务在线。' }, 'mock-1', 1700000000, controller.signal,
(error, cancelled) => console.log({ error, cancelled }),
);
console.log(await response.json());js
import { encodeModelResponse } from '@jangts/agent-core/mock';
const controller = new AbortController();
const response = encodeModelResponse({ model: 'demo', messages: [{ role: 'user', content: '状态' }], stream: false }, { content: '服务在线。' }, 'mock-1', 1700000000, controller.signal, (error, cancelled) => console.log({ error, cancelled }));
console.log(await response.json());从输入生成可检查的摘要
入门 · Node.js
ts
import { MockGPT, generators } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ generator: generators.summary({ maxChars: 120, count: 2 }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务刚完成维护。健康检查通过。用户可以查询状态。' }] }));
console.log(mock.records);js
import { MockGPT, generators } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ generator: generators.summary({ maxChars: 120, count: 2 }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务刚完成维护。健康检查通过。用户可以查询状态。' }] }));
console.log(mock.records);