@memberjunction/server 0.9.142 → 0.9.153
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.log.json +24 -0
- package/dist/generated/generated.js +1616 -1
- package/dist/generated/generated.js.map +1 -1
- package/dist/resolvers/AskSkipResolver.js +151 -154
- package/dist/resolvers/AskSkipResolver.js.map +1 -1
- package/package.json +9 -8
- package/src/generated/generated.ts +1251 -2
- package/src/resolvers/AskSkipResolver.ts +189 -170
- package/tsconfig.json +2 -1
|
@@ -18,9 +18,9 @@ var AskSkipResolver_1;
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.AskSkipResolver = exports.AskSkipResultType = void 0;
|
|
20
20
|
const type_graphql_1 = require("type-graphql");
|
|
21
|
-
const aiengine_1 = require("@memberjunction/aiengine");
|
|
22
21
|
const core_1 = require("@memberjunction/core");
|
|
23
22
|
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
23
|
+
const skip_types_1 = require("@memberjunction/skip-types");
|
|
24
24
|
const axios_1 = __importDefault(require("axios"));
|
|
25
25
|
const PushStatusResolver_1 = require("../generic/PushStatusResolver");
|
|
26
26
|
let AskSkipResultType = class AskSkipResultType {
|
|
@@ -54,149 +54,122 @@ exports.AskSkipResultType = AskSkipResultType = __decorate([
|
|
|
54
54
|
(0, type_graphql_1.ObjectType)()
|
|
55
55
|
], AskSkipResultType);
|
|
56
56
|
let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
57
|
-
async
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
ConversationId = convoEntity.ID;
|
|
71
|
-
else
|
|
72
|
-
throw new Error(`Creating a new conversation failed`);
|
|
73
|
-
}
|
|
57
|
+
async ExecuteAskSkipAnalysisQuery(UserQuestion, ViewId, ConversationId, { dataSource, userPayload }, pubSub) {
|
|
58
|
+
const md = new core_1.Metadata();
|
|
59
|
+
const user = sqlserver_dataprovider_1.UserCache.Instance.Users.find((u) => u.Email === userPayload.email);
|
|
60
|
+
if (!user)
|
|
61
|
+
throw new Error(`User ${userPayload.email} not found in UserCache`);
|
|
62
|
+
const convoEntity = await md.GetEntityObject('Conversations', user);
|
|
63
|
+
if (!ConversationId || ConversationId <= 0) {
|
|
64
|
+
convoEntity.NewRecord();
|
|
65
|
+
if (user) {
|
|
66
|
+
convoEntity.UserID = user.ID;
|
|
67
|
+
convoEntity.Name = AskSkipResolver_1._defaultNewChatName;
|
|
68
|
+
if (await convoEntity.Save())
|
|
69
|
+
ConversationId = convoEntity.ID;
|
|
74
70
|
else
|
|
75
|
-
throw new Error(`
|
|
71
|
+
throw new Error(`Creating a new conversation failed`);
|
|
72
|
+
}
|
|
73
|
+
else
|
|
74
|
+
throw new Error(`User ${userPayload.email} not found in UserCache`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
await convoEntity.Load(ConversationId);
|
|
78
|
+
}
|
|
79
|
+
const convoDetailEntity = await md.GetEntityObject('Conversation Details', user);
|
|
80
|
+
convoDetailEntity.NewRecord();
|
|
81
|
+
convoDetailEntity.ConversationID = ConversationId;
|
|
82
|
+
convoDetailEntity.Message = UserQuestion;
|
|
83
|
+
convoDetailEntity.Role = 'User';
|
|
84
|
+
convoDetailEntity.Set('Sequence', 1);
|
|
85
|
+
await convoDetailEntity.Save();
|
|
86
|
+
const OrganizationId = process.env.BOT_SCHEMA_ORGANIZATION_ID;
|
|
87
|
+
const dataContext = new skip_types_1.SkipDataContext();
|
|
88
|
+
dataContext.Items.push({
|
|
89
|
+
Type: 'view',
|
|
90
|
+
RecordID: ViewId,
|
|
91
|
+
});
|
|
92
|
+
dataContext.Items.push({
|
|
93
|
+
Type: 'view',
|
|
94
|
+
RecordID: 123,
|
|
95
|
+
});
|
|
96
|
+
const messages = [
|
|
97
|
+
{
|
|
98
|
+
content: UserQuestion,
|
|
99
|
+
role: 'user'
|
|
76
100
|
}
|
|
77
|
-
|
|
78
|
-
|
|
101
|
+
];
|
|
102
|
+
const input = {
|
|
103
|
+
messages: messages,
|
|
104
|
+
conversationID: ConversationId.toString(),
|
|
105
|
+
dataContext: dataContext,
|
|
106
|
+
organizationID: !isNaN(parseInt(OrganizationId)) ? parseInt(OrganizationId) : 0,
|
|
107
|
+
requestPhase: 'initial_request'
|
|
108
|
+
};
|
|
109
|
+
const url = 'http://localhost:8000';
|
|
110
|
+
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
111
|
+
message: JSON.stringify({
|
|
112
|
+
type: 'AskSkip',
|
|
113
|
+
status: 'OK',
|
|
114
|
+
message: 'Sure, I can help with that, I will start by analyzing your request...',
|
|
115
|
+
}),
|
|
116
|
+
sessionId: userPayload.sessionId,
|
|
117
|
+
});
|
|
118
|
+
const response = await (0, axios_1.default)({
|
|
119
|
+
method: 'post',
|
|
120
|
+
url: url,
|
|
121
|
+
data: input,
|
|
122
|
+
});
|
|
123
|
+
if (response.status === 200) {
|
|
124
|
+
const apiResponse = response.data;
|
|
125
|
+
let sUserMessage = '';
|
|
126
|
+
switch (apiResponse.responsePhase) {
|
|
127
|
+
case 'data_request':
|
|
128
|
+
sUserMessage = 'We need to gather some more data, I will do that next and update you soon.';
|
|
129
|
+
break;
|
|
130
|
+
case 'analysis_complete':
|
|
131
|
+
sUserMessage = 'I have completed the analysis, the results will be available momentarily.';
|
|
132
|
+
break;
|
|
133
|
+
case 'clarifying_question':
|
|
134
|
+
sUserMessage = 'I have a clarifying question for you, please see review our chat so you can provide me a little more info.';
|
|
135
|
+
break;
|
|
79
136
|
}
|
|
80
|
-
const convoDetailEntity = await md.GetEntityObject('Conversation Details', user);
|
|
81
|
-
convoDetailEntity.NewRecord();
|
|
82
|
-
convoDetailEntity.ConversationID = ConversationId;
|
|
83
|
-
convoDetailEntity.Message = UserQuestion;
|
|
84
|
-
convoDetailEntity.Role = 'User';
|
|
85
|
-
convoDetailEntity.Set('Sequence', 1);
|
|
86
|
-
await convoDetailEntity.Save();
|
|
87
|
-
const OrganizationId = process.env.BOT_SCHEMA_ORGANIZATION_ID;
|
|
88
|
-
const input = { userInput: UserQuestion, conversationID: ConversationId, organizationID: OrganizationId };
|
|
89
|
-
const url = process.env.BOT_EXTERNAL_API_URL;
|
|
90
137
|
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
91
138
|
message: JSON.stringify({
|
|
92
139
|
type: 'AskSkip',
|
|
93
140
|
status: 'OK',
|
|
94
|
-
message:
|
|
141
|
+
message: sUserMessage,
|
|
95
142
|
}),
|
|
96
143
|
sessionId: userPayload.sessionId,
|
|
97
144
|
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
data: input,
|
|
102
|
-
});
|
|
103
|
-
if (response.status === 200) {
|
|
104
|
-
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
105
|
-
message: JSON.stringify({
|
|
106
|
-
type: 'AskSkip',
|
|
107
|
-
status: 'OK',
|
|
108
|
-
message: 'I created the report structure, now I will get the data for you and analyze the results... Back to ya soon!',
|
|
109
|
-
}),
|
|
110
|
-
sessionId: userPayload.sessionId,
|
|
111
|
-
});
|
|
112
|
-
const sql = response.data.params.sql;
|
|
113
|
-
const [{ result, analysis }, explanation] = await Promise.all([
|
|
114
|
-
this.getSkipDataAndAnalysis(dataSource, UserQuestion, sql),
|
|
115
|
-
this.getReportExplanation(UserQuestion, sql),
|
|
116
|
-
]);
|
|
117
|
-
const sTitle = response.data.params.reportTitle || response.data.params.chartTitle;
|
|
118
|
-
const sResult = JSON.stringify({
|
|
119
|
-
SQLResults: {
|
|
120
|
-
results: result,
|
|
121
|
-
sql: sql,
|
|
122
|
-
columns: response.data.params.columns,
|
|
123
|
-
},
|
|
124
|
-
UserMessage: '',
|
|
125
|
-
ReportExplanation: explanation,
|
|
126
|
-
Analysis: analysis,
|
|
127
|
-
ReportTitle: sTitle,
|
|
128
|
-
DisplayType: response.data.type,
|
|
129
|
-
DrillDownView: response.data.params.drillDownView,
|
|
130
|
-
DrillDownBaseViewField: response.data.params.drillDownBaseViewField,
|
|
131
|
-
DrillDownReportValueField: response.data.params.drillDownReportValueField,
|
|
132
|
-
ChartOptions: {
|
|
133
|
-
xAxis: response.data.params.xAxis,
|
|
134
|
-
xLabel: response.data.params.xLabel,
|
|
135
|
-
yAxis: response.data.params.yAxis,
|
|
136
|
-
yLabel: response.data.params.yLabel,
|
|
137
|
-
color: response.data.params.color,
|
|
138
|
-
yFormat: response.data.params.yFormat,
|
|
139
|
-
},
|
|
140
|
-
});
|
|
141
|
-
const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
|
|
142
|
-
convoDetailEntityAI.NewRecord();
|
|
143
|
-
convoDetailEntityAI.ConversationID = ConversationId;
|
|
144
|
-
convoDetailEntityAI.Message = sResult;
|
|
145
|
-
convoDetailEntityAI.Role = 'AI';
|
|
146
|
-
convoDetailEntityAI.Set('Sequence', 2);
|
|
147
|
-
await convoDetailEntityAI.Save();
|
|
148
|
-
if (convoEntity.Name === AskSkipResolver_1._defaultNewChatName) {
|
|
149
|
-
convoEntity.Name = response.data.params.reportTitle || response.data.params.chartTitle || AskSkipResolver_1._defaultNewChatName;
|
|
150
|
-
await convoEntity.Save();
|
|
151
|
-
}
|
|
152
|
-
const userNotification = await md.GetEntityObject('User Notifications', user);
|
|
153
|
-
userNotification.NewRecord();
|
|
154
|
-
userNotification.UserID = user.ID;
|
|
155
|
-
userNotification.Title = 'Report Created: ' + sTitle;
|
|
156
|
-
userNotification.Message = `Good news! Skip finished creating a report for you, click on this notification to jump back into the conversation.`;
|
|
157
|
-
userNotification.Unread = true;
|
|
158
|
-
userNotification.ResourceConfiguration = JSON.stringify({
|
|
159
|
-
type: 'askskip',
|
|
160
|
-
conversationId: ConversationId,
|
|
161
|
-
});
|
|
162
|
-
await userNotification.Save();
|
|
163
|
-
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
164
|
-
message: JSON.stringify({
|
|
165
|
-
type: 'UserNotifications',
|
|
166
|
-
status: 'OK',
|
|
167
|
-
details: {
|
|
168
|
-
action: 'create',
|
|
169
|
-
recordId: userNotification.ID,
|
|
170
|
-
},
|
|
171
|
-
}),
|
|
172
|
-
sessionId: userPayload.sessionId,
|
|
173
|
-
});
|
|
174
|
-
return {
|
|
175
|
-
Success: true,
|
|
176
|
-
Status: 'OK',
|
|
177
|
-
ConversationId: ConversationId,
|
|
178
|
-
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
179
|
-
AIMessageConversationDetailId: convoDetailEntityAI.ID,
|
|
180
|
-
Result: sResult,
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
else
|
|
184
|
-
return { Success: false, Status: 'Error', Result: `User Question ${UserQuestion} didn't work!` };
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
console.error(`Error occurred: ${error}`);
|
|
188
|
-
if (error.response) {
|
|
189
|
-
console.log(error.response.data);
|
|
190
|
-
console.log(error.response.status);
|
|
191
|
-
console.log(error.response.headers);
|
|
145
|
+
let nextAPIResponse = null;
|
|
146
|
+
if (apiResponse.responsePhase === 'data_request') {
|
|
147
|
+
nextAPIResponse = await this.HandleDataRequestPhase(apiResponse, user, dataSource, ConversationId, userPayload, pubSub);
|
|
192
148
|
}
|
|
193
|
-
else if (
|
|
194
|
-
console.log(error.request);
|
|
149
|
+
else if (apiResponse.responsePhase === 'clarifying_question') {
|
|
195
150
|
}
|
|
196
|
-
else {
|
|
197
|
-
|
|
151
|
+
else if (apiResponse.responsePhase === 'analysis_complete') {
|
|
152
|
+
nextAPIResponse = apiResponse;
|
|
198
153
|
}
|
|
199
|
-
|
|
154
|
+
const { AIMessageConversationDetailID } = await this.FinishConversationAndNotifyUser(apiResponse, md, user, convoEntity, pubSub, userPayload);
|
|
155
|
+
return {
|
|
156
|
+
Success: true,
|
|
157
|
+
Status: 'OK',
|
|
158
|
+
ConversationId: ConversationId,
|
|
159
|
+
UserMessageConversationDetailId: convoDetailEntity.ID,
|
|
160
|
+
AIMessageConversationDetailId: AIMessageConversationDetailID,
|
|
161
|
+
Result: JSON.stringify(response.data)
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
166
|
+
message: JSON.stringify({
|
|
167
|
+
type: 'AskSkip',
|
|
168
|
+
status: 'Error',
|
|
169
|
+
message: 'Analysis failed to run, please try again later and if this continues, contact your support desk.',
|
|
170
|
+
}),
|
|
171
|
+
sessionId: userPayload.sessionId,
|
|
172
|
+
});
|
|
200
173
|
return {
|
|
201
174
|
Success: false,
|
|
202
175
|
Status: 'Error',
|
|
@@ -207,25 +180,48 @@ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
|
|
|
207
180
|
};
|
|
208
181
|
}
|
|
209
182
|
}
|
|
210
|
-
async
|
|
211
|
-
|
|
212
|
-
const stringResult = JSON.stringify(result);
|
|
213
|
-
const maxStringLength = 2000;
|
|
214
|
-
const avgRowStringLength = stringResult.length / result.length;
|
|
215
|
-
let sampleDataJSON = stringResult;
|
|
216
|
-
if (stringResult.length > maxStringLength) {
|
|
217
|
-
const rowsToUse = result.length / (maxStringLength / avgRowStringLength);
|
|
218
|
-
const subsetResult = result.slice(0, rowsToUse);
|
|
219
|
-
sampleDataJSON = JSON.stringify(subsetResult);
|
|
220
|
-
}
|
|
221
|
-
const analysis = await this.getAnalysis(userQuestion, sql, sampleDataJSON);
|
|
222
|
-
return { result, analysis };
|
|
183
|
+
async HandleDataRequestPhase(apiResponse, user, dataSource, ConversationId, userPayload, pubSub) {
|
|
184
|
+
throw new Error('Method not implemented.');
|
|
223
185
|
}
|
|
224
|
-
async
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
186
|
+
async FinishConversationAndNotifyUser(apiResponse, md, user, convoEntity, pubSub, userPayload) {
|
|
187
|
+
const sTitle = apiResponse.reportTitle;
|
|
188
|
+
const sResult = JSON.stringify(apiResponse);
|
|
189
|
+
const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
|
|
190
|
+
convoDetailEntityAI.NewRecord();
|
|
191
|
+
convoDetailEntityAI.ConversationID = convoEntity.ID;
|
|
192
|
+
convoDetailEntityAI.Message = sResult;
|
|
193
|
+
convoDetailEntityAI.Role = 'AI';
|
|
194
|
+
convoDetailEntityAI.Set('Sequence', 2);
|
|
195
|
+
await convoDetailEntityAI.Save();
|
|
196
|
+
if (convoEntity.Name === AskSkipResolver_1._defaultNewChatName && sTitle) {
|
|
197
|
+
convoEntity.Name = sTitle;
|
|
198
|
+
await convoEntity.Save();
|
|
199
|
+
}
|
|
200
|
+
const userNotification = await md.GetEntityObject('User Notifications', user);
|
|
201
|
+
userNotification.NewRecord();
|
|
202
|
+
userNotification.UserID = user.ID;
|
|
203
|
+
userNotification.Title = 'Report Created: ' + sTitle;
|
|
204
|
+
userNotification.Message = `Good news! Skip finished creating a report for you, click on this notification to jump back into the conversation.`;
|
|
205
|
+
userNotification.Unread = true;
|
|
206
|
+
userNotification.ResourceConfiguration = JSON.stringify({
|
|
207
|
+
type: 'askskip',
|
|
208
|
+
conversationId: convoEntity.ID,
|
|
209
|
+
});
|
|
210
|
+
await userNotification.Save();
|
|
211
|
+
pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
|
|
212
|
+
message: JSON.stringify({
|
|
213
|
+
type: 'UserNotifications',
|
|
214
|
+
status: 'OK',
|
|
215
|
+
details: {
|
|
216
|
+
action: 'create',
|
|
217
|
+
recordId: userNotification.ID,
|
|
218
|
+
},
|
|
219
|
+
}),
|
|
220
|
+
sessionId: userPayload.sessionId,
|
|
221
|
+
});
|
|
222
|
+
return {
|
|
223
|
+
AIMessageConversationDetailID: convoDetailEntityAI.ID
|
|
224
|
+
};
|
|
229
225
|
}
|
|
230
226
|
};
|
|
231
227
|
exports.AskSkipResolver = AskSkipResolver;
|
|
@@ -233,13 +229,14 @@ AskSkipResolver._defaultNewChatName = 'New Chat';
|
|
|
233
229
|
__decorate([
|
|
234
230
|
(0, type_graphql_1.Query)(() => AskSkipResultType),
|
|
235
231
|
__param(0, (0, type_graphql_1.Arg)('UserQuestion', () => String)),
|
|
236
|
-
__param(1, (0, type_graphql_1.Arg)('
|
|
237
|
-
__param(2, (0, type_graphql_1.
|
|
238
|
-
__param(3, (0, type_graphql_1.
|
|
232
|
+
__param(1, (0, type_graphql_1.Arg)('ViewId', () => type_graphql_1.Int)),
|
|
233
|
+
__param(2, (0, type_graphql_1.Arg)('ConversationId', () => type_graphql_1.Int)),
|
|
234
|
+
__param(3, (0, type_graphql_1.Ctx)()),
|
|
235
|
+
__param(4, (0, type_graphql_1.PubSub)()),
|
|
239
236
|
__metadata("design:type", Function),
|
|
240
|
-
__metadata("design:paramtypes", [String, Number, Object, type_graphql_1.PubSubEngine]),
|
|
237
|
+
__metadata("design:paramtypes", [String, Number, Number, Object, type_graphql_1.PubSubEngine]),
|
|
241
238
|
__metadata("design:returntype", Promise)
|
|
242
|
-
], AskSkipResolver.prototype, "
|
|
239
|
+
], AskSkipResolver.prototype, "ExecuteAskSkipAnalysisQuery", null);
|
|
243
240
|
exports.AskSkipResolver = AskSkipResolver = AskSkipResolver_1 = __decorate([
|
|
244
241
|
(0, type_graphql_1.Resolver)(AskSkipResultType)
|
|
245
242
|
], AskSkipResolver);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+CAAuG;AACvG
|
|
1
|
+
{"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/server",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.153",
|
|
4
4
|
"description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -21,13 +21,14 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@apollo/server": "^4.9.1",
|
|
23
23
|
"@graphql-tools/utils": "^10.0.1",
|
|
24
|
-
"@memberjunction/ai": "^0.9.
|
|
25
|
-
"@memberjunction/aiengine": "^0.9.
|
|
26
|
-
"@memberjunction/core": "^0.9.
|
|
27
|
-
"@memberjunction/core-entities": "^0.9.
|
|
28
|
-
"@memberjunction/global": "^0.9.
|
|
29
|
-
"@memberjunction/queue": "^0.9.
|
|
30
|
-
"@memberjunction/sqlserver-dataprovider": "^0.9.
|
|
24
|
+
"@memberjunction/ai": "^0.9.136",
|
|
25
|
+
"@memberjunction/aiengine": "^0.9.19",
|
|
26
|
+
"@memberjunction/core": "^0.9.141",
|
|
27
|
+
"@memberjunction/core-entities": "^0.9.121",
|
|
28
|
+
"@memberjunction/global": "^0.9.132",
|
|
29
|
+
"@memberjunction/queue": "^0.9.139",
|
|
30
|
+
"@memberjunction/sqlserver-dataprovider": "^0.9.150",
|
|
31
|
+
"@memberjunction/skip-types": "^0.9.5",
|
|
31
32
|
"@types/cors": "^2.8.13",
|
|
32
33
|
"@types/jsonwebtoken": "^8.5.9",
|
|
33
34
|
"@types/node": "^18.11.14",
|