@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/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 data2csvText = (data) => {
74
- return decoder.decode(data);
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, isMultiModalMsg) => {
77
- const result = message.content.map((part) => {
78
- if (part.type === "text") {
79
- return part.text;
80
- }
81
- const isCsv = part.mediaType === "text/csv";
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
- return meta?.parsedData;
88
- }
89
- if (isExcel) {
90
- return excel2json(part.data);
91
- }
92
- if (isCsv || isTxt) {
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
- return "";
96
- }).join("");
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
- // content: parseMessageContent(message, multiModal) || "",
106
- // content_type: multiModal ? "object_string" : "text",
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":