@baishuyun/coze-provider 1.0.3 → 1.1.0
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/.turbo/turbo-build.log +23 -22
- package/CHANGELOG.md +6 -0
- package/dist/index.js +31 -88
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -78
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/utils/prompt-to-model-msg.ts +38 -31
package/dist/index.mjs
CHANGED
|
@@ -17,95 +17,48 @@ import { TextDecoderStream as TextDecoderStream2 } from "stream/web";
|
|
|
17
17
|
|
|
18
18
|
// src/utils/prompt-to-model-msg.ts
|
|
19
19
|
import { RoleType } from "@coze/api";
|
|
20
|
-
|
|
21
|
-
// src/utils/excel2json.ts
|
|
22
|
-
import XLSX from "xlsx";
|
|
23
|
-
var excel2json = (file) => {
|
|
24
|
-
let workbook;
|
|
25
|
-
try {
|
|
26
|
-
workbook = XLSX.read(file, {
|
|
27
|
-
type: "array",
|
|
28
|
-
// 或 'buffer'
|
|
29
|
-
cellFormula: false
|
|
30
|
-
});
|
|
31
|
-
} catch (e) {
|
|
32
|
-
return JSON.stringify(null);
|
|
33
|
-
}
|
|
34
|
-
const result = {
|
|
35
|
-
sheets: []
|
|
36
|
-
};
|
|
37
|
-
workbook.SheetNames.forEach((sheetName) => {
|
|
38
|
-
const worksheet = workbook.Sheets[sheetName];
|
|
39
|
-
if (!worksheet) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const maxRows = 1e3;
|
|
43
|
-
const ref = worksheet["!ref"] || "A1";
|
|
44
|
-
const range = XLSX.utils.decode_range(ref);
|
|
45
|
-
const limitedRange = {
|
|
46
|
-
...range,
|
|
47
|
-
e: { ...range.e, r: Math.min(range.e.r, range.s.r + maxRows - 1) }
|
|
48
|
-
};
|
|
49
|
-
const data = XLSX.utils.sheet_to_json(worksheet, {
|
|
50
|
-
header: 1,
|
|
51
|
-
// 使用数组格式
|
|
52
|
-
raw: false,
|
|
53
|
-
// 格式化值
|
|
54
|
-
dateNF: "yyyy-mm-dd",
|
|
55
|
-
// 日期格式
|
|
56
|
-
range: limitedRange,
|
|
57
|
-
// 使用限制后的范围
|
|
58
|
-
defval: null
|
|
59
|
-
// 空单元格默认值
|
|
60
|
-
});
|
|
61
|
-
result.sheets.push({
|
|
62
|
-
name: sheetName,
|
|
63
|
-
data,
|
|
64
|
-
range: worksheet["!ref"],
|
|
65
|
-
merges: worksheet["!merges"] || []
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
return JSON.stringify(result);
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
// src/utils/prompt-to-model-msg.ts
|
|
72
20
|
var decoder = new TextDecoder("utf-8");
|
|
73
|
-
var
|
|
74
|
-
|
|
21
|
+
var getPartType = (part) => {
|
|
22
|
+
if (part.type === "text") {
|
|
23
|
+
return "text";
|
|
24
|
+
}
|
|
25
|
+
const isImg = part.mediaType?.startsWith("image/");
|
|
26
|
+
if (isImg) {
|
|
27
|
+
return "image";
|
|
28
|
+
}
|
|
29
|
+
const isAudio = part.mediaType?.startsWith("audio/");
|
|
30
|
+
if (isAudio) {
|
|
31
|
+
return "audio";
|
|
32
|
+
}
|
|
33
|
+
return "file";
|
|
75
34
|
};
|
|
76
|
-
var parseMessageContent = (message,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const isTxt = part.mediaType === "text/plain";
|
|
83
|
-
const isImg = part.mediaType?.startsWith("image/");
|
|
84
|
-
const isExcel = part.mediaType === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
85
|
-
if (isImg) {
|
|
35
|
+
var parseMessageContent = (message, isTextOnly) => {
|
|
36
|
+
if (isTextOnly) {
|
|
37
|
+
return message.content.map((part) => part.text).join("\n");
|
|
38
|
+
}
|
|
39
|
+
const result = message.content.map(
|
|
40
|
+
(part) => {
|
|
86
41
|
const meta = part.providerOptions?.uploadMetadata;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return data2csvText(part.data);
|
|
42
|
+
const url = meta?.url;
|
|
43
|
+
return {
|
|
44
|
+
type: getPartType(part),
|
|
45
|
+
text: part.type === "text" ? part.text : "",
|
|
46
|
+
file_url: part.type === "text" ? void 0 : url
|
|
47
|
+
};
|
|
94
48
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
return result;
|
|
49
|
+
);
|
|
50
|
+
return JSON.stringify(result);
|
|
98
51
|
};
|
|
52
|
+
var isTextOnlyMsg = (message) => message.content.every((part) => part.type === "text");
|
|
99
53
|
var convertPromptToMessages = (messages) => {
|
|
100
54
|
return messages.map((message) => {
|
|
55
|
+
const isTextOnly = isTextOnlyMsg(message);
|
|
101
56
|
switch (message.role) {
|
|
102
57
|
case "user":
|
|
103
58
|
return {
|
|
104
59
|
role: RoleType.User,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
content: parseMessageContent(message) || "",
|
|
108
|
-
content_type: "text"
|
|
60
|
+
content: parseMessageContent(message, isTextOnly),
|
|
61
|
+
content_type: isTextOnly ? "text" : "object_string"
|
|
109
62
|
};
|
|
110
63
|
break;
|
|
111
64
|
case "assistant":
|