sources
KIT · constant · 运行时值
导入
ts
import { sources } from '@jangts/agent-core/mock/web';js
import { sources } from '@jangts/agent-core/mock/web';其他公开入口:@jangts/agent-core/mock/web。
定义
成员目录
| 成员 | 用途 |
|---|---|
web | Retrieve a page and return its readable text. |
成员详情
web
Retrieve a page and return its readable text.
ts
sources.web(options?: WebOptions): Exclude<TextSource, string>| 参数 | 类型 | 传递 | 说明 |
|---|---|---|---|
options | WebOptions | 可省略 | — |
options 的字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
url | string | ((context: GenerationContext) => string) | undefined | 可省略 | Fixed URL or synchronous selector; when omitted the prompt must contain exactly one URL. |
profile | "browser" | "crawler" | undefined | 可省略 | Header profile; only browser (alias crawler) exists today. Default browser. |
headers | Record<string, string> | undefined | 可省略 | Content negotiation only; never copies browser cookies or model credentials. |
timeoutMs | number | undefined | 可省略 | Total retrieval deadline in milliseconds (1-120 000); default 20 000. |
maxBytes | number | undefined | 可省略 | Maximum page size in bytes (1-20 971 520); default 2 MiB, applied before and after decoding. |
maxChars | number | undefined | 可省略 | Maximum characters of extracted text kept for analysis (1-1 000 000); default 30 000. |
maxRedirects | number | undefined | 可省略 | Redirect budget (0-10); default 3. Each target is re-validated like the original URL. |
fallback | string | undefined | 可省略 | Explicit replacement source text on retrieval failure; request cancellation still throws. |
load | ((url: URL, signal: AbortSignal, maxBytes: number) => Promise<LoadedPage>) | undefined | 可省略 | Trusted offline/custom transport. It owns its destination policy; not supplied by remote clients. |
返回: (context: GenerationContext) => string \| Promise<string>。
使用示例
- MockGPT Web:可信来源与本地摘要:从真实网页或可信 load 取得正文,再交给输入相关生成器。
可信 load 提供离线正文
入门 · Node.js
ts
import { MockGPT, generators } from '@jangts/agent-core/mock';
import { sources, isPublicAddress } from '@jangts/agent-core/mock/web';
const source = sources.web({ url: 'https://example.com/article', async load(url, signal, maxBytes) {
signal.throwIfAborted();
const bytes = new TextEncoder().encode('服务维护完成。健康检查通过。');
if (bytes.byteLength > maxBytes) throw new Error('来源超过预算');
return { bytes, url: url.href, contentType: 'text/plain; charset=utf-8' };
} });
const mock = new MockGPT({ rules: [{ generator: generators.summary({ source }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '概括正文' }] }));
console.log(isPublicAddress('127.0.0.1')); // falsejs
import { MockGPT, generators } from '@jangts/agent-core/mock';
import { sources, isPublicAddress } from '@jangts/agent-core/mock/web';
const source = sources.web({ url: 'https://example.com/article', async load(url, signal, maxBytes) {
signal.throwIfAborted();
const bytes = new TextEncoder().encode('服务维护完成。健康检查通过。');
if (bytes.byteLength > maxBytes)
throw new Error('来源超过预算');
return { bytes, url: url.href, contentType: 'text/plain; charset=utf-8' };
} });
const mock = new MockGPT({ rules: [{ generator: generators.summary({ source }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '概括正文' }] }));
console.log(isPublicAddress('127.0.0.1')); // false显式开启网页来源与失败替代文本
配置 · Node.js
ts
import { MockGPT, generators } from '@jangts/agent-core/mock';
import { sources } from '@jangts/agent-core/mock/web';
const mock = new MockGPT({ rules: [{ generator: generators.summary({ source: sources.web({
url: 'https://example.com/article', timeoutMs: 5000,
fallback: '网页不可读取,请提供正文。',
}) }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '总结文章' }] }));
console.log(mock.records); // 检查 sourceFallback/sourceError,不把替代文本当原文js
import { MockGPT, generators } from '@jangts/agent-core/mock';
import { sources } from '@jangts/agent-core/mock/web';
const mock = new MockGPT({ rules: [{ generator: generators.summary({ source: sources.web({
url: 'https://example.com/article', timeoutMs: 5000,
fallback: '网页不可读取,请提供正文。',
}) }) }] });
console.log(await mock.generate({ model: 'demo', messages: [{ role: 'user', content: '总结文章' }] }));
console.log(mock.records); // 检查 sourceFallback/sourceError,不把替代文本当原文