code7-leia 0.1.95 → 0.1.98

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.
@@ -17,6 +17,7 @@ var md = require('react-icons/md');
17
17
  var reactDropzone = require('react-dropzone');
18
18
  var axios = _interopDefault(require('axios'));
19
19
  var pi = require('react-icons/pi');
20
+ var actions = require('src/store/modules/actions');
20
21
  var redux = require('redux');
21
22
  var createSagaMiddleware = _interopDefault(require('redux-saga'));
22
23
  var immer = require('immer');
@@ -1020,6 +1021,9 @@ var SharedPropsProvider = function SharedPropsProvider(_ref) {
1020
1021
  var _useState = React.useState(null),
1021
1022
  tags = _useState[0],
1022
1023
  setTags = _useState[1];
1024
+ var _useState2 = React.useState(null),
1025
+ personas = _useState2[0],
1026
+ setPersonas = _useState2[1];
1023
1027
  React.useEffect(function () {
1024
1028
  var fetchData = /*#__PURE__*/function () {
1025
1029
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
@@ -1054,10 +1058,45 @@ var SharedPropsProvider = function SharedPropsProvider(_ref) {
1054
1058
  return _ref2.apply(this, arguments);
1055
1059
  };
1056
1060
  }();
1061
+ var personas = /*#__PURE__*/function () {
1062
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
1063
+ var _yield$api$get2, data;
1064
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1065
+ while (1) switch (_context2.prev = _context2.next) {
1066
+ case 0:
1067
+ _context2.prev = 0;
1068
+ _context2.next = 3;
1069
+ return api.get("/personas");
1070
+ case 3:
1071
+ _yield$api$get2 = _context2.sent;
1072
+ data = _yield$api$get2.data;
1073
+ if (data) {
1074
+ setPersonas(data);
1075
+ } else {
1076
+ console.error('Erro ao fazer a solicitação');
1077
+ }
1078
+ _context2.next = 11;
1079
+ break;
1080
+ case 8:
1081
+ _context2.prev = 8;
1082
+ _context2.t0 = _context2["catch"](0);
1083
+ console.error('Erro ao fazer a solicitação:', _context2.t0);
1084
+ case 11:
1085
+ case "end":
1086
+ return _context2.stop();
1087
+ }
1088
+ }, _callee2, null, [[0, 8]]);
1089
+ }));
1090
+ return function personas() {
1091
+ return _ref3.apply(this, arguments);
1092
+ };
1093
+ }();
1057
1094
  fetchData();
1095
+ personas();
1058
1096
  }, [id]);
1059
1097
  var sharedProps = _extends({}, props, {
1060
- propTags: tags
1098
+ propTags: tags,
1099
+ personas: personas
1061
1100
  });
