code7-leia 0.1.96 → 0.1.99

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: {
@@ -1067,10 +1106,12 @@ var SharedPropsProvider = function SharedPropsProvider(_ref) {
1067
1106
  };
1068
1107
 
1069
1108
  var Types = {
1070
- GET_FILES_REQUEST: '@files/GET_FILES_REQUEST',
1071
- GET_FILES_SUCCESS: '@files/GET_FILES_SUCCESS',
1072
- DELETE_FILES_REQUEST: '@files/DELETE_FILES_REQUEST',
1073
- DELETE_FILES_SUCCESS: '@files/DELETE_FILES_SUCCESS'
1109
+ GET_FILES_REQUEST: 'GET_FILES_REQUEST',
1110
+ GET_FILES_SUCCESS: 'GET_FILES_SUCCESS',
1111
+ DELETE_FILES_REQUEST: 'DELETE_FILES_REQUEST',
1112
+ DELETE_FILES_SUCCESS: 'DELETE_FILES_SUCCESS',
1113
+ TEST_REQUEST: 'TEST_REQUEST',
1114
+ TEST_SUCCESS: '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];
@@ -1267,7 +1318,8 @@ var FileArea = function FileArea() {
1267
1318
  language: language,
1268
1319
  propTags: {
1269
1320
  tags: []
1270
- }
1321
+ },
1322
+ personas: personas
1271
1323
  }, React__default.createElement(Container, null, renderFiles()));
1272
1324
  };
1273
1325
 
@@ -1299,32 +1351,26 @@ var InputTest = function InputTest(_ref) {
1299
1351
  };
1300
1352
 
1301
1353
  var TestArea = function TestArea() {
1302
- var t = getLanguage('pt-br');
1303
- var _useState = React.useState({
1304
- "message": ""
1305
- }),
1306
- results = _useState[0],
1307
- 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];
1308
1366
  var _useState2 = React.useState(''),
1309
- search = _useState2[0],
1310
- setSearch = _useState2[1];
1311
- var tags = ["pae", "boteria", "vr", "code7", "vidalink"];
1312
- var personas = [{
1313
- "description": "Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.",
1314
- "name": "College professor"
1315
- }, {
1316
- "description": "Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.",
1317
- "name": "School Teacher"
1318
- }, {
1319
- "description": "Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.",
1320
- "name": "Humorist"
1321
- }, {
1322
- "description": "Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.",
1323
- "name": "Military"
1324
- }, {
1325
- "description": "Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.",
1326
- "name": "Digital Influencer"
1327
- }];
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 : [];
1328
1374
  var optionsPersona = personas.map(function (persona) {
1329
1375
  return {
1330
1376
  label: persona.name,
@@ -1337,22 +1383,29 @@ var TestArea = function TestArea() {
1337
1383
  value: tag
1338
1384
  };
1339
1385
  });
1340
- var handleSelect = function handleSelect(value) {
1341
- console.log(value);
1386
+ var handleSelectPersona = function handleSelectPersona(value) {
1387
+ setProfile(value);
1388
+ };
1389
+ var handleSelectPresset = function handleSelectPresset(value) {
1390
+ setPresset(value);
1342
1391
  };
1343
1392
  var handleSearch = function handleSearch(value) {
1344
- console.log(search);
1345
1393
  setSearch(value);
1346
1394
  };
1347
1395
  var handleRecordAudio = function handleRecordAudio() {
1348
1396
  console.log('Iniciando gravação de áudio...');
1349
1397
  };
1350
1398
  var handleTest = function handleTest() {
1351
- setResults({
1352
- "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!"
1353
- });
1399
+ dispatch(actions.testAction(search, profile, presset, id));
1354
1400
  };
1355
- 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", {
1356
1409
  className: 'infos'
1357
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, {
1358
1411
  placeholder: t.testArea.typeSentence,
@@ -1361,11 +1414,11 @@ var TestArea = function TestArea() {
1361
1414
  }), React__default.createElement(Select, {
1362
1415
  placeholder: t.testArea.selectPersona,
1363
1416
  options: optionsPersona,
1364
- onSelect: handleSelect
1417
+ onSelect: handleSelectPersona
1365
1418
  }), React__default.createElement(Select, {
1366
1419
  placeholder: t.testArea.selectPresset,
1367
1420
  options: optionsPresset,
1368
- onSelect: handleSelect
1421
+ onSelect: handleSelectPresset
1369
1422
  }), React__default.createElement("button", {
1370
1423
  onClick: handleTest
1371
1424
  }, React__default.createElement(pi.PiWaveformBold, null), " ", t.buttons.test)), results.message === '' ? React__default.createElement(EmptyState, {
@@ -1377,7 +1430,7 @@ var TestArea = function TestArea() {
1377
1430
  className: 'icon'
1378
1431
  }, React__default.createElement(md.MdPerson2, null)), React__default.createElement("div", {
1379
1432
  className: 'text'
1380
- }, results.message)));
1433
+ }, results.message))));
1381
1434
  };
