@neuralinnovations/dataisland-sdk 0.0.1-dev15 → 0.0.1-dev16

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/README.md CHANGED
@@ -214,37 +214,52 @@ You can access all chats list using **collection** property.
214
214
  const chats = organization.chats.collection
215
215
  ```
216
216
 
217
- Main chat functionality is answer handling. You can create, fetch and cancel answer in the chat.
217
+ Main chat functionality is answer handling. You can create, fetch and cancel answer in the chat. Answer is a data object which contains question, answer, answer steps and sources for them.
218
218
 
219
219
  Here are some examples:
220
220
 
221
221
  ```
222
- const asnwer = await chat.ask("Hello!", ChatAnswerType.SHORT)
222
+ const answer = await chat.ask("Hello!", ChatAnswerType.SHORT)
223
223
 
224
- await answer.cancel()
225
-
226
- const tokens = await answer.fetchTokens(StepType.DONE, 0)
224
+ await chat.getAnswer(answer.id).cancel()
227
225
 
228
226
  ```
229
227
 
230
- You can track answer progress status using **status** property of answer object. It can be updated using fetch method.
228
+ Answer can be updated using fetch method.
231
229
 
232
230
  ```
233
- await answer.fetch()
231
+ await chat.getAnswer(answer.id).fetch()
232
+ ```
233
+
234
+ Answer have two main states: running and done. This states is represented in answer status propery.
235
+ Main statuses are RUNNING, SUCCESS, CANCELED, FAIL. You can use them to correctly draw answer in chat.
234
236
 
235
- status = answer.status
237
+ ```
238
+ status = chat.getAnswer(answer.id).status
236
239
  ```
237
240
 
238
241
  Answer is consists of step. Main steps are Prepare, Generate answer, Sources and Done. Each step also includes tokens that model generate during execution. You can access them using fetch_tokens method.
239
242
 
240
243
  ```
241
- const tokens = await answer.fetchTokens(StepType.DONE, 0)
244
+ const tokens = await chat.getAnswer(answer.id).fetchTokens(StepType.DONE, 0)
242
245
  ```
243
246
 
244
247
  Every step also includes Sources that were used during execution. Step "Sources" contains all sources of all answer steps.
245
248
 
246
249
  ```
