responses
KIT · constant · 运行时值
导入
ts
import { responses } from '@jangts/agent-core/mock';js
import { responses } from '@jangts/agent-core/mock';其他公开入口:@jangts/agent-core/mock。
定义
成员目录
| 成员 | 用途 |
|---|---|
text | 完整输入输出见下方重载。 |
toolCalls | 完整输入输出见下方重载。 |
httpError | 完整输入输出见下方重载。 |
reject | Simulate a transport failure that rejects the client call instead of answering with HTTP. |
成员详情
text
ts
responses.text(content: string, options?: OutputOptions): ResponseDescription| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
content | string | 必需 | — |
options | OutputOptions | 可省略 | — |
options 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
finishReason | "length" | "tool_calls" | "stop" | "content_filter" | undefined | 可省略 | Finish reason sent in the last content frame; defaults to tool_calls with tools, else stop. |
usage | Usage | undefined | 可省略 | Usage object included in non-stream replies and in the terminal usage chunk. |
delayMs | number | undefined | 可省略 | Artificial latency before the reply or first frame, in milliseconds; default 0. |
chunkSize | number | undefined | 可省略 | Maximum Unicode code points per content/tool-call delta; default 24; never splits a code point. |
intervalMs | number | undefined | 可省略 | Delay between SSE frames in milliseconds; default 0 (emit as fast as the consumer pulls). |
wireChunkSize | number | undefined | 可省略 | Optional transport-level byte chunks, independent of content/codepoint chunks. |
interruptAfter | number | undefined | 可省略 | Error the stream after this many data frames, without a success terminator. |
返回: ResponseDescription。
toolCalls
ts
responses.toolCalls(tools: readonly ToolCall[], options?: OutputOptions): ResponseDescription| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
tools | readonly ToolCall[] | 必需 | — |
options | OutputOptions | 可省略 | — |
options 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
finishReason | "length" | "tool_calls" | "stop" | "content_filter" | undefined | 可省略 | Finish reason sent in the last content frame; defaults to tool_calls with tools, else stop. |
usage | Usage | undefined | 可省略 | Usage object included in non-stream replies and in the terminal usage chunk. |
delayMs | number | undefined | 可省略 | Artificial latency before the reply or first frame, in milliseconds; default 0. |
chunkSize | number | undefined | 可省略 | Maximum Unicode code points per content/tool-call delta; default 24; never splits a code point. |
intervalMs | number | undefined | 可省略 | Delay between SSE frames in milliseconds; default 0 (emit as fast as the consumer pulls). |
wireChunkSize | number | undefined | 可省略 | Optional transport-level byte chunks, independent of content/codepoint chunks. |
interruptAfter | number | undefined | 可省略 | Error the stream after this many data frames, without a success terminator. |
返回: ResponseDescription。
httpError
ts
responses.httpError(status: number, body?: JsonValue): ResponseDescription| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
status | number | 必需 | — |
body | JsonValue | 可省略 | — |
返回: ResponseDescription。
reject
Simulate a transport failure that rejects the client call instead of answering with HTTP.
ts
responses.reject(message?: string): ResponseDescription| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
message | string | 可省略 | — |
返回: ResponseDescription。
使用示例
- 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);字段生成器复用同一随机源
配置 · Node.js
ts
import { MockGPT, generators, generatorNames } from '@jangts/agent-core/mock';
const id = generators.id('user');
const age = generators.integer(18, 60);
const mock = new MockGPT({ seed: 42, clock: () => 1700000000000, rules: [{
generator: context => ({ id: id(context), age: age(context) }),
}] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '生成资料' }] }));
console.log(generatorNames);js
import { MockGPT, generators, generatorNames } from '@jangts/agent-core/mock';
const id = generators.id('user');
const age = generators.integer(18, 60);
const mock = new MockGPT({ seed: 42, clock: () => 1700000000000, rules: [{
generator: context => ({ id: id(context), age: age(context) }),
}] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '生成资料' }] }));
console.log(generatorNames);