@baishuyun/coze-provider 0.0.16 → 0.0.17

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,23 +1,22 @@
1
-
2
- 
3
- > @baishuyun/coze-provider@0.0.8 build /Users/bbbottle/Code/bs-chat-sdk/packages/coze-provider
4
- > tsup --tsconfig tsconfig.json --clean
5
-
6
- CLI Building entry: src/index.ts
7
- CLI Using tsconfig: tsconfig.json
8
- CLI tsup v8.5.1
9
- CLI Using tsup config: /Users/bbbottle/Code/bs-chat-sdk/packages/coze-provider/tsup.config.ts
10
- CLI Target: es2022
11
- CLI Cleaning output folder
12
- CJS Build start
13
- ESM Build start
14
- CJS dist/index.js 46.81 KB
15
- CJS dist/index.js.map 86.03 KB
16
- CJS ⚡️ Build success in 32ms
17
- ESM dist/index.mjs 44.72 KB
18
- ESM dist/index.mjs.map 85.63 KB
19
- ESM ⚡️ Build success in 32ms
20
- DTS Build start
21
- DTS ⚡️ Build success in 1097ms
22
- DTS dist/index.d.ts 1.57 KB
23
- DTS dist/index.d.mts 1.57 KB
1
+
2
+ > @baishuyun/coze-provider@0.0.16 build /Users/bbbottle/Code/bs-chat-sdk/packages/coze-provider
3
+ > tsup --tsconfig tsconfig.json --clean
4
+
5
+ CLI Building entry: src/index.ts
6
+ CLI Using tsconfig: tsconfig.json
7
+ CLI tsup v8.5.1
8
+ CLI Using tsup config: /Users/bbbottle/Code/bs-chat-sdk/packages/coze-provider/tsup.config.ts
9
+ CLI Target: es2022
10
+ CLI Cleaning output folder
11
+ CJS Build start
12
+ ESM Build start
13
+ ESM dist/index.mjs 48.57 KB
14
+ ESM dist/index.mjs.map 93.10 KB
15
+ ESM ⚡️ Build success in 44ms
16
+ CJS dist/index.js 50.66 KB
17
+ CJS dist/index.js.map 93.51 KB
18
+ CJS ⚡️ Build success in 45ms
19
+ DTS Build start
20
+ DTS ⚡️ Build success in 1169ms
21
+ DTS dist/index.d.ts 1.57 KB
22
+ DTS dist/index.d.mts 1.57 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @baishuyun/coze-provider
2
2
 
3
+ ## 0.0.17
4
+
5
+ ### Patch Changes
6
+
7
+ - update style and bug fix
8
+
3
9
  ## 0.0.16
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -366,6 +366,118 @@ var LLMPartTrasnformStream = class extends TransformStream {
366
366
  }
367
367
  };
368
368
 
369
+ // src/utils/create-coze-non-streaming-chat.ts
370
+ var createCozeNonStreamingChat = async (botId, options, chatConfig) => {
371
+ const messages = convertPromptToMessages(options.prompt);
372
+ const url = chatConfig.url({
373
+ path: "/chat"
374
+ });
375
+ const user_id = (options.headers ? options.headers["x-user-id"] : "") || Date.now().toString();
376
+ const user_var = options.headers ? options.headers["x-user-var"] : "";
377
+ let customVar;
378
+ if (user_var) {
379
+ try {
380
+ customVar = JSON.parse(user_var);
381
+ } catch (e) {
382
+ console.warn("x-user-var parse error", e);
383
+ }
384
+ }
385
+ const body = {
386
+ bot_id: botId,
387
+ auto_save_history: true,
388
+ user_id: user_id || "7543191937730215936",
389
+ additional_messages: messages,
390
+ stream: false
391
+ };
392
+ if (customVar) {
393
+ body.custom_var = customVar;
394
+ }
395
+ const headers = chatConfig.headers();
396
+ const abortSignal = options.abortSignal;
397
+ const response = await fetch(url, {
398
+ method: "POST",
399
+ headers,
400
+ credentials: "include",
401
+ body: JSON.stringify(body),
402
+ signal: abortSignal
403
+ });
404
+ return response;
405
+ };
406
+
407
+ // src/utils/get-coze-chat-msg-detail.ts
408
+ var getCozeChatMsgDetail = async (conversationId, chatId, chatConfig) => {
409
+ const url = chatConfig.url({
410
+ path: `/chat/message/list?conversation_id=${conversationId}&chat_id=${chatId}`
411
+ });
412
+ const response = await fetch(url, {
413
+ method: "POST",
414
+ headers: chatConfig.headers(),
415
+ credentials: "include"
416
+ });
417
+ return response;
418
+ };
419
+
420
+ // src/utils/build-generate-result-by-chat-res.ts
421
+ var BuildWarningGenerateResult = (message) => {
422
+ return {
423
+ content: [],
424
+ finishReason: "error",
425
+ request: {
426
+ body: null
427
+ },
428
+ usage: {
429
+ inputTokens: 0,
430
+ outputTokens: 0,
431
+ totalTokens: 0
432
+ },
433
+ response: {
434
+ body: null
435
+ },
436
+ warnings: [
437
+ {
438
+ type: "other",
439
+ message
440
+ }
441
+ ]
442
+ };
443
+ };
444
+ var BuildGenerateResultByChatRes = async (response, chatConfig, reqBody) => {
445
+ if (!response.ok) {
446
+ return Promise.reject(
447
+ BuildWarningGenerateResult(`Coze API error: ${response.status} ${response.statusText}`)
448
+ );
449
+ }
450
+ const res = await response.json();
451
+ if (res.code !== 0) {
452
+ return Promise.reject(BuildWarningGenerateResult(`Coze API error: ${res.code} ${res.msg}`));
453
+ }
454
+ const msgRes = await getCozeChatMsgDetail(res.data.conversation_id, res.data.id, chatConfig);
455
+ if (!msgRes.ok) {
456
+ return Promise.reject(
457
+ BuildWarningGenerateResult(
458
+ `Failed to get message detail: ${msgRes.status} ${msgRes.statusText}`
459
+ )
460
+ );
461
+ }
462
+ const msgDetail = await msgRes.json();
463
+ return {
464
+ content: msgDetail.data.message.content,
465
+ finishReason: msgDetail.data.message.status === "finished" ? "stop" : "error",
466
+ request: {
467
+ body: reqBody
468
+ },
469
+ usage: {
470
+ inputTokens: 0,
471
+ outputTokens: 0,
472
+ totalTokens: 0
473
+ },
474
+ response: {
475
+ body: msgDetail
476
+ },
477
+ warnings: []
478
+ };
479
+ };
480
+
369
481
  // src/coze-language-model.ts
