@leikeduntech/leiai-js 2.3.6 → 2.4.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/build/index.d.ts CHANGED
@@ -510,7 +510,6 @@ declare class ChatGPTAPI {
510
510
  set apiOrg(apiOrg: string);
511
511
  protected _buildMessages(text: string, opts: SendMessageOptions): Promise<{
512
512
  messages: openai.ChatCompletionRequestMessage[];
513
- aliyunMessage: any;
514
513
  maxTokens: number;
515
514
  numTokens: number;
516
515
  errorMessage: string;
package/build/index.js CHANGED
@@ -155,12 +155,6 @@ var ChatGPTAPI = class {
155
155
  ...completionParams
156
156
  };
157
157
  this._systemMessage = systemMessage;
158
- if (this._systemMessage === void 0) {
159
- const currentDate = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
160
- this._systemMessage = `You are ChatGPT, a large language model trained by ${this._manufacturer}. Answer as concisely as possible.
161
- Knowledge cutoff: 2021-09-01
162
- Current date: ${currentDate}`;
163
- }
164
158
  this._maxModelTokens = maxModelTokens;
165
159
  this._maxResponseTokens = maxResponseTokens;
166
160
  this._getMessageById = getMessageById ?? this._defaultGetMessageById;
@@ -205,6 +199,13 @@ Current date: ${currentDate}`;
205
199
  * @returns The response from ChatGPT
206
200
  */
207
201
  async sendMessage(text, opts = {}) {
202
+ var _a;
203
+ if (this._systemMessage === void 0 && ["openai", "azure"].indexOf((_a = this._manufacturer) == null ? void 0 : _a.toLowerCase()) > -1) {
204
+ const currentDate = (/* @__PURE__ */ new Date()).toISOString().split("T")[0];
205
+ this._systemMessage = `You are ChatGPT, a large language model trained by ${this._manufacturer}. Answer as concisely as possible.
206
+ Knowledge cutoff: 2021-09-01
207
+ Current date: ${currentDate}`;
208
+ }
208
209
  const {
209
210
  parentMessageId,
210
211
  messageId = uuidv4(),
@@ -228,7 +229,7 @@ Current date: ${currentDate}`;
228
229
  text
229
230
  };
230
231
  const latestQuestion = message;
231
- const { messages, aliyunMessage, maxTokens, numTokens, errorMessage } = await this._buildMessages(
232
+ const { messages, maxTokens, numTokens, errorMessage } = await this._buildMessages(
232
233
  text,
233
234
  opts
234
235
  );
@@ -255,7 +256,7 @@ Current date: ${currentDate}`;
255
256
  };
256
257
  const responseP = new Promise(
257
258
  async (resolve, reject) => {
258
- var _a, _b, _c, _d, _e;
259
+ var _a2, _b, _c, _d, _e;
259
260
  let url = `${this._apiBaseUrl}/chat/completions`;
260
261
  const headers = {
261
262
  "Content-Type": "application/json",
@@ -289,8 +290,8 @@ Current date: ${currentDate}`;
289
290
  stream
290
291
  };
291
292
  if (this._manufacturer.toLowerCase() === "aliyun") {
293
+ body = Object.assign(body, { parameters: { result_format: "message" }, input: { messages } });
292
294
  delete body.messages;
293
- body = Object.assign(body, { input: aliyunMessage });
294
295
  } else if (this._manufacturer.toLowerCase() === "zhipu") {
295
296
  delete body.messages;
296
297
  body = Object.assign(body, { prompt: messages });
@@ -302,7 +303,7 @@ Current date: ${currentDate}`;
302
303
  console.log(`api url (${url}`);
303
304
  console.log(`api header (${JSON.stringify(headers)}`);
304
305
  console.log(`sendMessage (${numTokens} tokens) body: `, body);
305
- console.log(`sendMessage (${numTokens} tokens) message : `, aliyunMessage || messages);
306
+ console.log(`sendMessage (${numTokens} tokens) message : `, messages);
306
307
  }
307
308
  if (this._manufacturer.toLowerCase() === "xunfei") {
308
309
  const self = this;
@@ -351,7 +352,7 @@ Current date: ${currentDate}`;
351
352
  body: JSON.stringify(body),
352
353
  signal: abortSignal,
353
354
  onMessage: (data) => {
354
- var _a2, _b2, _c2, _d2, _e2, _f, _g, _h, _i, _j, _k;
355
+ var _a3, _b2, _c2, _d2, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
355
356
  if (this._debug) {
356
357
  }
357
358
  if (data === "[DONE]") {
@@ -367,13 +368,13 @@ Current date: ${currentDate}`;
367
368
  return resolve(result);
368
369
  }
369
370
  } else if (this._manufacturer.toLowerCase() === "azure") {
370
- if (((_a2 = response.choices[0]) == null ? void 0 : _a2.finish_reason) === "stop") {
371
+ if (((_a3 = response.choices[0]) == null ? void 0 : _a3.finish_reason) === "stop") {
371
372
  result.text = result.text.trim();
372
373
  return resolve(result);
373
374
  }
374
375
  } else if (this._manufacturer.toLowerCase() === "aliyun") {
375
- if (((_b2 = response == null ? void 0 : response.output) == null ? void 0 : _b2.finish_reason) === "stop") {
376
- result.text = response == null ? void 0 : response.output.text.trim();
376
+ if (["stop", "length"].indexOf((_c2 = (_b2 = response == null ? void 0 : response.output) == null ? void 0 : _b2.choices[0]) == null ? void 0 : _c2.finish_reason) > -1) {
377
+ result.text = (_f = (_e2 = (_d2 = response == null ? void 0 : response.output) == null ? void 0 : _d2.choices[0]) == null ? void 0 : _e2.message) == null ? void 0 : _f.content.trim();
377
378
  return resolve(result);
378
379
  }
379
380
  } else if (this._manufacturer.toLowerCase() === "zhipu") {
@@ -391,7 +392,7 @@ Current date: ${currentDate}`;
391
392
  result.id = response.id;
392
393
  }
393
394
  }
394
- if (((_c2 = response.choices) == null ? void 0 : _c2.length) && ["openai", "azure"].indexOf(this._manufacturer.toLowerCase()) > -1) {
395
+ if (((_g = response.choices) == null ? void 0 : _g.length) && ["openai", "azure"].indexOf(this._manufacturer.toLowerCase()) > -1) {
395
396
  const delta = response.choices[0].delta;
396
397
  result.delta = delta.content;
397
398
  if (delta == null ? void 0 : delta.content)
@@ -409,17 +410,17 @@ Current date: ${currentDate}`;
409
410
  result.detail = response;
410
411
  onProgress == null ? void 0 : onProgress(result);
411
412
  } else if ((response == null ? void 0 : response.output) && this._manufacturer.toLowerCase() === "aliyun") {
412
- response.usage = Object.assign(response.usage, { prompt_tokens: (_d2 = response.usage) == null ? void 0 : _d2.input_tokens, completion_tokens: (_e2 = response.usage) == null ? void 0 : _e2.output_tokens, total_tokens: ((_f = response.usage) == null ? void 0 : _f.input_tokens) + ((_g = response.usage) == null ? void 0 : _g.output_tokens) });
413
+ response.usage = Object.assign(response.usage, { prompt_tokens: (_h = response.usage) == null ? void 0 : _h.input_tokens, completion_tokens: (_i = response.usage) == null ? void 0 : _i.output_tokens, total_tokens: ((_j = response.usage) == null ? void 0 : _j.input_tokens) + ((_k = response.usage) == null ? void 0 : _k.output_tokens) });
413
414
  result.delta = "";
414
- if ((_h = response == null ? void 0 : response.output) == null ? void 0 : _h.text)
415
- result.text = (_i = response == null ? void 0 : response.output) == null ? void 0 : _i.text;
415
+ if ((_n = (_m = (_l = response == null ? void 0 : response.output) == null ? void 0 : _l.choices[0]) == null ? void 0 : _m.message) == null ? void 0 : _n.content)
416
+ result.text = (_q = (_p = (_o = response == null ? void 0 : response.output) == null ? void 0 : _o.choices[0]) == null ? void 0 : _p.message) == null ? void 0 : _q.content;
416
417
  result.role = "assistant";
417
418
  result.detail = response;
418
419
  onProgress == null ? void 0 : onProgress(result);
419
420
  } else if ((response == null ? void 0 : response.data) && this._manufacturer.toLowerCase() === "zhipu") {
420
421
  if (response.event === "finish") {
421
- if ((_j = response == null ? void 0 : response.meta) == null ? void 0 : _j.usage) {
422
- response.usage = (_k = response == null ? void 0 : response.meta) == null ? void 0 : _k.usage;
422
+ if ((_r = response == null ? void 0 : response.meta) == null ? void 0 : _r.usage) {
423
+ response.usage = (_s = response == null ? void 0 : response.meta) == null ? void 0 : _s.usage;
423
424
  } else {
424
425
  response.usage = { prompt_tokens: 1, completion_tokens: 1, total_tokens: 2 };
425
426
  }
@@ -469,7 +470,7 @@ Current date: ${currentDate}`;
469
470
  result.id = response.id;
470
471
  }
471
472
  }
472
- if (((_a = response == null ? void 0 : response.choices) == null ? void 0 : _a.length) && ["openai", "azure"].indexOf(this._manufacturer.toLowerCase()) > -1) {
473
+ if (((_a2 = response == null ? void 0 : response.choices) == null ? void 0 : _a2.length) && ["openai", "azure"].indexOf(this._manufacturer.toLowerCase()) > -1) {
473
474
  const message2 = response.choices[0].message;
474
475
  result.text = message2.content;
475
476
  if (message2.role) {
@@ -498,13 +499,13 @@ Current date: ${currentDate}`;
498
499
  }
499
500
  }
500
501
  ).then(async (message2) => {
501
- var _a, _b;
502
+ var _a2, _b;
502
503
  if (message2.detail && !message2.detail.usage) {
503
504
  try {
504
505
  const promptTokens = numTokens;
505
506
  let completionTokens = 0;
506
507
  if (["baidu", "aliyun"].indexOf(this._manufacturer.toLowerCase()) > -1) {
507
- completionTokens = (_b = (_a = message2.detail) == null ? void 0 : _a.usage) == null ? void 0 : _b.total_tokens;
508
+ completionTokens = (_b = (_a2 = message2.detail) == null ? void 0 : _a2.usage) == null ? void 0 : _b.total_tokens;
508
509
  } else {
509
510
  completionTokens = await this._getTokenCount(message2.text);
510
511
  }
@@ -581,14 +582,14 @@ Current date: ${currentDate}`;
581
582
  const assistantLabel = ASSISTANT_LABEL_DEFAULT;
582
583
  const maxNumTokens = this._maxModelTokens - this._maxResponseTokens;
583
584
  let messages = [];
584
- if (systemMessage && ["openai", "azure"].indexOf(this._manufacturer.toLowerCase()) > -1) {
585
+ if (systemMessage && ["openai", "azure", "aliyun"].indexOf(this._manufacturer.toLowerCase()) > -1) {
585
586
  messages.push({
586
587
  role: "system",
587
588
  content: systemMessage
588
589
  });
589
590
  }
590
591
  const systemMessageOffset = messages.length;
591
- const userMessage = ["baidu", "azure", "zhipu", "xunfei"].indexOf(this._manufacturer.toLowerCase()) > -1 ? [{ role: "user", content: text }] : [{ role: "user", content: text, name: opts.name }];
592
+ const userMessage = ["baidu", "azure", "zhipu", "xunfei", "aliyun"].indexOf(this._manufacturer.toLowerCase()) > -1 ? [{ role: "user", content: text }] : [{ role: "user", content: text, name: opts.name }];
592
593
  let nextMessages = text ? messages.concat(userMessage) : messages;
593
594
  let numTokens = 0;
594
595
  do {
@@ -647,28 +648,7 @@ ${message.content}`]);
647
648
  maxTokens = this._maxModelTokens;
648
649
  errorMessage = `${this._manufacturer}\uFF1A\u5F53\u524D\u63D0\u95EE\u4E0A\u4E0B\u6587\u5185\u5BB9\u957F\u5EA6${numTokens}tokns\u8D85\u957F\uFF0C\u8BE5\u6A21\u578B\u6700\u5927\u63D0\u95EE\u957F\u5EA6\u4E3A${this._maxModelTokens}tokens\uFF0C\u8BF7\u5207\u6362\u5176\u4ED6\u589E\u5F3AAI\u6A21\u578B\u6216\u51CF\u5C11\u5B57\u6570\u6216\u8005\u5173\u95ED\u4E0A\u4E0B\u6587\u5386\u53F2\u63D0\u9AD8\u5355\u6B21\u63D0\u95EE\u957F\u5EA6\uFF01`;
649
650
  }
650
- let aliyunMessage;
651
- if (this._manufacturer.toLowerCase() === "aliyun") {
652
- aliyunMessage = { prompt: "", history: [] };
653
- let onceMessage = { user: "", bot: "" };
654
- messages.forEach((item, index) => {
655
- if (index < messages.length - 1 && index > 1) {
656
- if (!onceMessage.user || !onceMessage.bot) {
657
- if (item.role === "user")
658
- onceMessage.user = item.content;
659
- if (item.role === "assistant")
660
- onceMessage.bot = item.content;
661
- }
662
- if (onceMessage.user && onceMessage.bot) {
663
- aliyunMessage.history.push(onceMessage);
664
- onceMessage = { user: "", bot: "" };
665
- }
666
- } else {
667
- aliyunMessage.prompt = item.content;
668
- }
669
- });
670
- }
671
- return { messages, aliyunMessage, maxTokens, numTokens, errorMessage };
651
+ return { messages, maxTokens, numTokens, errorMessage };
672
652
  }
673
653
  async _getTokenCount(text) {
674
654
  text = text.replace(/<\|endoftext\|>/g, "");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leikeduntech/leiai-js",
3
- "version": "2.3.6",
3
+ "version": "2.4.0",
4
4
  "author": "liuhean",
5
5
  "repository": {
6
6
  "type": "git",