@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 +25 -10
- package/dist/package.json +1 -1
- package/dist/src/storages/chats/answer.d.ts +5 -1
- package/dist/src/storages/chats/answer.d.ts.map +1 -1
- package/dist/src/storages/chats/answer.impl.d.ts +1 -0
- package/dist/src/storages/chats/answer.impl.d.ts.map +1 -1
- package/dist/src/storages/chats/answer.impl.js +10 -2
- package/dist/src/storages/chats/answer.impl.js.map +1 -1
- package/dist/src/storages/chats/answer.js.map +1 -1
- package/dist/src/storages/chats/chat.d.ts +9 -0
- package/dist/src/storages/chats/chat.d.ts.map +1 -1
- package/dist/src/storages/chats/chat.impl.d.ts +2 -0
- package/dist/src/storages/chats/chat.impl.d.ts.map +1 -1
- package/dist/src/storages/chats/chat.impl.js +31 -0
- package/dist/src/storages/chats/chat.impl.js.map +1 -1
- package/dist/src/storages/chats/chat.js.map +1 -1
- package/package.json +1 -1
- package/src/storages/chats/answer.impl.ts +11 -3
- package/src/storages/chats/answer.ts +6 -0
- package/src/storages/chats/chat.impl.ts +41 -2
- package/src/storages/chats/chat.ts +11 -0
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
|
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
|
-
|
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
|
-
|
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,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;
|
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":";;;
|
1
|
+
{"version":3,"file":"answer.impl.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.impl.ts"],"names":[],"mappings":";;;AACA,yDAQ+B;AAC/B,gEAA4D;AAC5D,0DAAsD;AACtD,qCAAwD;AAGxD,MAAa,UAAW,SAAQ,eAAM;IAOpC,YACmB,IAAU,EACV,OAAgB;QACjC,KAAK,EAAE,CAAA;QAFU,SAAI,GAAJ,IAAI,CAAM;QACV,YAAO,GAAP,OAAO,CAAS;IAEnC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAiB;QAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAA;QAEpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAY;QAC3B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QAEb,eAAe;QACf,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAElB,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,oBAAW,CAAC,KAAK;YACvB,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,EAAE;QACJ,OAAe,IAAI,CAAC,GAAG,CAAA;IACzB,CAAC;IAED,IAAI,MAAM;QACR,OAAqB,IAAI,CAAC,OAAO,CAAA;IACnC,CAAC;IAED,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,MAAM,IAAI,2BAAY,CAAC,OAAO,EAAC,CAAC;YACvC,OAAkB,IAAI,CAAC,QAAQ,CAAA;QACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAA;IACnF,CAAC;IAEO,OAAO,CAAC,IAAc;;QAC5B,OAAO,MAAA,IAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAc;;QAC1B,eAAe;QACf,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,WAAW;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE/B,aAAa;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,0BAA0B,IAAI,CAAC,EAAE,mBAAmB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;QACnI,CAAC;QAED,cAAc;QACd,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,6BAA6B,EAC7C,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EACpC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAC1B,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAC9B,OAAO,EAAE,CAAA,CAAA;QAEZ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,6BAA6B,IAAI,CAAC,QAAQ,EAAE,aAAa,IAAI,CAAC,EAAE,mBAAmB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC1J,CAAC;QAED,2CAA2C;QAC3C,MAAM,OAAO,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,OAAsB,CAAA;QAE/D,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,KAAK;;QACT,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,CAAC,CAAA;QAClB,eAAe;QACf,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,2BAA2B,EAC3C,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EAClC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EACjC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAC3C,OAAO,EAAE,CAAA,CAAA;QAEZ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,0BAA0B,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC/E,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAwB,CAAA;QAE9D,gBAAgB;QAChB,IAAI,CAAC,OAAO,GAAiB,MAAM,CAAC,MAAM,CAAA;QAC1C,IAAI,CAAC,MAAM,GAAoB,MAAM,CAAC,KAAK,CAAA;QAE3C,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,oBAAW,CAAC,OAAO;YACzB,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,OAAO,IAAI,2BAAY,CAAC,OAAO,EAAC,CAAC;YACxC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAc,EAAE,cAAsB;;QACtD,eAAe;QACf,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QAClB,WAAW;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE/B,aAAa;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QACnE,CAAC;QAED,aAAa;QACb,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,kCAAkC,EAClD,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,EACpC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAC1B,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAC9B,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,QAAQ,EAAE,EACvD,OAAO,EAAE,CAAA,CAAA;QAEZ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,6BAA6B,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC1F,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAwB,CAAA;QAE9D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,MAAM;;QACV,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,4BAA4B,EAC5C,WAAW,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACrB,GAAG,EAAE,IAAI,CAAC,EAAE;SACb,CAAC,CAAA,CAAA;QAEJ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAA;QACzE,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,oBAAW,CAAC,SAAS;YAC3B,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;IACJ,CAAC;CACF;AA1KD,gCA0KC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../../../../src/storages/chats/answer.ts"],"names":[],"mappings":";;;
|
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;
|
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,
|
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,
|
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,GAAiB,EAAE,CAAA;IAS5C,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,OAAiB,IAAI,CAAC,QAAQ,CAAA;IAChC,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEM,SAAS,CAAC,EAAU;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,IAAI,MAAM,EAAC,CAAC;YACV,OAAO,MAAM,CAAA;QACf,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA;IACtD,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,KAAK,CAAC,MAAM;;QACV,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO;aAChC,OAAO,CAAC,uBAAU,CAAC,0CAClB,cAAc,CAAC,cAAc,EAC9B,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EACzB,OAAO,EAAE,CAAA,CAAA;QAEZ,wBAAwB;QACxB,IAAI,6BAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,6BAAa,CAAC,UAAU,CAAC,yBAAyB,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC9E,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAe,CAAA;QAErD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QAEpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;YAC/D,IAAI,CAAC,MAAM,EAAC,CAAC;gBACX,+BAA+B;gBAC/B,MAAM,GAAG,MAAM,IAAI,wBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;YACrE,CAAC;iBAAI,CAAC;gBACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;gBAEtD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;YAC1B,CAAC;YACD,+BAA+B;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IACzB,CAAC;CAEF;AAnHD,4BAmHC"}
|
@@ -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;
|
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
@@ -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:
|
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
|
|