370
482
  var CozeLanguageModel = class {
371
483
  specificationVersion = "v2";
@@ -379,8 +491,23 @@ var CozeLanguageModel = class {
379
491
  this.supportedUrls = config.supportedUrls?.() || {};
380
492
  this.config = config;
381
493
  }
382
- doGenerate(options) {
383
- throw new Error("Method not implemented.");
494
+ // @not-support
495
+ // coze 目前不支持非流式接口,为了兼容接口规范,仍然实现了 doGenerate 方法
496
+ async doGenerate(options) {
497
+ return BuildWarningGenerateResult(
498
+ "Coze provider does not support non-streaming calls, please use streaming interface"
499
+ );
500
+ const botIdFromProvider = options.providerOptions?.bot?.botId;
501
+ if (!botIdFromProvider) {
502
+ return BuildWarningGenerateResult("bot id missing in provider options");
503
+ }
504
+ const response = await createCozeNonStreamingChat(
505
+ botIdFromProvider,
506
+ options,
507
+ this.config
508
+ );
509
+ const result = await BuildGenerateResultByChatRes(response, this.config);
510
+ return result;
384
511
  }
385
512
  isVisibleMsgPart(evtData) {
386
513
  if (evtData.type === "knowledge" && evtData.role === "assistant") {
@@ -412,7 +539,6 @@ var CozeLanguageModel = class {
412
539
  stream: true,
413
540
  additional_messages: messages
414
541
  };
415
- console.log("Request body for Coze API:", JSON.stringify(body));
416
542
  if (customVar) {
417
543
  body.custom_var = customVar;
418
544
  }
@@ -1692,6 +1818,9 @@ var RebuilderMap = {
1692
1818
  dept: rebuildDept,
1693
1819
  sn: rebuildSn,
1694
1820
  deptgroup: rebuildDeptGroup,
1821
+ flowState: defaultBuilder,
1822
+ flowstate: defaultBuilder,
1823
+ formula: defaultBuilder,
1695
1824
  unknown: defaultBuilder
1696
1825
  };
1697
1826
  var rebuildFieldsJsonStructure = (truncatedJson, subItemsOnly = false) => {
@@ -1710,6 +1839,7 @@ var rebuildFieldsJsonStructure = (truncatedJson, subItemsOnly = false) => {
1710
1839
  var createFieldsJsonTransformStream = (enableJsonParser) => {
1711
1840
  let parser;
1712
1841
  let id;
1842
+ let isFirstChunk = true;
1713
1843
  const chunkGuard = (chunk) => {
1714
1844
  if (!enableJsonParser) {
1715
1845
  return false;
@@ -1735,12 +1865,21 @@ var createFieldsJsonTransformStream = (enableJsonParser) => {
1735
1865
  if (chunkGuard(chunk)) {
1736
1866
  if ("id" in chunk && "delta" in chunk) {
1737
1867
  id = chunk.id;
1738
- parser.write(chunk.delta);
1868
+ let delta = chunk.delta;
1869
+ if (isFirstChunk) {
1870
+ delta = delta.replace(/^\uFEFF/, "");
1871
+ isFirstChunk = false;
1872
+ }
1873
+ parser.write(delta);
1874
+ } else {
1875
+ console.warn("Unexpected chunk format for JSON parsing:", chunk);
1876
+ controller.enqueue(chunk);
1739
1877
  }
1740
1878
  } else {
1741
1879
  controller.enqueue(chunk);
1742
1880
  }
1743
1881
  } catch (e) {
1882
+ console.log("write or enqueue error", e);
1744
1883
  controller.error(e);
1745
1884
  }
1746
1885
  },
@@ -1767,6 +1906,7 @@ var createFieldsJsonTransformStream = (enableJsonParser) => {
1767
1906
  let errorLogged = false;
1768
1907
  parser.onError = (err) => {
1769
1908
  if (!errorLogged) {
1909
+ console.log("is enabled", enableJsonParser);
1770
1910
  console.error("JsonWidgetStream: JSON Parsing Error:", err);
1771
1911
  errorLogged = true;
1772
1912
  }