1062
1101
  return React__default.createElement(SharedPropsContext.Provider, {
1063
1102
  value: {
@@ -1070,7 +1109,9 @@ var Types = {
1070
1109
  GET_FILES_REQUEST: '@files/GET_FILES_REQUEST',
1071
1110
  GET_FILES_SUCCESS: '@files/GET_FILES_SUCCESS',
1072
1111
  DELETE_FILES_REQUEST: '@files/DELETE_FILES_REQUEST',
1073
- DELETE_FILES_SUCCESS: '@files/DELETE_FILES_SUCCESS'
1112
+ DELETE_FILES_SUCCESS: '@files/DELETE_FILES_SUCCESS',
1113
+ TEST_REQUEST: '@files/TEST_REQUEST',
1114
+ TEST_SUCCESS: '@files/TEST_SUCCESS'
1074
1115
  };
1075
1116
 
1076
1117
  var getFilesAction = function getFilesAction(id) {
@@ -1108,12 +1149,22 @@ var deleteFilesActionSuccess = function deleteFilesActionSuccess(_ref2) {
1108
1149
  }
1109
1150
  };
1110
1151
  };
1152
+ var testActionSuccess = function testActionSuccess(_ref3) {
1153
+ var message = _ref3.message;
1154
+ return {
1155
+ type: Types.TEST_SUCCESS,
1156
+ payload: {
1157
+ message: message
1158
+ }
1159
+ };
1160
+ };
1111
1161
 
1112
1162
  var FileArea = function FileArea() {
1113
1163
  var _useSharedProps = useSharedProps(),
1114
1164
  id = _useSharedProps.id,
1115
1165
  language = _useSharedProps.language,
1116
- propTags = _useSharedProps.propTags;
1166
+ propTags = _useSharedProps.propTags,
1167
+ personas = _useSharedProps.personas;
1117
1168
  var _useState = React.useState([]),
1118
1169
  files = _useState[0],
1119
1170
  setFiles = _useState[1];
@@ -1137,9 +1188,7 @@ var FileArea = function FileArea() {
1137
1188
  var initFiles = reactRedux.useSelector(function (state) {
1138
1189
  return state.files;
1139
1190
  });
1140
- var tags = propTags ? propTags.tags.map(function (item) {
1141
- return item.tag;
1142
- }) : [];
1191
+ var tags = propTags ? propTags.tags : [];
1143
1192
  React.useEffect(function () {
1144
1193
  dispatch(getFilesAction(id));
1145
1194
  }, [id]);
@@ -1269,7 +1318,8 @@ var FileArea = function FileArea() {
1269
1318
  language: language,
1270
1319
  propTags: {
1271
1320
  tags: []
1272
- }
1321
+ },
1322
+ personas: personas
1273
1323
  }, React__default.createElement(Container, null, renderFiles()));
1274
1324
  };
1275
1325
 
@@ -1301,32 +1351,26 @@ var InputTest = function InputTest(_ref) {
1301
1351
  };
1302
1352
 
1303
1353
  var TestArea = function TestArea() {
1304
- var t = getLanguage('pt-br');
1305
- var _useState = React.useState({
1306
- "message": ""
1307
- }),
1308
- results = _useState[0],
1309
- setResults = _useState[1];
1354
+ var _useSharedProps = useSharedProps(),
1355
+ id = _useSharedProps.id,
1356
+ language = _useSharedProps.language,
1357
+ personas = _useSharedProps.personas,
1358
+ propTags = _useSharedProps.propTags;
1359
+ var t = getLanguage(language);
1360
+ var results = reactRedux.useSelector(function (state) {
1361
+ return state.message;
1362
+ });
1363
+ var _useState = React.useState(''),
1364
+ search = _useState[0],
1365
+ setSearch = _useState[1];
1310
1366
  var _useState2 = React.useState(''),
1311
- search = _useState2[0],
1312
- setSearch = _useState2[1];
1313
- var tags = ["pae", "boteria", "vr", "code7", "vidalink"];
1314
- var personas = [{
1315
- "description": "Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.",
1316
- "name": "College professor"
1317
- }, {
1318
- "description": "Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.",
1319
- "name": "School Teacher"
1320
- }, {
1321
- "description": "Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.",
1322
- "name": "Humorist"
1323
- }, {
1324
- "description": "Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.",
1325
- "name": "Military"
1326
- }, {
1327
- "description": "Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.",
1328
- "name": "Digital Influencer"
1329
- }];
1367
+ profile = _useState2[0],
1368
+ setProfile = _useState2[1];
1369
+ var _useState3 = React.useState(''),
1370
+ presset = _useState3[0],
1371
+ setPresset = _useState3[1];
1372
+ var dispatch = reactRedux.useDispatch();
1373
+ var tags = propTags ? propTags.tags : [];
1330
1374
  var optionsPersona = personas.map(function (persona) {
1331
1375
  return {
1332
1376
  label: persona.name,
@@ -1339,22 +1383,29 @@ var TestArea = function TestArea() {
1339
1383
  value: tag
1340
1384
  };
1341
1385
  });
1342
- var handleSelect = function handleSelect(value) {
1343
- console.log(value);
1386
+ var handleSelectPersona = function handleSelectPersona(value) {
1387
+ setProfile(value);
1388
+ };
1389
+ var handleSelectPresset = function handleSelectPresset(value) {
1390
+ setPresset(value);
1344
1391
  };
1345
1392
  var handleSearch = function handleSearch(value) {
1346
- console.log(search);
1347
1393
  setSearch(value);
1348
1394
  };
1349
1395
  var handleRecordAudio = function handleRecordAudio() {
1350
1396
  console.log('Iniciando gravação de áudio...');
1351
1397
  };
1352
1398
  var handleTest = function handleTest() {
1353
- setResults({
1354
- "message": "Você precisa seguir algumas etapas importantes para ter um chatbot perfeito. Primeiro, defina claramente o objetivo do seu chatbot. Em seguida, crie uma mensagem de saudação cativante para atrair a atenção dos usuários. Não se esqueça de pedir feedbacks para melhorar constantemente o desempenho do seu chatbot. Além disso, construa um fluxo de conversa simples e utilize respostas curtas para manter a interação rápida e eficiente. Também é importante incorporar inteligência artificial para tornar o seu chatbot especialista em determinado assunto. Teste o seu bot antes de lançá-lo e personalize-o de acordo com as necessidades dos usuários. Por fim, direcione os usuários para um atendimento humano quando necessário. Seguindo essas dicas, você estará no caminho certo para ter um chatbot perfeito!"
1355
- });
1399
+ dispatch(actions.testAction(search, profile, presset, id));
1356
1400
  };
1357
- return React__default.createElement(Container$4, null, React__default.createElement(Header$1, null, React__default.createElement("div", {
1401
+ return React__default.createElement(SharedPropsProvider, {
1402
+ id: id,
1403
+ language: language,
1404
+ propTags: {
1405
+ tags: []
1406
+ },
1407
+ personas: personas
1408
+ }, React__default.createElement(Container$4, null, React__default.createElement(Header$1, null, React__default.createElement("div", {
1358
1409
  className: 'infos'
1359
1410
  }, React__default.createElement("h2", null, t.test), React__default.createElement("p", null, t.testArea.description))), React__default.createElement(Inputs, null, React__default.createElement(InputTest, {
1360
1411
  placeholder: t.testArea.typeSentence,
@@ -1363,11 +1414,11 @@ var TestArea = function TestArea() {
1363
1414
  }), React__default.createElement(Select, {
1364
1415
  placeholder: t.testArea.selectPersona,
1365
1416
  options: optionsPersona,
1366
- onSelect: handleSelect
1417
+ onSelect: handleSelectPersona
1367
1418
  }), React__default.createElement(Select, {
1368
1419
  placeholder: t.testArea.selectPresset,
1369
1420
  options: optionsPresset,
1370
- onSelect: handleSelect
1421
+ onSelect: handleSelectPresset
1371
1422
  }), React__default.createElement("button", {
1372
1423
  onClick: handleTest
1373
1424
  }, React__default.createElement(pi.PiWaveformBold, null), " ", t.buttons.test)), results.message === '' ? React__default.createElement(EmptyState, {
@@ -1379,7 +1430,7 @@ var TestArea = function TestArea() {
1379
1430
  className: 'icon'
1380
1431
  }, React__default.createElement(md.MdPerson2, null)), React__default.createElement("div", {
1381
1432
  className: 'text'
1382
- }, results.message)));
1433
+ }, results.message))));
1383
1434
  };
1384
1435
 
1385
1436
  var Leia = function Leia(props) {
@@ -1387,11 +1438,18 @@ var Leia = function Leia(props) {
1387
1438
  var _useLocation = reactRouterDom.useLocation(),
1388
1439
  pathname = _useLocation.pathname;
1389
1440
  var history = reactRouterDom.useHistory();
1441
+ var _useSharedProps = useSharedProps(),
1442
+ personas = _useSharedProps.personas;
1390
1443
  var t = getLanguage(props.language);
1391
1444
  var activeTab = React.useMemo(function () {
1392
1445
  return pathname.split('/')[5] || 'files';
1393
1446
  }, [pathname]);
1394
- return React__default.createElement(SharedPropsProvider, Object.assign({}, props), React__default.createElement(React__default.Fragment, null, React__default.createElement(Tabs, {
1447
+ return React__default.createElement(SharedPropsProvider, Object.assign({
1448
+ propTags: {
1449
+ tags: []
1450
+ },
1451
+ personas: personas
1452
+ }, props), React__default.createElement(React__default.Fragment, null, React__default.createElement(Tabs, {
1395
1453
  value: activeTab,
1396
1454
  onChange: function onChange(value) {
1397
1455
  return history.push(match.url + "/" + value);
@@ -1416,7 +1474,8 @@ var Leia = function Leia(props) {
1416
1474
  };
1417
1475
 
1418
1476
  var INITIAL_STATE = {
1419
- files: []
1477
+ files: [],
1478
+ message: ''
1420
1479
  };
1421
1480
  function filesReducer(state, action) {
1422
1481
  if (state === void 0) {
@@ -1430,6 +1489,9 @@ function filesReducer(state, action) {
1430
1489
  case Types.DELETE_FILES_SUCCESS:
1431
1490
  draft.files = action.payload.files;
1432
1491
  break;
1492
+ case Types.TEST_SUCCESS:
1493
+ draft.message = action.payload.message;
1494
+ break;
1433
1495
  default:
1434
1496
  return action.payload;
1435
1497
  }
@@ -1438,7 +1500,8 @@ function filesReducer(state, action) {
1438
1500
 
1439
1501
  var _marked = /*#__PURE__*/_regeneratorRuntime().mark(getFilesSaga),
1440
1502
  _marked2 = /*#__PURE__*/_regeneratorRuntime().mark(deleteFilesSaga),
1441
- _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(filesSagas);
1503
+ _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(testSaga),
1504
+ _marked4 = /*#__PURE__*/_regeneratorRuntime().mark(filesSagas);
1442
1505
  function getFilesSaga(action) {
1443
1506
  var id, _yield$call, data;
1444
1507
  return _regeneratorRuntime().wrap(function getFilesSaga$(_context) {
@@ -1493,24 +1556,58 @@ function deleteFilesSaga(action) {
1493
1556
  case 12:
1494
1557
  _context2.prev = 12;
1495
1558
  _context2.t0 = _context2["catch"](0);
1496
- console.log('-----------getFiles.error------------------->', _context2.t0);
1559
+ console.log('-----------deleteFilesSaga.error------------------->', _context2.t0);
1497
1560
  case 15:
1498
1561
  case "end":
1499
1562
  return _context2.stop();
1500
1563
  }
1501
1564
  }, _marked2, null, [[0, 12]]);
1502
1565
  }
1503
- function filesSagas() {
1504
- return _regeneratorRuntime().wrap(function filesSagas$(_context3) {
1566
+ function testSaga(action) {
1567
+ var _action$payload2, question, profile, presset, files_directory, _yield$call3, data;
1568
+ return _regeneratorRuntime().wrap(function testSaga$(_context3) {
1505
1569
  while (1) switch (_context3.prev = _context3.next) {
1506
1570
  case 0:
1507
- _context3.next = 2;
1508
- return effects.all([effects.takeLatest(Types.GET_FILES_REQUEST, getFilesSaga), effects.takeLatest(Types.DELETE_FILES_REQUEST, deleteFilesSaga)]);
1509
- case 2:
1571
+ _context3.prev = 0;
1572
+ _action$payload2 = action.payload, question = _action$payload2.question, profile = _action$payload2.profile, presset = _action$payload2.presset, files_directory = _action$payload2.files_directory;
1573
+ _context3.next = 4;
1574
+ return effects.call(api.post, "/ask", {
1575
+ question: question,
1576
+ profile: profile,
1577
+ presset: presset,
1578
+ files_directory: files_directory
1579
+ });
1580
+ case 4:
1581
+ _yield$call3 = _context3.sent;
1582
+ data = _yield$call3.data;
1583
+ _context3.next = 8;
1584
+ return effects.put(testActionSuccess({
1585
+ message: data.message
1586
+ }));
1587
+ case 8:
1588
+ _context3.next = 13;
1589
+ break;
1590
+ case 10:
1591
+ _context3.prev = 10;
1592
+ _context3.t0 = _context3["catch"](0);
1593
+ console.log('-----------testSaga.error------------------->', _context3.t0);
1594
+ case 13:
1510
1595
  case "end":
1511
1596
  return _context3.stop();
1512
1597
  }
1513
- }, _marked3);
1598
+ }, _marked3, null, [[0, 10]]);
1599
+ }
1600
+ function filesSagas() {
1601
+ return _regeneratorRuntime().wrap(function filesSagas$(_context4) {
1602
+ while (1) switch (_context4.prev = _context4.next) {
1603
+ case 0:
1604
+ _context4.next = 2;
1605
+ return effects.all([effects.takeLatest(Types.GET_FILES_REQUEST, getFilesSaga), effects.takeLatest(Types.DELETE_FILES_REQUEST, deleteFilesSaga), effects.takeLatest(Types.TEST_REQUEST, testSaga)]);
1606
+ case 2:
1607
+ case "end":
1608
+ return _context4.stop();
1609
+ }
1610
+ }, _marked4);
1514
1611
  }
1515
1612
 
1516
1613
  var sagaMiddleware = /*#__PURE__*/createSagaMiddleware();