@devflow-tools/knowledge-engine 0.8.10 → 0.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -13
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @devflow-tools/knowledge-engine
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
DevFlow 知识引擎 — 从技术文档站同步内容,BM25 搜索,支持 SPA 页面和静态 HTML。
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -15,25 +15,57 @@ import { KnowledgeEngine } from '@devflow-tools/knowledge-engine';
|
|
|
15
15
|
|
|
16
16
|
const engine = new KnowledgeEngine({ projectRoot: '/path/to/project' });
|
|
17
17
|
|
|
18
|
-
//
|
|
19
|
-
|
|
18
|
+
// 注册知识源
|
|
19
|
+
await engine.registerSource({
|
|
20
|
+
name: 'react',
|
|
21
|
+
urls: ['https://react.dev/reference'],
|
|
22
|
+
pluginName: 'react',
|
|
23
|
+
version: '19.0.0',
|
|
24
|
+
renderJs: true, // SPA 页面需要 Playwright 渲染
|
|
25
|
+
});
|
|
20
26
|
|
|
21
|
-
//
|
|
22
|
-
await engine.syncDocs('react');
|
|
27
|
+
// 同步文档
|
|
28
|
+
const results = await engine.syncDocs('react');
|
|
29
|
+
|
|
30
|
+
// 搜索知识库
|
|
31
|
+
const entries = await engine.search('useEffect cleanup');
|
|
23
32
|
```
|
|
24
33
|
|
|
25
34
|
## Features
|
|
26
35
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
- **
|
|
36
|
+
- **智能抓取** — 自动检测页面内容量:静态内容充足则用 HTTP fetch,SPA 页面自动升级到 Playwright 浏览器渲染
|
|
37
|
+
- **`renderJs` 标记** — 在 `KnowledgeSource` 中设置 `renderJs: true` 直达 Playwright 模式,跳过自动检测
|
|
38
|
+
- **BM25 搜索** — 基于关键词的文档搜索,支持 scope 过滤(react/vue/nest 等)
|
|
39
|
+
- **HTML → Markdown** — 使用 turndown 转换,标题级 chunk 分块保留文档结构
|
|
40
|
+
- **多源同步** — 从官方文档、GitHub 等 URL 列表批量抓取和更新
|
|
41
|
+
|
|
42
|
+
## Fetcher API
|
|
43
|
+
|
|
44
|
+
| 函数 | 说明 |
|
|
45
|
+
|------|------|
|
|
46
|
+
| `fetchHtml(url)` | HTTP fetch + 重试(最多 2 次),支持 429 限流处理 |
|
|
47
|
+
| `fetchHtmlBrowser(url)` | Playwright Chromium 浏览器渲染(用于 SPA 页面) |
|
|
48
|
+
| `fetchHtmlSmart(url)` | 智能模式:先 fetch → 内容 < 500 字符 → 自动升级到浏览器 |
|
|
49
|
+
| `closeBrowser()` | 关闭 Playwright 浏览器实例,释放资源 |
|
|
50
|
+
|
|
51
|
+
## Engine API
|
|
52
|
+
|
|
53
|
+
- `new KnowledgeEngine({ projectRoot })` — 构造函数
|
|
54
|
+
- `.registerSource(source)` — 注册/合并知识源(已存在则合并 URL 列表)
|
|
55
|
+
- `.syncDocs(pluginName?)` — 同步指定(或全部)知识源的文档
|
|
56
|
+
- `.search(query, options?)` — BM25 搜索知识库,支持 `scope` 过滤
|
|
57
|
+
- `.lookup(symbol, scope?)` — 精确匹配知识条目
|
|
58
|
+
- `.getSources()` — 列出所有知识源及其状态(chunk 数、最后同步时间)
|
|
30
59
|
|
|
31
|
-
##
|
|
60
|
+
## Environment
|
|
61
|
+
|
|
62
|
+
需要安装 Playwright Chromium:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx playwright install chromium
|
|
66
|
+
```
|
|
32
67
|
|
|
33
|
-
|
|
34
|
-
- `.search(query)` — search knowledge base
|
|
35
|
-
- `.syncDocs(pluginName?)` — sync documentation for a plugin
|
|
36
|
-
- `.getSources()` — list available knowledge sources
|
|
68
|
+
或是使用 `postinstall` 脚本(已在 package.json 中配置)。
|
|
37
69
|
|
|
38
70
|
## License
|
|
39
71
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/knowledge-engine",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.11",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"postinstall": "playwright install chromium || true"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@devflow-tools/sdk": "^0.8.
|
|
21
|
+
"@devflow-tools/sdk": "^0.8.11",
|
|
22
22
|
"playwright": "^1.52.0",
|
|
23
23
|
"turndown": "^7.2.4"
|
|
24
24
|
},
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"dist"
|
|
32
32
|
],
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "a0a0b61377aa88ebbd380f50a5d532f63175ef45"
|
|
34
34
|
}
|