@3-/aiapi 0.1.46 → 0.1.47
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/fmtJson.js +2 -5
- package/gemini.js +1 -0
- package/package.json +1 -1
- package/partition.js +29 -23
- package/seg.js +4 -1
package/fmtJson.js
CHANGED
|
@@ -6,15 +6,12 @@ import partition from './partition.js';
|
|
|
6
6
|
import seg from './seg.js';
|
|
7
7
|
|
|
8
8
|
export default async(chat, txt) => {
|
|
9
|
-
var gen, i, pli, result,
|
|
9
|
+
var gen, i, pli, result, sum, tmp, txt_li;
|
|
10
10
|
if (!txt) {
|
|
11
11
|
return [];
|
|
12
12
|
}
|
|
13
13
|
txt_li = txt.split('\n');
|
|
14
|
-
|
|
15
|
-
pli = partition(txt_li, split_li.map((i) => {
|
|
16
|
-
return [i.题, i.行];
|
|
17
|
-
}));
|
|
14
|
+
pli = (await partition(chat, txt_li, (await seg(chat, txt_li))));
|
|
18
15
|
result = [];
|
|
19
16
|
sum = 0;
|
|
20
17
|
tmp = [];
|
package/gemini.js
CHANGED
|
@@ -52,6 +52,7 @@ export default (token_li, model = 'gemini-2.5-pro') => {
|
|
|
52
52
|
retryed = token_li.length;
|
|
53
53
|
while (true) {
|
|
54
54
|
try {
|
|
55
|
+
// console.log 'https://generativelanguage.googleapis.com/v1beta/models/'+model+':generateContent'
|
|
55
56
|
r = (await fetch('https://generativelanguage.googleapis.com/v1beta/models/' + model + ':generateContent', {
|
|
56
57
|
headers: {
|
|
57
58
|
'X-goog-api-key': nextToken(),
|
package/package.json
CHANGED
package/partition.js
CHANGED
|
@@ -1,27 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
let title = ''
|
|
3
|
-
// 对行号进行升序排序
|
|
4
|
-
const order = title_number.sort((a, b) => a[1] - b[1]);
|
|
1
|
+
import seg from "./seg.js"
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
const partition = async (lines, title_number, remain_seg) => {
|
|
4
|
+
let title = ""
|
|
5
|
+
const order = title_number.sort((a, b) => a[1] - b[1])
|
|
6
|
+
const result = []
|
|
7
|
+
let start = 0
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
start = index;
|
|
19
|
-
}
|
|
9
|
+
for (const [t, row] of order) {
|
|
10
|
+
console.log(t)
|
|
11
|
+
const index = row - 1
|
|
12
|
+
result.push(title + lines.slice(start, index).join("\n"))
|
|
13
|
+
title = "# " + t + "\n"
|
|
14
|
+
start = index
|
|
15
|
+
}
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
if (start < lines.length) {
|
|
18
|
+
lines = lines.slice(start)
|
|
19
|
+
const remain = lines.join("\n")
|
|
20
|
+
if (remain.length > 6000) {
|
|
21
|
+
return result.concat(await remain_seg(lines))
|
|
22
|
+
} else {
|
|
23
|
+
result.push(title + remain)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
}
|
|
27
|
+
return result
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default (chat, lines, title_number) =>
|
|
31
|
+
partition(lines, title_number, async (li) =>
|
|
32
|
+
partition(li, await seg(chat, li), (i) => i),
|
|
33
|
+
)
|
package/seg.js
CHANGED
|
@@ -8,7 +8,7 @@ export default async(chat, txt_li) => {
|
|
|
8
8
|
输出章节标题和每章首个问题的行号及原文,输出格式为JSON数组:\n` + txt_li.map((i, pos) => {
|
|
9
9
|
return (pos + 1) + '\t' + i.trim();
|
|
10
10
|
}).join('\n');
|
|
11
|
-
|
|
11
|
+
split_li = (await chat(提示词, {
|
|
12
12
|
type: TYPE.ARRAY,
|
|
13
13
|
description: '章节和行号的列表',
|
|
14
14
|
minItems: 1,
|
|
@@ -31,4 +31,7 @@ export default async(chat, txt_li) => {
|
|
|
31
31
|
required: ['题', '行', '文']
|
|
32
32
|
}
|
|
33
33
|
}, '你是专业资深的秘书'));
|
|
34
|
+
return split_li.map((i) => {
|
|
35
|
+
return [i.题, i.行];
|
|
36
|
+
});
|
|
34
37
|
};
|