Skip to content
English

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。

定义 ​

成员目录 ​

成员用途
webRetrieve a page and return its readable text.

成员详情 ​

web ​

Retrieve a page and return its readable text.

ts
sources.web(options?: WebOptions): Exclude<TextSource, string>
参数类型传递说明
optionsWebOptions可省略—
options 的字段
字段类型必需说明
urlstring | ((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.
headersRecord<string, string> | undefined可省略Content negotiation only; never copies browser cookies or model credentials.
timeoutMsnumber | undefined可省略Total retrieval deadline in milliseconds (1-120 000); default 20 000.
maxBytesnumber | undefined可省略Maximum page size in bytes (1-20 971 520); default 2 MiB, applied before and after decoding.
maxCharsnumber | undefined可省略Maximum characters of extracted text kept for analysis (1-1 000 000); default 30 000.
maxRedirectsnumber | undefined可省略Redirect budget (0-10); default 3. Each target is re-validated like the original URL.
fallbackstring | 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>。

使用示例 ​

可信 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')); // false
js
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,不把替代文本当原文

相关定义 ​

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