/
NaturalLanguage.ts
72 lines (68 loc) · 1.36 KB
/
NaturalLanguage.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import { QlikSaaSClient } from "qlik-rest-api";
export interface INLAsk {
text: string;
lang?: string;
app?: {
id?: string;
name?: string;
};
disableNarrative?: boolean;
disableConversationContext?: boolean;
disableFollowups?: boolean;
clearEntityContext?: boolean;
recommendationId?: string;
}
export interface INL {
conversationalResponse: {
responses: {
type: string;
sentence: {
text: string;
};
imageUrl: string;
narrative: {
text: string;
};
infoType: string;
infoValues: [];
followupSentence: string;
}[];
drillDownURI: string;
contextInfo: string;
apps: [
{
id: string;
name: string;
}
];
sentenceWithMatches: string;
}[];
apps: {
id: string;
name: string;
}[];
nluInfo: {
elements: {
entity: boolean;
errorText: string;
filterFieldName: string;
filterText: string;
isFilter: boolean;
text: string;
type: string;
typeName: string;
typeTranslated: string;
}[];
};
}
export class NL {
#saasClient: QlikSaaSClient;
constructor(saasClient: QlikSaaSClient) {
this.#saasClient = saasClient;
}
async ask(arg: INLAsk) {
return await this.#saasClient
.Post<INL>(`questions/actions/ask`, arg)
.then((res) => res.data);
}
}