mario-education 2.4.600-feedback → 2.4.601-feedback

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.
@@ -119,3 +119,16 @@ export interface IAnswer {
119
119
  startTime: string;
120
120
  teacherName: string;
121
121
  }
122
+ export interface AiRequest {
123
+ historyId?: number;
124
+ promptId: number;
125
+ labelTime: string;
126
+ startDate?: number;
127
+ endDate?: number;
128
+ studentName: string;
129
+ chatHistory: IChat[];
130
+ }
131
+ export interface FilterRequest {
132
+ startDate?: number;
133
+ endDate?: number;
134
+ }
package/dist/index.js CHANGED
@@ -80095,7 +80095,7 @@ var useGeminiAI = function useGeminiAI() {
80095
80095
  var _temp4 = _catch(function () {
80096
80096
  var _systemPrompt;
80097
80097
 
80098
- var genAI = new generativeAi.GoogleGenerativeAI("AIzaSyCqCHPOBhR-uhO5iHVja2g1behLY4FsctM");
80098
+ var genAI = new generativeAi.GoogleGenerativeAI("AIzaSyAb1MebW5BcT__I8WZtbvKkDHYzZDHKZro");
80099
80099
  var model = genAI.getGenerativeModel({
80100
80100
  model: "gemini-1.5-flash",
80101
80101
  generationConfig: {
@@ -80269,7 +80269,6 @@ var CALENDAR_OPTIONS$2 = [{
80269
80269
  startDate: moment().startOf("year").valueOf(),
80270
80270
  endDate: moment().endOf("year").valueOf()
80271
80271
  }];
80272
- var timeKeywords = ["this month", "this week", "this year", "last month", "last week", "last year", "today"];
80273
80272
  var IDataType;
80274
80273
 
80275
80274
  (function (IDataType) {
@@ -80559,6 +80558,7 @@ var ListPrompts = function ListPrompts(_ref) {
80559
80558
  };
80560
80559
 
80561
80560
  var PROMPT_URL = marioCore.BASE_URL + "/api/Prompt";
80561
+ var GEMINI_AI_URL = marioCore.BASE_URL + "/api/GeminiAi";
80562
80562
  var getPrompt = function getPrompt() {
80563
80563
  return marioCore.api.get("" + PROMPT_URL);
80564
80564
  };
@@ -80568,11 +80568,6 @@ var getById$p = function getById(id) {
80568
80568
  var getHistoryPrompt = function getHistoryPrompt() {
80569
80569
  return marioCore.api.get(PROMPT_URL + "/history");
80570
80570
  };
80571
- var getSessionAnswer = function getSessionAnswer(params) {
80572
- return marioCore.api.get(PROMPT_URL + "/session-data", {
80573
- params: params
80574
- });
80575
- };
80576
80571
  var createHistory = function createHistory(data) {
80577
80572
  return marioCore.api.post(PROMPT_URL + "/create-history", data);
80578
80573
  };
@@ -80582,10 +80577,8 @@ var removeHistory = function removeHistory(id) {
80582
80577
  var getHistoryById = function getHistoryById(id) {
80583
80578
  return marioCore.api.get(PROMPT_URL + "/history/" + id);
80584
80579
  };
80585
- var getTotalSession = function getTotalSession(params) {
80586
- return marioCore.api.get(PROMPT_URL + "/session-total-data", {
80587
- params: params
80588
- });
80580
+ var chatWithAi = function chatWithAi(data) {
80581
+ return marioCore.api.post(GEMINI_AI_URL + "/generate", data);
80589
80582
  };
80590
80583
 
80591
80584
  var useAIMario = function useAIMario() {
@@ -80952,24 +80945,13 @@ var useAIChat = function useAIChat() {
80952
80945
  historyId = _useState4[0],
80953
80946
  setHistoryId = _useState4[1];
80954
80947
 
80955
- var _useState5 = React.useState([]),
80956
- answers = _useState5[0],
80957
- setAnswers = _useState5[1];
80948
+ var _useState5 = React.useState(""),
80949
+ inputString = _useState5[0],
80950
+ setInputString = _useState5[1];
80958
80951
 
80959
- var _useState6 = React.useState(""),
80960
- inputString = _useState6[0],
80961
- setInputString = _useState6[1];
80962
-
80963
- var _useState7 = React.useState({
80964
- checkInCompleteCount: 0,
80965
- checkInCount: 0,
80966
- oneToOneCompleteCount: 0,
80967
- oneToOneCount: 0,
80968
- studentNotDoneCheckIns: [],
80969
- studentNotDoneConversations: []
80970
- }),
80971
- totalCheckIns = _useState7[0],
80972
- setTotalCheckIns = _useState7[1];
80952
+ var _useState6 = React.useState(),
80953
+ filters = _useState6[0],
80954
+ setFilters = _useState6[1];
80973
80955
 
80974
80956
  var goBack = function goBack() {
80975
80957
  history.goBack();
@@ -81050,8 +81032,8 @@ var useAIChat = function useAIChat() {
81050
81032
  isSystem: false
81051
81033
  }]);
81052
81034
  setChats(responses);
81053
- var startDate;
81054
- var endDate;
81035
+ var startDate = filters === null || filters === void 0 ? void 0 : filters.startDate;
81036
+ var endDate = filters === null || filters === void 0 ? void 0 : filters.endDate;
81055
81037
 
81056
81038
  switch (option.toLowerCase()) {
81057
81039
  case "this month":
@@ -81083,20 +81065,14 @@ var useAIChat = function useAIChat() {
81083
81065
  break;
81084
81066
  }
81085
81067
 
81086
- if (startDate && endDate) {
81087
- !!prompt && getSessionAnswerData(startDate, endDate, prompt, option, responses);
81088
- } else {
81089
- if ((prompt === null || prompt === void 0 ? void 0 : prompt.dataType) == IDataType.Total) {
81090
- var dataInputPrompt = "Here is the data summary: \n - Total check-ins: " + totalCheckIns.checkInCount + " \n - Completed check-ins: " + totalCheckIns.checkInCompleteCount + " \n - Total one-on-one sessions: " + totalCheckIns.oneToOneCount + " \n - Completed one-on-one sessions: " + totalCheckIns.oneToOneCompleteCount + " \n\n The following students and teachers have not completed their tasks: \n - Pending check-ins: " + totalCheckIns.studentNotDoneCheckIns.join(", ") + " \n - Pending one-on-one conversations: " + totalCheckIns.studentNotDoneConversations.join(", ");
81091
- !!prompt && askGeminiAI(dataInputPrompt, prompt, "", responses);
81092
- } else {
81093
- var _dataInputPrompt = "This is the data:\n" + (!(answers !== null && answers !== void 0 && answers.length) ? "No data available for analysis." : answers.map(function (r) {
81094
- return "Student name: " + r.fullName + ", \n Answer: " + r.answer + ", \n Student grade: " + r.grade + ", \n Start time: " + r.startTime + ", \n Question: " + r.question + ", \n Teacher name: " + r.teacherName + ";";
81095
- }).join("\n"));
81096
-
81097
- !!prompt && askGeminiAI(_dataInputPrompt, prompt, "", responses);
81098
- }
81068
+ if (endDate && startDate) {
81069
+ setFilters({
81070
+ startDate: startDate,
81071
+ endDate: endDate
81072
+ });
81099
81073
  }
81074
+
81075
+ !!prompt && askGeminiAI(prompt, option, responses, startDate, endDate);
81100
81076
  } catch (err) {
81101
81077
  var _err$response;
81102
81078
 
@@ -81107,33 +81083,11 @@ var useAIChat = function useAIChat() {
81107
81083
  }
81108
81084
  };
81109
81085
 
81110
- var getSessionAnswerData = React.useCallback(function (startDate, endDate, prompt, labelTime, responses) {
81086
+ var saveHistoryPrompt = React.useCallback(function (data) {
81111
81087
  try {
81112
81088
  var _temp6 = _catch(function () {
81113
- var filters = {
81114
- startDate: startDate,
81115
- endDate: endDate,
81116
- question: prompt.question,
81117
- instruction: prompt.instruction,
81118
- studentName: inputString
81119
- };
81120
- return Promise.resolve(prompt.dataType != IDataType.Total ? getSessionAnswer(filters) : getTotalSession(filters)).then(function (res) {
81121
- if (prompt.dataType == IDataType.Total) {
81122
- setTotalCheckIns(res.data);
81123
- var totals = res.data;
81124
- var dataInputPrompt = "Here is the data summary: \n - Total check-ins: " + totals.checkInCount + " \n - Completed check-ins: " + totals.checkInCompleteCount + " \n - Total one-on-one sessions: " + totals.oneToOneCount + " \n - Completed one-on-one sessions: " + totals.oneToOneCompleteCount + " \n\n The following students and teachers have not completed their tasks: \n - Pending check-ins: " + totals.studentNotDoneCheckIns.join(", ") + " \n - Pending one-on-one conversations: " + totals.studentNotDoneConversations.join(", ");
81125
- askGeminiAI(dataInputPrompt, prompt, labelTime, responses);
81126
- } else {
81127
- var _answers = res.data || [];
81128
-
81129
- setAnswers(_answers);
81130
-
81131
- var _dataInputPrompt2 = "This is the data:\n" + (!(_answers !== null && _answers !== void 0 && _answers.length) ? "No data available for analysis." : _answers.map(function (r) {
81132
- return "Student name: " + r.fullName + ", \n Answer: " + r.answer + ", \n Student grade: " + r.grade + ", \n Start time: " + r.startTime + ", \n Question: " + r.question + ", \n Teacher name: " + r.teacherName + ";";
81133
- }).join("\n"));
81134
-
81135
- askGeminiAI(_dataInputPrompt2, prompt, labelTime, responses);
81136
- }
81089
+ return Promise.resolve(createHistory(data)).then(function (res) {
81090
+ setHistoryId(res.data);
81137
81091
  });
81138
81092
  }, function (err) {
81139
81093
  var _err$response2;
@@ -81148,103 +81102,23 @@ var useAIChat = function useAIChat() {
81148
81102
  } catch (e) {
81149
81103
  return Promise.reject(e);
81150
81104
  }
81151
- }, [prompt, historyId, inputString]);
81152
- var saveHistoryPrompt = React.useCallback(function (data) {
81153
- try {
81154
- var _temp8 = _catch(function () {
81155
- return Promise.resolve(createHistory(data)).then(function (res) {
81156
- setHistoryId(res.data);
81157
- });
81158
- }, function (err) {
81159
- var _err$response3;
81160
-
81161
- dispatch(marioCore.setAlert({
81162
- type: "danger",
81163
- message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : _err$response3.data) || err.message
81164
- }));
81165
- });
81166
-
81167
- return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
81168
- } catch (e) {
81169
- return Promise.reject(e);
81170
- }
81171
81105
  }, [historyId]);
81172
81106
 
81173
- var askGeminiAI = function askGeminiAI(dataInputPrompt, prompt, labelTime, responses) {
81107
+ var askGeminiAI = function askGeminiAI(prompt, labelTime, responses, startDate, endDate) {
81174
81108
  try {
81175
- var _temp10 = _catch(function () {
81176
- var genAI = new generativeAi.GoogleGenerativeAI("AIzaSyCqCHPOBhR-uhO5iHVja2g1behLY4FsctM");
81177
- var model = genAI.getGenerativeModel({
81178
- model: prompt.aiModel
81179
- });
81180
- var userMessages = prompt.messages.filter(function (r) {
81181
- var _r$role2;
81182
-
81183
- return ((_r$role2 = r.role) === null || _r$role2 === void 0 ? void 0 : _r$role2.toString()) != "System";
81184
- }).map(function (i) {
81185
- var _i$role2, _i$message;
81186
-
81187
- return {
81188
- role: (_i$role2 = i.role) === null || _i$role2 === void 0 ? void 0 : _i$role2.toString().toLowerCase(),
81189
- parts: [{
81190
- text: (_i$message = i.message) === null || _i$message === void 0 ? void 0 : _i$message.replace(/{time}/g, labelTime)
81191
- }]
81192
- };
81193
- });
81194
- var updatedChatHistory = responses.filter(function (r) {
81195
- return r.message;
81196
- }).reduce(function (acc, i) {
81197
- acc.push({
81198
- role: i.isUser ? "user" : "model",
81199
- parts: [{
81200
- text: i.message
81201
- }]
81202
- });
81203
-
81204
- if (timeKeywords.includes(i.message.toLowerCase())) {
81205
- acc.push({
81206
- role: "user",
81207
- parts: [{
81208
- text: dataInputPrompt
81209
- }]
81210
- });
81211
- }
81212
-
81213
- return acc;
81214
- }, []);
81215
- var systemMessages = prompt.messages.filter(function (r) {
81216
- var _r$role3;
81217
-
81218
- return ((_r$role3 = r.role) === null || _r$role3 === void 0 ? void 0 : _r$role3.toString()) == "System";
81219
- }).map(function (i) {
81220
- var _i$message2;
81221
-
81222
- return {
81223
- text: (_i$message2 = i.message) === null || _i$message2 === void 0 ? void 0 : _i$message2.replace(/{time}/g, labelTime)
81224
- };
81225
- });
81226
- var contents = [].concat(userMessages, updatedChatHistory);
81227
- return Promise.resolve(model.generateContent({
81228
- contents: contents,
81229
- systemInstruction: {
81230
- role: "system",
81231
- parts: [].concat(systemMessages, [{
81232
- text: dataInputPrompt
81233
- }])
81234
- },
81235
- generationConfig: {
81236
- temperature: prompt.temperature,
81237
- topP: prompt.topP,
81238
- topK: prompt.topK,
81239
- maxOutputTokens: prompt.maxOutputTokens,
81240
- frequencyPenalty: prompt.frequencyPenalty,
81241
- presencePenalty: prompt.presencePenalty,
81242
- responseMimeType: "text/plain"
81243
- }
81244
- })).then(function (result) {
81245
- var _result$response;
81109
+ var _temp8 = _catch(function () {
81110
+ return Promise.resolve(chatWithAi({
81111
+ chatHistory: responses,
81112
+ startDate: startDate,
81113
+ endDate: endDate,
81114
+ studentName: inputString,
81115
+ promptId: prompt.id,
81116
+ labelTime: labelTime,
81117
+ historyId: historyId || undefined
81118
+ })).then(function (res) {
81119
+ var _res$data;
81246
81120
 
81247
- var partialText = result === null || result === void 0 ? void 0 : (_result$response = result.response) === null || _result$response === void 0 ? void 0 : _result$response.text();
81121
+ var partialText = (res === null || res === void 0 ? void 0 : (_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.text) || "";
81248
81122
 
81249
81123
  if (!!partialText) {
81250
81124
  var aiChats = [];
@@ -81273,6 +81147,17 @@ var useAIChat = function useAIChat() {
81273
81147
  aiChats = updatedChats;
81274
81148
  return updatedChats;
81275
81149
  });
81150
+ var systemMessages = prompt.messages.filter(function (r) {
81151
+ var _r$role2;
81152
+
81153
+ return ((_r$role2 = r.role) === null || _r$role2 === void 0 ? void 0 : _r$role2.toString()) == "System";
81154
+ }).map(function (i) {
81155
+ var _i$message;
81156
+
81157
+ return {
81158
+ text: (_i$message = i.message) === null || _i$message === void 0 ? void 0 : _i$message.replace(/{time}/g, labelTime)
81159
+ };
81160
+ });
81276
81161
  var formattedSystemMessages = systemMessages.map(function (msg) {
81277
81162
  return {
81278
81163
  message: msg.text,
@@ -81293,15 +81178,15 @@ var useAIChat = function useAIChat() {
81293
81178
  }
81294
81179
  });
81295
81180
  }, function (err) {
81296
- var _err$response4, _err$response4$data;
81181
+ var _err$response3, _err$response3$data;
81297
81182
 
81298
81183
  dispatch(marioCore.setAlert({
81299
81184
  type: "danger",
81300
- message: ((_err$response4 = err.response) === null || _err$response4 === void 0 ? void 0 : (_err$response4$data = _err$response4.data) === null || _err$response4$data === void 0 ? void 0 : _err$response4$data.title) || err.message
81185
+ message: ((_err$response3 = err.response) === null || _err$response3 === void 0 ? void 0 : (_err$response3$data = _err$response3.data) === null || _err$response3$data === void 0 ? void 0 : _err$response3$data.title) || err.message
81301
81186
  }));
81302
81187
  });
81303
81188
 
81304
- return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(function () {}) : void 0);
81189
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
81305
81190
  } catch (e) {
81306
81191
  return Promise.reject(e);
81307
81192
  }