1382
1435
 
1383
1436
  var Leia = function Leia(props) {
@@ -1385,11 +1438,18 @@ var Leia = function Leia(props) {
1385
1438
  var _useLocation = reactRouterDom.useLocation(),
1386
1439
  pathname = _useLocation.pathname;
1387
1440
  var history = reactRouterDom.useHistory();
1441
+ var _useSharedProps = useSharedProps(),
1442
+ personas = _useSharedProps.personas;
1388
1443
  var t = getLanguage(props.language);
1389
1444
  var activeTab = React.useMemo(function () {
1390
1445
  return pathname.split('/')[5] || 'files';
1391
1446
  }, [pathname]);
1392
- 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, {
1393
1453
  value: activeTab,
1394
1454
  onChange: function onChange(value) {
1395
1455
  return history.push(match.url + "/" + value);
@@ -1414,7 +1474,8 @@ var Leia = function Leia(props) {
1414
1474
  };
1415
1475
 
1416
1476
  var INITIAL_STATE = {
1417
- files: []
1477
+ files: [],
1478
+ message: ''
1418
1479
  };
1419
1480
  function filesReducer(state, action) {
1420
1481
  if (state === void 0) {
@@ -1428,6 +1489,9 @@ function filesReducer(state, action) {
1428
1489
  case Types.DELETE_FILES_SUCCESS:
1429
1490
  draft.files = action.payload.files;
1430
1491
  break;
1492
+ case Types.TEST_SUCCESS:
1493
+ draft.message = action.payload.message;
1494
+ break;
1431
1495
  default:
1432
1496
  return action.payload;
1433
1497
  }
@@ -1436,7 +1500,8 @@ function filesReducer(state, action) {
1436
1500
 
1437
1501
  var _marked = /*#__PURE__*/_regeneratorRuntime().mark(getFilesSaga),
1438
1502
  _marked2 = /*#__PURE__*/_regeneratorRuntime().mark(deleteFilesSaga),
1439
- _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(filesSagas);
1503
+ _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(testSaga),
1504
+ _marked4 = /*#__PURE__*/_regeneratorRuntime().mark(filesSagas);
1440
1505
  function getFilesSaga(action) {
1441
1506
  var id, _yield$call, data;
1442
1507
  return _regeneratorRuntime().wrap(function getFilesSaga$(_context) {
@@ -1491,24 +1556,58 @@ function deleteFilesSaga(action) {
1491
1556
  case 12:
1492
1557
  _context2.prev = 12;
1493
1558
  _context2.t0 = _context2["catch"](0);
1494
- console.log('-----------getFiles.error------------------->', _context2.t0);
1559
+ console.log('-----------deleteFilesSaga.error------------------->', _context2.t0);
1495
1560
  case 15:
1496
1561
  case "end":
1497
1562
  return _context2.stop();
1498
1563
  }
1499
1564
  }, _marked2, null, [[0, 12]]);
1500
1565
  }
1501
- function filesSagas() {
1502
- 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) {
1503
1569
  while (1) switch (_context3.prev = _context3.next) {
1504
1570
  case 0:
1505
- _context3.next = 2;
1506
- return effects.all([effects.takeLatest(Types.GET_FILES_REQUEST, getFilesSaga), effects.takeLatest(Types.DELETE_FILES_REQUEST, deleteFilesSaga)]);
1507
- 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:
1508
1595
  case "end":
1509
1596
  return _context3.stop();
1510
1597
  }
1511
- }, _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);
1512
1611
  }
1513
1612
 
1514
1613
  var sagaMiddleware = /*#__PURE__*/createSagaMiddleware();