247
- const sources = await answer.sources(StepType.SOURCES)
250
+ const sources = await chat.getAnswer(answer.id).sources(StepType.SOURCES)
251
+ ```
252
+
253
+ If you want to get chat history, you can access chat.collection property
254
+
255
+ ```
256
+ const answers = chat.collection
257
+ ```
258
+
259
+ After some answer is done, it's content property is become available. There you can have answer data object to draw an answer in history.Every answer from history is accessed from collection after it status is changed from RUNNING.
260
+
261
+ ```
262
+ const answer = chat.getAnswer(id).content
248
263
  ```
249
264
 
250
265
  #### Events
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neuralinnovations/dataisland-sdk",
3
- "version": "0.0.1-dev15",
3
+ "version": "0.0.1-dev16",
4
4
  "description": "SDK for DataIsland project",
5
5
  "licenses": [
6
6
  {
@@ -1,4 +1,4 @@
1
- import { AnswerStatus, FetchTokensResponse, SourceDto, StepType } from "../../dto/chatResponse";
1
+ import { AnswerDto, AnswerStatus, FetchTokensResponse, SourceDto, StepType } from "../../dto/chatResponse";
2
2
  import { EventDispatcher } from "../../events";
3
3
  export type AnswerId = string;
4
4
  export type StepId = string;
@@ -12,6 +12,10 @@ export declare abstract class Answer extends EventDispatcher<AnswerEvent, Answer
12
12
  * Answer id.
13
13
  */
14
14
  abstract get id(): AnswerId;
15
+ /**
16
+ * Answer data object
17
+ */
18
+ abstract get content(): AnswerDto;
15
19
  /**
16
20
  * Answer status.
17
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,QAAQ,EACT,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,8BAAsB,MAAO,SAAQ,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvE;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,MAAM,IAAI,YAAY,CAAA;IAEnC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEtD;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAExF;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CACjC"}
1
+ {"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,QAAQ,EACT,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAED,8BAAsB,MAAO,SAAQ,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC;IAEvE;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAA;IAEjC;;OAEG;IACH,QAAQ,KAAK,MAAM,IAAI,YAAY,CAAA;IAEnC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEtD;;OAEG;IACH,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAExF;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CACjC"}
@@ -14,6 +14,7 @@ export declare class AnswerImpl extends Answer {
14
14
  initFromId(id: AnswerId): Promise<AnswerImpl>;
15
15
  get id(): string;
16
16
  get status(): AnswerStatus;
17
+ get content(): AnswerDto;
17
18
  private getStep;
18
19
  sources(type: StepType): Promise<SourceDto[]>;
19
20
  fetch(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"answer.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,SAAS,EACT,QAAQ,EACT,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAE,MAAM,EAAe,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,qBAAa,UAAW,SAAQ,MAAM;IAQlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAE5B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAU;gBAGH,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO;IAI7B,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAUpD,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAcnD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,OAAO,CAAC,OAAO;IAIT,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA+B7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BtB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgCjF,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB9B"}
1
+ {"version":3,"file":"answer.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,SAAS,EACT,QAAQ,EACT,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EAAE,MAAM,EAAe,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE7B,qBAAa,UAAW,SAAQ,MAAM;IAQlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,QAAQ,CAAC,CAAW;IAE5B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,GAAG,CAAC,CAAU;gBAGH,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO;IAI7B,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IAOpD,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC;IAcnD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,OAAO,IAAI,SAAS,CAKvB;IAED,OAAO,CAAC,OAAO;IAIT,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA+B7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCtB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgCjF,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB9B"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnswerImpl = void 0;
4
+ const chatResponse_1 = require("../../dto/chatResponse");
4
5
  const responseUtils_1 = require("../../services/responseUtils");
5
6
  const rpcService_1 = require("../../services/rpcService");
6
7
  const answer_1 = require("./answer");
@@ -13,8 +14,6 @@ class AnswerImpl extends answer_1.Answer {
13
14
  async initFromData(answer) {
14
15
  this._content = answer;
15
16
  this._id = answer.id;
16
- // fetch answer
17
- await this.fetch();
18
17
  return this;
19
18
  }
20
19
  async initFromId(id) {
@@ -33,6 +32,12 @@ class AnswerImpl extends answer_1.Answer {
33
32
  get status() {
34
33
  return this._status;
35
34
  }
35
+ get content() {
36
+ if (this.status != chatResponse_1.AnswerStatus.RUNNING) {
37
+ return this._content;
38
+ }
39
+ throw new Error("Answer status is running, please use fetch() or fetch_tokens()");
40
+ }
36
41
  getStep(type) {
37
42
  var _a;
38
43
  return (_a = this._steps) === null || _a === void 0 ? void 0 : _a.find(step => step.type === type);
@@ -78,6 +83,9 @@ class AnswerImpl extends answer_1.Answer {
78
83
  type: answer_1.AnswerEvent.UPDATED,
79
84
  data: this
80
85
  });
86
+ if (this._status != chatResponse_1.AnswerStatus.RUNNING) {
87
+ await this.chat.update();
88
+ }
81
89
  }
82
90
  async fetchTokens(type, token_start_at) {
83
91
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"answer.impl.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"answer.impl.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":";;;AAMA,yCAA8C;AAK9C,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,MAAsB,MAAO,SAAQ,wBAAoC;CA+BxE;AA/BD,wBA+BC"}
1
+ {"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":";;;AAOA,yCAA8C;AAK9C,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,sCAAuB,CAAA;IACvB,kCAAmB,CAAA;AACrB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,MAAsB,MAAO,SAAQ,wBAAoC;CAoCxE;AApCD,wBAoCC"}
@@ -22,9 +22,18 @@ export declare abstract class Chat {
22
22
  * Answers list.
23
23
  */
24
24
  abstract get collection(): ReadonlyArray<Answer>;
25
+ /**
26
+ * Get answer by id
27
+ * @param id answer id
28
+ */
29
+ abstract getAnswer(id: string): Answer;
25
30
  /**
26
31
  * Ask new question in chat.
27
32
  */
28
33
  abstract ask(message: string, answerType: ChatAnswerType): Promise<Answer>;
34
+ /**
35
+ * Update chat
36
+ */
37
+ abstract update(): Promise<void>;
29
38
  }
30
39
  //# sourceMappingURL=chat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,8BAAsB,IAAI;IAExB;;OAEG;IACH,QAAQ,KAAK,YAAY,IAAI,YAAY,CAAA;IAEzC;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAA;IAEzB;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,UAAU,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IAEhD;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAC3E"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,MAAM,MAAM,MAAM,GAAG,MAAM,CAAA;AAE3B,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,8BAAsB,IAAI;IAExB;;OAEG;IACH,QAAQ,KAAK,YAAY,IAAI,YAAY,CAAA;IAEzC;;OAEG;IACH,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAA;IAEzB;;OAEG;IACH,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAA;IAE3B;;OAEG;IACH,QAAQ,KAAK,UAAU,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IAEhD;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAEtC;;OAEG;IACH,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAE1E;;OAEG;IACH,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CACjC"}
@@ -16,7 +16,9 @@ export declare class ChatImpl extends Chat implements Disposable {
16
16
  get name(): string;
17
17
  get collection(): readonly Answer[];
18
18
  get isDisposed(): boolean;
19
+ getAnswer(id: string): Answer;
19
20
  ask(message: string, answerType: ChatAnswerType): Promise<Answer>;
21
+ update(): Promise<void>;
20
22
  dispose(): void;
21
23
  }
22
24
  //# sourceMappingURL=chat.impl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/chat.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,qBAAa,QAAS,SAAQ,IAAK,YAAW,UAAU;IAOpD,OAAO,CAAC,QAAQ,CAAC,OAAO;aACR,YAAY,EAAE,YAAY;IAP5C,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IAExC,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAGP,OAAO,EAAE,OAAO,EACjB,YAAY,EAAE,YAAY;IAKtC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAehD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,UAAU,IAAI,SAAS,MAAM,EAAE,CAElC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAEK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BvE,OAAO,IAAI,IAAI;CAIhB"}
1
+ {"version":3,"file":"chat.impl.d.ts","sourceRoot":"","sources":["../../../../src/storages/chats/chat.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAE5D,qBAAa,QAAS,SAAQ,IAAK,YAAW,UAAU;IAOpD,OAAO,CAAC,QAAQ,CAAC,OAAO;aACR,YAAY,EAAE,YAAY;IAP5C,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAE5C,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAGP,OAAO,EAAE,OAAO,EACjB,YAAY,EAAE,YAAY;IAKtC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IAehD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,UAAU,IAAI,SAAS,MAAM,EAAE,CAElC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAEM,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAQ9B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BjE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B7B,OAAO,IAAI,IAAI;CAIhB"}
@@ -38,6 +38,13 @@ class ChatImpl extends chat_1.Chat {
38
38
  get isDisposed() {
39
39
  return this._isDisposed;
40
40
  }
41
+ getAnswer(id) {
42
+ const answer = this._answers.find(answer => answer.id === id);
43
+ if (answer) {
44
+ return answer;
45
+ }
46
+ throw new Error(`Answer with id ${id} is not found`);
47
+ }
41
48
  async ask(message, answerType) {
42
49
  var _a;
43
50
  // send request to the server
@@ -59,6 +66,30 @@ class ChatImpl extends chat_1.Chat {
59
66
  this._answers.push(answer);
60
67
  return answer;
61
68
  }
69
+ async update() {
70
+ var _a;
71
+ const response = await ((_a = this.context
72
+ .resolve(rpcService_1.RpcService)) === null || _a === void 0 ? void 0 : _a.requestBuilder("api/v1/Chats").searchParam("id", this.id).sendGet());
73
+ // check response status
74
+ if (responseUtils_1.ResponseUtils.isFail(response)) {
75
+ await responseUtils_1.ResponseUtils.throwError(`Failed to update chat ${this.id}`, response);
76
+ }
77
+ const chat = (await response.json()).chat;
78
+ this._content = chat;
79
+ for (const ans of chat.answers) {
80
+ let answer = this._answers.find(answer => answer.id === ans.id);
81
+ if (!answer) {
82
+ // create answer implementation
83
+ answer = await new answer_impl_1.AnswerImpl(this, this.context).initFromData(ans);
84
+ }
85
+ else {
86
+ this._answers.splice(this._answers.indexOf(answer), 1);
87
+ answer.initFromData(ans);
88
+ }
89
+ // add answer to the collection
90
+ this._answers.push(answer);
91
+ }
92
+ }
62
93
  dispose() {
63
94
  this._isDisposed = true;
64
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat.impl.js","sourceRoot":"","sources":["../../../../src/storages/chats/chat.impl.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAK7C,+CAA0C;AAC1C,0DAAsD;AACtD,gEAA4D;AAG5D,MAAa,QAAS,SAAQ,WAAI;IAMhC,YACmB,OAAgB,EACjB,YAA0B;QAE1C,KAAK,EAAE,CAAA;QAHU,YAAO,GAAP,OAAO,CAAS;QACjB,iBAAY,GAAZ,YAAY,CAAc;QAPpC,gBAAW,GAAY,KAAK,CAAA;QACnB,aAAQ,GAAa,EAAE,CAAA;IASxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAa;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEpB,eAAe;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,+BAA+B;YAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,wBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;YAEzE,+BAA+B;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,EAAE;;QACJ,OAAe,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,CAAA;IAClC,CAAC;IAED,IAAI,IAAI;;QACN,OAAe,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAA;IACpC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,UAA0B;;QACnD,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,uBAAuB,EACvC,WAAW,CAAC;YACX,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,eAAe,EAAE,OAAO;YACxB,YAAY,EAAE,CAAC,UAAU,KAAK,qBAAc,CAAC,IAAI,CAAC;SACnD,CAAC,CAAA,CAAA;QAEJ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,2CAA2C,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC7G,CAAC;QAED,6CAA6C;QAC7C,MAAM,EAAE,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;QAEtC,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,wBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAEtE,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE1B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;CAEF;AA5ED,4BA4EC"}
1
+ {"version":3,"file":"chat.impl.js","sourceRoot":"","sources":["../../../../src/storages/chats/chat.impl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../src/storages/chats/chat.ts"],"names":[],"mappings":";;;AAKA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,MAAsB,IAAI;CA0BzB;AA1BD,oBA0BC"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../src/storages/chats/chat.ts"],"names":[],"mappings":";;;AAKA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,+BAAa,CAAA;AACf,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,MAAsB,IAAI;CAqCzB;AArCD,oBAqCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neuralinnovations/dataisland-sdk",
3
- "version": "0.0.1-dev15",
3
+ "version": "0.0.1-dev16",
4
4
  "description": "SDK for DataIsland project",
5
5
  "licenses": [
6
6
  {
@@ -30,9 +30,6 @@ export class AnswerImpl extends Answer {
30
30
  this._content = answer
31
31
  this._id = answer.id
32
32
 
33
- // fetch answer
34
- await this.fetch()
35
-
36
33
  return this
37
34
  }
38
35
 
@@ -58,6 +55,13 @@ export class AnswerImpl extends Answer {
58
55
  return <AnswerStatus>this._status
59
56
  }
60
57
 
58
+ get content(): AnswerDto {
59
+ if (this.status != AnswerStatus.RUNNING){
60
+ return <AnswerDto>this._content
61
+ }
62
+ throw new Error("Answer status is running, please use fetch() or fetch_tokens()")
63
+ }
64
+
61
65
  private getStep(type: StepType): AnswerStepDto | undefined {
62
66
  return this._steps?.find(step => step.type === type)
63
67
  }
@@ -121,6 +125,10 @@ export class AnswerImpl extends Answer {
121
125
  type: AnswerEvent.UPDATED,
122
126
  data: this
123
127
  })
128
+
129
+ if (this._status != AnswerStatus.RUNNING){
130
+ await this.chat.update()
131
+ }
124
132
  }
125
133
 
126
134
  async fetchTokens(type: StepType, token_start_at: number): Promise<FetchTokensResponse> {
@@ -1,4 +1,5 @@
1
1
  import {
2
+ AnswerDto,
2
3
  AnswerStatus,
3
4
  FetchTokensResponse,
4
5
  SourceDto,
@@ -22,6 +23,11 @@ export abstract class Answer extends EventDispatcher<AnswerEvent, Answer> {
22
23
  */
23
24
  abstract get id(): AnswerId
24
25
 
26
+ /**
27
+ * Answer data object
28
+ */
29
+ abstract get content(): AnswerDto
30
+
25
31
  /**
26
32
  * Answer status.
27
33
  */
@@ -10,7 +10,7 @@ import { Organization } from "../organizations/organization"
10
10
 
11
11
  export class ChatImpl extends Chat implements Disposable {
12
12
  private _isDisposed: boolean = false
13
- private readonly _answers: Answer[] = []
13
+ private readonly _answers: AnswerImpl[] = []
14
14
 
15
15
  private _content?: ChatDto
16
16
 
@@ -45,13 +45,21 @@ export class ChatImpl extends Chat implements Disposable {
45
45
  }
46
46
 
47
47
  get collection(): readonly Answer[] {
48
- return this._answers
48
+ return <Answer[]>this._answers
49
49
  }
50
50
 
51
51
  get isDisposed(): boolean {
52
52
  return this._isDisposed
53
53
  }
54
54
 
55
+ public getAnswer(id: string): Answer {
56
+ const answer = this._answers.find(answer => answer.id === id)
57
+ if (answer){
58
+ return answer
59
+ }
60
+ throw new Error(`Answer with id ${id} is not found`)
61
+ }
62
+
55
63
  async ask(message: string, answerType: ChatAnswerType): Promise<Answer> {
56
64
  // send request to the server
57
65
  const response = await this.context
@@ -80,6 +88,37 @@ export class ChatImpl extends Chat implements Disposable {
80
88
  return answer
81
89
  }
82
90
 
91
+ async update(): Promise<void>{
92
+ const response = await this.context
93
+ .resolve(RpcService)
94
+ ?.requestBuilder("api/v1/Chats")
95
+ .searchParam("id", this.id)
96
+ .sendGet()
97
+
98
+ // check response status
99
+ if (ResponseUtils.isFail(response)) {
100
+ await ResponseUtils.throwError(`Failed to update chat ${this.id}`, response)
101
+ }
102
+
103
+ const chat = (await response!.json()).chat as ChatDto
104
+
105
+ this._content = chat
106
+
107
+ for (const ans of chat.answers) {
108
+ let answer = this._answers.find(answer => answer.id === ans.id)
109
+ if (!answer){
110
+ // create answer implementation
111
+ answer = await new AnswerImpl(this, this.context).initFromData(ans)
112
+ }else{
113
+ this._answers.splice(this._answers.indexOf(answer), 1)
114
+
115
+ answer.initFromData(ans)
116
+ }
117
+ // add answer to the collection
118
+ this._answers.push(answer)
119
+ }
120
+ }
121
+
83
122
  dispose(): void {
84
123
  this._isDisposed = true
85
124
  }
@@ -30,9 +30,20 @@ export abstract class Chat {
30
30
  */
31
31
  abstract get collection(): ReadonlyArray<Answer>
32
32
 
33
+ /**
34
+ * Get answer by id
35
+ * @param id answer id
36
+ */
37
+ abstract getAnswer(id: string): Answer
38
+
33
39
  /**
34
40
  * Ask new question in chat.
35
41
  */
36
42
  abstract ask(message: string, answerType: ChatAnswerType): Promise<Answer>
43
+
44
+ /**
45
+ * Update chat
46
+ */
47
+ abstract update(): Promise<void>
37
48
  }
38
49