MockGPT Node:最小模型服务与 HTTP 挂载
同一 MockGPT 配置作为独立模型 API,或挂入现有 Node HTTP 服务。
@jangts/agent-core/mock/node 是 Node 专用入口。createMockServer({mock,maxBodyBytes?,requestTimeoutMs?,allowedOrigins?,allowedHosts?,closeTimeoutMs?}) 返回 listen({host?,port?}) 与 close。createMockHandler 使用相同请求策略,返回 Node IncomingMessage/ServerResponse 处理器,宿主拥有监听和关闭。
默认仅接受回环、本次连接到达的本地地址和显式绑定的主机名。Host 先于 Origin 校验,allowedHosts 是精确主机名/IP,不接受通配符;allowedOrigins 单独允许跨域,不能放行非法 Host。请求体、超时和关闭等待有界。listen 在启动、监听或关闭过程中重复调用会以 MOCK_ACTIVE 拒绝,close 等待启动及同一次关闭,结束后可重新监听。
HTTP 外壳将生成错误转换为带 code 的错误响应;responses.reject 关闭连接,区别于显式 HTTP 错误。未匹配且没有 fallback 时失败,不连接真实模型。模拟服务不提供业务鉴权;对外暴露由宿主配置访问边界。
由简到繁的同业务示例
启动最小模型 API,用完关闭
入门 · Node.js
ts
import { MockGPT } from '@jangts/agent-core/mock';
import { createMockServer } from '@jangts/agent-core/mock/node';
const mock = new MockGPT({ rules: [{ prompt: '你好', generator: '你好。' }] });
const server = createMockServer({ mock });
try {
const address = await server.listen({ host: '127.0.0.1', port: 0 });
console.log(address);
// 将输出地址的 /v1 作为模型客户端 base URL。
} finally { await server.close(); }js
import { MockGPT } from '@jangts/agent-core/mock';
import { createMockServer } from '@jangts/agent-core/mock/node';
const mock = new MockGPT({ rules: [{ prompt: '你好', generator: '你好。' }] });
const server = createMockServer({ mock });
try {
const address = await server.listen({ host: '127.0.0.1', port: 0 });
console.log(address);
// 将输出地址的 /v1 作为模型客户端 base URL。
}
finally {
await server.close();
}挂入已有 Node HTTP 生命周期
配置 · Node.js
ts
import { createServer } from 'node:http';
import { MockGPT } from '@jangts/agent-core/mock';
import { createMockHandler } from '@jangts/agent-core/mock/node';
const mock = new MockGPT({ rules: [{ generator: '演示回复' }] });
const handler = createMockHandler({ mock, requestTimeoutMs: 5000 });
const server = createServer(handler);
server.listen(4317, '127.0.0.1');
// 宿主退出时关闭 server;需要自定义域名时显式配置 allowedHosts。js
import { createServer } from 'node:http';
import { MockGPT } from '@jangts/agent-core/mock';
import { createMockHandler } from '@jangts/agent-core/mock/node';
const mock = new MockGPT({ rules: [{ generator: '演示回复' }] });
const handler = createMockHandler({ mock, requestTimeoutMs: 5000 });
const server = createServer(handler);
server.listen(4317, '127.0.0.1');
// 宿主退出时关闭 server;需要自定义域名时显式配置 allowedHosts。