Skip to content
English

MockGPTOptions ​

KIT · interface · 类型合同

Construction options of a MockGPT instance.

导入 ​

ts
import type { MockGPTOptions } from '@jangts/agent-core/mock';
js
/** @typedef {import('@jangts/agent-core/mock').MockGPTOptions} MockGPTOptions */

其他公开入口:@jangts/agent-core/mock。

定义 ​

ts
interface MockGPTOptions

字段结构 ​

字段类型必需说明
rulesreadonly Rule[]必需Ordered rules; the first rule whose filters all pass wins, so order is significant.
fallbackGenerator | undefined可省略Generator used when no rule matches; absent makes an unmatched call a MOCK_RULE_NOT_FOUND error.
selectPrompt((request: ModelRequest) => string) | undefined可省略Overrides prompt extraction; must return a string synchronously; default is the last user text.
streamPick<OutputOptions, "chunkSize" | "intervalMs" | "wireChunkSize"> | undefined可省略Defaults merged under every generated output; explicit output fields take precedence.
seednumber | undefined可省略Seed for the deterministic PRNG (0-0xffffffff); default 1, so identical call sequences repeat.
clock(() => number) | undefined可省略Millisecond timestamp source for date generators and response created; must be finite.
recordLimitnumber | undefined可省略Ring-buffer size of records; 0 disables recording; max 10 000; default 100.
maxBodyBytesnumber | undefined可省略Maximum accepted request body in bytes for fetch; default 1 MiB.
maxOutputCharsnumber | undefined可省略Maximum generated content in code points plus serialized tool calls; default 1 000 000.

使用示例 ​

直接生成原生 JSON ​

入门 · Node.js

ts
import { MockGPT } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: { online: true, source: 'fixture' } }] });
const value = await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务状态' }] });
console.log(value); // { online: true, source: 'fixture' }
console.log(mock.counts, mock.records);
js
import { MockGPT } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: { online: true, source: 'fixture' } }] });
const value = await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '服务状态' }] });
console.log(value); // { online: true, source: 'fixture' }
console.log(mock.counts, mock.records);

同一实例注入真实 Core 模型边界 ​

配置 · Node.js

ts
import { ModelRunner, Support } from '@jangts/agent-core';
import { MockGPT, responses } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: responses.text('服务在线。', { chunkSize: 2, wireChunkSize: 3 }) }] });
const provider = new Support.CompatibleModelProvider({
  config: { baseUrl: 'https://mock.local/v1', apiKey: 'offline-example', model: 'demo' },
  ports: { request: mock.fetch },
});
const result = await new ModelRunner({ provider, maxCalls: 1 }).invoke('服务状态');
console.log(result.value, result.invocation.status);
js
import { ModelRunner, Support } from '@jangts/agent-core';
import { MockGPT, responses } from '@jangts/agent-core/mock';
const mock = new MockGPT({ rules: [{ prompt: '服务状态', generator: responses.text('服务在线。', { chunkSize: 2, wireChunkSize: 3 }) }] });
const provider = new Support.CompatibleModelProvider({
    config: { baseUrl: 'https://mock.local/v1', apiKey: 'offline-example', model: 'demo' },
    ports: { request: mock.fetch },
});
const result = await new ModelRunner({ provider, maxCalls: 1 }).invoke('服务状态');
console.log(result.value, result.invocation.status);

相关定义 ​

接口参考、使用示例与开发指南。