czon 0.2.6 → 0.2.7
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.d.ts","sourceRoot":"","sources":["../../src/process/category.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,QAAa,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"category.d.ts","sourceRoot":"","sources":["../../src/process/category.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,QAAa,OAAO,CAAC,IAAI,CAyE3D,CAAC"}
|
package/dist/process/category.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.processExtractCategory = void 0;
|
|
|
4
4
|
const metadata_1 = require("../metadata");
|
|
5
5
|
const openai_1 = require("../services/openai");
|
|
6
6
|
const processExtractCategory = async () => {
|
|
7
|
+
const verbose = metadata_1.MetaData.options.verbose;
|
|
7
8
|
// 如果所有文件都已经有 category,则跳过本阶段
|
|
8
9
|
const allHaveCategory = metadata_1.MetaData.files.filter(f => f.metadata).every(file => file.category);
|
|
9
10
|
if (allHaveCategory) {
|
|
@@ -13,6 +14,14 @@ const processExtractCategory = async () => {
|
|
|
13
14
|
// 这意味着,只要有一个新文件,就需要重新生成所有类别标签
|
|
14
15
|
// 这倒也合理,因为类别标签是整体相关的
|
|
15
16
|
// 如果是内容改动导致的呢?
|
|
17
|
+
const markdownFiles = metadata_1.MetaData.files.filter(f => f.path.endsWith('.md') && f.metadata);
|
|
18
|
+
const markdownFilesWithoutCategory = markdownFiles.filter(f => !f.category);
|
|
19
|
+
if (verbose) {
|
|
20
|
+
console.info(`📂 Extracting categories for ${markdownFiles.length} markdown files...`);
|
|
21
|
+
for (const file of markdownFiles) {
|
|
22
|
+
console.info(` - File: ${file.path} (hash: ${file.hash})`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
16
25
|
// 提取类别标签列表
|
|
17
26
|
const categories = await (0, openai_1.completeMessages)([
|
|
18
27
|
{
|
|
@@ -25,6 +34,9 @@ const processExtractCategory = async () => {
|
|
|
25
34
|
'请确保类别标签之间没有重复,并且涵盖所有文档的主题。',
|
|
26
35
|
'然后,为每个文档生成一个映射,指明该文档对应的类别标签。',
|
|
27
36
|
'请检查每个分类中的文档数量不能过少(例如少于 2 个),如果有,请考虑合并到其他相关类别中。',
|
|
37
|
+
'确保每个输入的文档都能在输出的类别标签中找到对应的类别。',
|
|
38
|
+
// ISSUE: 有时候 AI 会忽略部分文件的分类,需要强调至少要处理还未分类的文件
|
|
39
|
+
'请优先考虑尚未被分类的文件。',
|
|
28
40
|
'请以 JSON 格式返回类别标签列表。',
|
|
29
41
|
'示例输出格式:',
|
|
30
42
|
'{ "categories": ["tag1", "tag2", "tag3"], "mappings": { "hash1": "tag1", "hash2": "tag2" } }',
|
|
@@ -32,7 +44,14 @@ const processExtractCategory = async () => {
|
|
|
32
44
|
},
|
|
33
45
|
{
|
|
34
46
|
role: 'user',
|
|
35
|
-
content:
|
|
47
|
+
content: [
|
|
48
|
+
`目前已有的标签有: `,
|
|
49
|
+
JSON.stringify([...new Set(markdownFiles.map(f => f.category).filter(Boolean))]),
|
|
50
|
+
`目前尚未分类的文件有:`,
|
|
51
|
+
JSON.stringify(markdownFilesWithoutCategory),
|
|
52
|
+
`已经分类的文件有:`,
|
|
53
|
+
JSON.stringify(markdownFiles.filter(f => f.category)),
|
|
54
|
+
].join('\n'),
|
|
36
55
|
},
|
|
37
56
|
], { response_format: { type: 'json_object' }, task_id: 'extract-categories' });
|
|
38
57
|
const json = categories.choices[0].message.content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../src/process/category.ts"],"names":[],"mappings":";;;AAAA,0CAAuC;AACvC,+CAAsD;AAE/C,MAAM,sBAAsB,GAAG,KAAK,IAAmB,EAAE;IAC9D,6BAA6B;IAC7B,MAAM,eAAe,GAAG,mBAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5F,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;QACpF,OAAO;IACT,CAAC;IACD,8BAA8B;IAC9B,qBAAqB;IAErB,eAAe;
|
|
1
|
+
{"version":3,"file":"category.js","sourceRoot":"","sources":["../../src/process/category.ts"],"names":[],"mappings":"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"}
|