@ framers/ agentos-ext- public- sources (英语)
AgentOS引用检查的公开来源. 特工系统 CitationVerifier 这个图书馆从公共来源取取这些段落并保留其归属。 它载着英国维基百科的供应商 PublicSourceProvider 界面:通过一个简短的专题短语进行搜索,用其键读取被击中的页 HTML,以及文章作为纯文本的块,其页名、参考标记、维护标记、表格、数字、引文、代码、数学和导航被删除.
citationSources(document, cut) 将取来的文章变成段落,每个句子一个 cut 每个街区都有 一个段落是 VerificationSource (单位:千美元)content, (中文(简体) ), title, (中文(简体) ), url),也带有站点,文章的钥匙,其修改,被读取的时间,许可证,句子的块并抵消. 图书馆没有自己的句子规则:通过你的管线其余部分使用的句子,所以权利主张和通道同样被剪去.
安装
npm install @framers/agentos-ext-public-sources
它需要节点22或以后,因为 @framers/agentos 已经 它的一次性依赖是 htmlparser2 软件· ; @framers/agentos 是一个同行.
以下例为其句子规则, sentenceSpans从 values 地面警卫的进入, 包自己的。 安装到此边, 将示例按正文运行, 或通过任何函数, 将一个块的句子解析为:
npm install @framers/agentos-ext-grounding-guard
示例
import { citationSources, SourceLimiter, WikipediaSourceProvider } from '@framers/agentos-ext-public-sources';
import { sentenceSpans } from '@framers/agentos-ext-grounding-guard/values';
const wikipedia = new WikipediaSourceProvider({
client: { name: 'MyApp', version: '1.2.0', contact: 'https://example.org/contact' },
limiter: new SourceLimiter(), // one for every caller on this host: Wikimedia's limits apply per client
});
const found = await wikipedia.search('Treaty of Versailles', { limit: 2 });
if (found.kind === 'hits' && found.hits[0]) {
const page = await wikipedia.read(found.hits[0]);
if (page.kind === 'document') {
const passages = citationSources(page.document, sentenceSpans); // VerificationSource[] with attribution
}
}
读取任何页面
htmlToBlocks(html, { mode: 'page' }) 读取非百科全书文章的一页,如引用名的一页. 它保留了表格,数字,引文,代码和笔记的页面显示,使每个表格单元格,标题,引文和代码都屏蔽了自己的块,因此两个单元格从未读作一句. 它仍然会降低页面本身的标题,脚本,样式,模板,内置的SVG,数学,元素带有 hidden 属性,以及维基百科的参考标记,维护标记,参考列表和导航框. 文章模式,即默认,是维基百科提供者所读取的.
import { htmlToBlocks } from '@framers/agentos-ext-public-sources';
const html = '<table><tr><th>Plan</th><td>$20 per month</td></tr></table>';
htmlToBlocks(html, { mode: 'page' }); // ['Plan', '$20 per month']
htmlToBlocks(html); // []: the article mode drops tables
结果
search 回答如下:
{ kind: 'hits', hits }最多为limit点击数( 默认为2个), 每一个都有一个key(单位:千美元)title· ;{ kind: 'limited' }: 限制器拒绝, 或您的onSend没有,没有寄出去;{ kind: 'failed', status }: 当一个答案出现时, HTTP 状态,null对于一个运输故障,截止日期,或者一个没有地址的短语(一个持有替代对的一半),没有发送任何信息.
read 答题 { kind: 'document', document }, (中文(简体) ), { kind: 'limited' },或 { kind: 'skipped', status } 对于不是200 HTML 的答案,一个超过大小上限的答案,一个运输失败,一个最后期限,或者一个无法携带地址的密钥。 拒绝或失败时不使用任何方法; 中止自己的 signal 抛出它的理由.
onSend 一旦搜索有其插槽,并在发送之前运行。 掷出 new LimiterRefused('caller') 从它进行搜索,直到达到你自己的配额;搜索然后回答 limited 没有寄出 限制器也没有用完 当搜索发送时, 在之后, 一个搜索的开始 onSend 已经安定下来了 所以 onSend 这需要一段时间,从未将两个请求比间隔更接近。 搜索还可以回答 limited 之后 onSend 当一个429或一个503同时阻断了限制器,或当间隔将超过2秒时,则已运行,没有发送任何信息(waitMs(时间) onSend 磁带不计为等待.
维基媒体的限制和用户代理
每个请求都经过一个 SourceLimiter:最多一次3个,至少相距250米(5秒以内),最多200个在任何60秒内开始,最多2秒后等待一个槽或间隔,在429个或503个之后,一个街区直至 Retry-After 已经过去了( 5秒, 当信头缺失, 最多一小时) 。 3分一秒,5分一秒,200分一秒,5秒是维基媒体的 费率限额 财务报告和审定财务报表 机器人政策 给一个未认证的客户端一个符合要求的用户代理;2秒等和小时上限是这个库的自有.
限制适用于每个客户,限制者只计算自己程序的要求。 一个提供者在无一被通过时会自己做一个限制器,所以在一个过程中给每个提供者一个相同的一个,当一个主机上的若干个进程读取维基百科时,通过其中一个发送他们的请求.
提供者发送用户代理 <name>/<version> (<contact>),维基媒体的形式 用户代理政策 在政策允许的情况下,将图书馆部分排除在外。 给客户端自己的名字和版本,并联系策略接受:网站,电子邮件地址或维基用户. 每个请求都会发出 Accept-Encoding: gzip正如机器人政策所要求, 不再遵循方向, 也不发送饼干.
大小和最后期限
| 选项 | 默认 | 它的束缚 |
|---|---|---|
timeoutMs | 3 000个 | 从发送到阅读其身体 |
searchMaxBytes | 65 536个 | 一个搜索答案的身体 |
pageMaxSentBytes | 1 500 000美元 | 页:1 content-length 宣布一个页面答案 |
pageMaxBytes | 6 000 000美元 | 页面上的身体曾经被解开 |
textBudget | 30万个 | 从一页中保留文本的字符 |
页面答覆可能不宣布长度( 块形的答案从未如此), 因此 pageMaxBytes 是每个读数的上限.
归属
维基百科中的相关条目: 克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克克 CC BY-SA 4.0 (英语),每个文件和通道都标注为 licence (单位:千美元)WIKIPEDIA_LICENCE) (中文(简体) ). 无论你在哪里展示一个通道, 显示它:
- 该句,作为
content拿着它; - 与本条款的联系(
url),以其名称命名title· ; - "CC BY-SA 4.0",链接到
licence.url· ; - 文本被修改:库去掉了参考标记和维护标记并崩溃了白空间,而CC BY-SA 4.0要求一个再用户"如果修改了许可的材料"(其第3(a)(1)(B)节) 法典) (中文(简体) ).
维基百科上的相关页面 重新使用其内容 完整描述归属. revision 财务报告和审定财务报表 readAt 指定一个段落的准确文本.
页面路径
提供者从 /api/rest_v1/page/html/{key} (单位:千美元)PAGE_PATH),缓存接口 机器人政策名称. RESTBase 软件,它背后的服务, 正在贬值:通过 pagePath: '/w/rest.php/v1/page/{key}/html' 从MediaWiki自己的REST API读取相同的HTML。 读取使用搜索点击器 key,所以它不遵循方向;在两条路径上重定向答案307和读取答案的标题 skipped。 。 。 .
文档的字段
A 类 SourceDocument 是供货商的 read 答案 : site (消息来源的名字作为一个读者看到它), key, (中文(简体) ), title, (中文(简体) ), url (地址是归属链接), revision (当源名称无时取消), readAt (取出时,以毫秒计), licence (单位:千美元)name 财务报告和审定财务报表 url和 blocks。有两个字段是可选的,对于从页面读取它们的来源: publisher,网站的名称作为页面说明 pageDate,页面以毫秒表示自己的日期。 维基百科的供应商没有设置; @framers/agentos-ext-citation-check网页来源将每个页面设置在其中.
API 密码
| 导出 | 这是什么 |
|---|---|
PublicSourceProvider | 公共源执行的接口: site, (中文(简体) ), search(phrase, options), (中文(简体) ), read(hit, options) |
WikipediaSourceProvider | 英文维基百科的提供者,或另一个维基通过 origin |
SourceLimiter, (中文(简体) ), LimiterRefused, (中文(简体) ), retryAfterMs | 限制器、其拒绝和 Retry-After 读取 |
htmlToBlocks(html, { budget, mode }) | HTML 作为纯文本的块, 白空间崩溃了, 在 NFC 中: 文章的散文 (article,默认值)或页面显示的一切(page(中文(简体) ) |
citationSources(document, cut) | 取来的文章作为其归属和位置的段落 |
wikipediaUserAgent, (中文(简体) ), articleUrl, (中文(简体) ), WIKIPEDIA_LICENCE, (中文(简体) ), SEARCH_PATH, (中文(简体) ), PAGE_PATH | 用户代理、文章地址、许可证和提供者使用的路径 |
SourceHit, (中文(简体) ), SourceDocument, (中文(简体) ), CitationSource, (中文(简体) ), SourceLicence, (中文(简体) ), SearchOutcome, (中文(简体) ), ReadOutcome, (中文(简体) ), CallOptions, (中文(简体) ), WikipediaOptions, (中文(简体) ), WikipediaClient, (中文(简体) ), LimiterOptions, (中文(简体) ), BlockMode, (中文(简体) ), HtmlToBlocksOptions | 点击类型、文件、段落、结果和选项 |
许可证
阿帕奇 - 2.0