code7-leia 0.1.96 → 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.
@@ -1,5 +1,5 @@
1
1
  import { useDispatch, useSelector, Provider } from 'react-redux';
2
- import React, { forwardRef, useRef, useCallback, useEffect, useState, createContext, useContext, useMemo, Suspense } from 'react';
2
+ import React, { forwardRef, useRef, useCallback, useEffect, useState, useContext, createContext, useMemo, Suspense } from 'react';
3
3
  import { useRouteMatch, useLocation, useHistory, Switch, Route } from 'react-router-dom';
4
4
  import PropTypes from 'prop-types';
5
5
  import cc from 'classcat';
@@ -10,6 +10,7 @@ import { MdClose, MdPerson2 } from 'react-icons/md';
10
10
  import { useDropzone } from 'react-dropzone';
11
11
  import axios from 'axios';
12
12
  import { PiWaveformBold } from 'react-icons/pi';
13
+ import { testAction } from 'src/store/modules/actions';
13
14
  import { createStore, applyMiddleware } from 'redux';
14
15
  import createSagaMiddleware from 'redux-saga';
15
16
  import { produce } from 'immer';
@@ -1013,6 +1014,9 @@ var SharedPropsProvider = function SharedPropsProvider(_ref) {
1013
1014
  var _useState = useState(null),
1014
1015
  tags = _useState[0],
1015
1016
  setTags = _useState[1];
1017
+ var _useState2 = useState(null),
1018
+ personas = _useState2[0],
1019
+ setPersonas = _useState2[1];
1016
1020
  useEffect(function () {
1017
1021
  var fetchData = /*#__PURE__*/function () {
1018
1022
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
@@ -1047,10 +1051,45 @@ var SharedPropsProvider = function SharedPropsProvider(_ref) {
1047
1051
  return _ref2.apply(this, arguments);
1048
1052
  };
1049
1053
  }();
1054
+ var personas = /*#__PURE__*/function () {
1055
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
1056
+ var _yield$api$get2, data;
1057
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
1058
+ while (1) switch (_context2.prev = _context2.next) {
1059
+ case 0:
1060
+ _context2.prev = 0;
1061
+ _context2.next = 3;
1062
+ return api.get("/personas");
1063
+ case 3:
1064
+ _yield$api$get2 = _context2.sent;
1065
+ data = _yield$api$get2.data;
1066
+ if (data) {
1067
+ setPersonas(data);
1068
+ } else {
1069
+ console.error('Erro ao fazer a solicitação');
1070
+ }
1071
+ _context2.next = 11;
1072
+ break;
1073
+ case 8:
1074
+ _context2.prev = 8;
1075
+ _context2.t0 = _context2["catch"](0);
1076
+ console.error('Erro ao fazer a solicitação:', _context2.t0);
1077
+ case 11:
1078
+ case "end":
1079
+ return _context2.stop();
1080
+ }
1081
+ }, _callee2, null, [[0, 8]]);
1082
+ }));
1083
+ return function personas() {
1084
+ return _ref3.apply(this, arguments);
1085
+ };
1086
+ }();
1050
1087
  fetchData();
1088
+ personas();
1051
1089
  }, [id]);
1052
1090
  var sharedProps = _extends({}, props, {
1053
- propTags: tags
1091
+ propTags: tags,
1092
+ personas: personas
1054
1093
  });
1055
1094
  return React.createElement(SharedPropsContext.Provider, {
1056
1095
  value: {
@@ -1063,7 +1102,9 @@ var Types = {
1063
1102
  GET_FILES_REQUEST: '@files/GET_FILES_REQUEST',
1064
1103
  GET_FILES_SUCCESS: '@files/GET_FILES_SUCCESS',
1065
1104
  DELETE_FILES_REQUEST: '@files/DELETE_FILES_REQUEST',
1066
- DELETE_FILES_SUCCESS: '@files/DELETE_FILES_SUCCESS'
1105
+ DELETE_FILES_SUCCESS: '@files/DELETE_FILES_SUCCESS',
1106
+ TEST_REQUEST: '@files/TEST_REQUEST',
1107
+ TEST_SUCCESS: '@files/TEST_SUCCESS'
1067
1108
  };
1068
1109
 
1069
1110
  var getFilesAction = function getFilesAction(id) {
@@ -1101,12 +1142,22 @@ var deleteFilesActionSuccess = function deleteFilesActionSuccess(_ref2) {
1101
1142
  }
1102
1143
  };
1103
1144
  };
1145
+ var testActionSuccess = function testActionSuccess(_ref3) {
1146
+ var message = _ref3.message;
1147
+ return {
1148
+ type: Types.TEST_SUCCESS,
1149
+ payload: {
1150
+ message: message
1151
+ }
1152
+ };
1153
+ };
1104
1154
 
1105
1155
  var FileArea = function FileArea() {
1106
1156
  var _useSharedProps = useSharedProps(),
1107
1157
  id = _useSharedProps.id,
1108
1158
  language = _useSharedProps.language,
1109
- propTags = _useSharedProps.propTags;
1159
+ propTags = _useSharedProps.propTags,
1160
+ personas = _useSharedProps.personas;
1110
1161
  var _useState = useState([]),
1111
1162
  files = _useState[0],
1112
1163
  setFiles = _useState[1];
@@ -1260,7 +1311,8 @@ var FileArea = function FileArea() {
1260
1311
  language: language,
1261
1312
  propTags: {
1262
1313
  tags: []
1263
- }
1314
+ },
1315
+ personas: personas
1264
1316
  }, React.createElement(Container, null, renderFiles()));
1265
1317
  };
1266
1318
 
@@ -1292,32 +1344,26 @@ var InputTest = function InputTest(_ref) {
1292
1344
  };
1293
1345
 
1294
1346
  var TestArea = function TestArea() {
1295
- var t = getLanguage('pt-br');
1296
- var _useState = useState({
1297
- "message": ""
1298
- }),
1299
- results = _useState[0],
1300
- setResults = _useState[1];
1347
+ var _useSharedProps = useSharedProps(),
1348
+ id = _useSharedProps.id,
1349
+ language = _useSharedProps.language,
1350
+ personas = _useSharedProps.personas,
1351
+ propTags = _useSharedProps.propTags;
1352
+ var t = getLanguage(language);
1353
+ var results = useSelector(function (state) {
1354
+ return state.message;
1355
+ });
1356
+ var _useState = useState(''),
1357
+ search = _useState[0],
1358
+ setSearch = _useState[1];
1301
1359
  var _useState2 = useState(''),
1302
- search = _useState2[0],
1303
- setSearch = _useState2[1];
1304
- var tags = ["pae", "boteria", "vr", "code7", "vidalink"];
1305
- var personas = [{
1306
- "description": "Seriedade e profundidade ao explicar. Usa linguagem acadêmica e é preciso em temas específicos da área.",
1307
- "name": "College professor"
1308
- }, {
1309
- "description": "Abordagem descontraída, direto ao ponto. Linguagem simples, exemplos práticos para facilitar compreensão rápida.",
1310
- "name": "School Teacher"
1311
- }, {
1312
- "description": "Estilo descontraído, senso de humor único. Piadas e trocadilhos até em assuntos sérios.",
1313
- "name": "Humorist"
1314
- }, {
1315
- "description": "Postura centrada, comunicação direta e focada em resultados. Prioriza eficiência e precisão.",
1316
- "name": "Military"
1317
- }, {
1318
- "description": "Estilo único e carismático. Usa linguagem moderna, compartilha informações cativantes de forma descontraída.",
1319
- "name": "Digital Influencer"
1320
- }];
1360
+ profile = _useState2[0],
1361
+ setProfile = _useState2[1];
1362
+ var _useState3 = useState(''),
1363
+ presset = _useState3[0],
1364
+ setPresset = _useState3[1];
1365
+ var dispatch = useDispatch();
1366
+ var tags = propTags ? propTags.tags : [];
1321
1367
  var optionsPersona = personas.map(function (persona) {
1322
1368
  return {
1323
1369
  label: persona.name,
@@ -1330,22 +1376,29 @@ var TestArea = function TestArea() {
1330
1376
  value: tag
1331
1377
  };
1332
1378
  });
1333
- var handleSelect = function handleSelect(value) {
1334
- console.log(value);
1379
+ var handleSelectPersona = function handleSelectPersona(value) {
1380
+ setProfile(value);
1381
+ };
1382
+ var handleSelectPresset = function handleSelectPresset(value) {
1383
+ setPresset(value);
1335
1384
  };
1336
1385
  var handleSearch = function handleSearch(value) {
1337
- console.log(search);
1338
1386
  setSearch(value);
1339
1387
  };
1340
1388
  var handleRecordAudio = function handleRecordAudio() {
1341
1389
  console.log('Iniciando gravação de áudio...');
1342
1390
  };
1343
1391
  var handleTest = function handleTest() {
1344
- setResults({
1345
- "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!"
1346
- });
1392
+ dispatch(testAction(search, profile, presset, id));
1347
1393
  };
1348
- return React.createElement(Container$4, null, React.createElement(Header$1, null, React.createElement("div", {
1394
+ return React.createElement(SharedPropsProvider, {
1395
+ id: id,
1396
+ language: language,
1397
+ propTags: {
1398
+ tags: []
1399
+ },
1400
+ personas: personas
1401
+ }, React.createElement(Container$4, null, React.createElement(Header$1, null, React.createElement("div", {
1349
1402
  className: 'infos'
1350
1403
  }, React.createElement("h2", null, t.test), React.createElement("p", null, t.testArea.description))), React.createElement(Inputs, null, React.createElement(InputTest, {
1351
1404
  placeholder: t.testArea.typeSentence,
@@ -1354,11 +1407,11 @@ var TestArea = function TestArea() {
1354
1407
  }), React.createElement(Select, {
1355
1408
  placeholder: t.testArea.selectPersona,
1356
1409
  options: optionsPersona,
1357
- onSelect: handleSelect
1410
+ onSelect: handleSelectPersona
1358
1411
  }), React.createElement(Select, {
1359
1412
  placeholder: t.testArea.selectPresset,
1360
1413
  options: optionsPresset,
1361
- onSelect: handleSelect
1414
+ onSelect: handleSelectPresset
1362
1415
  }), React.createElement("button", {
1363
1416
  onClick: handleTest
1364
1417
  }, React.createElement(PiWaveformBold, null), " ", t.buttons.test)), results.message === '' ? React.createElement(EmptyState, {
@@ -1370,7 +1423,7 @@ var TestArea = function TestArea() {
1370
1423
  className: 'icon'
1371
1424
  }, React.createElement(MdPerson2, null)), React.createElement("div", {
1372
1425
  className: 'text'
1373
- }, results.message)));
1426
+ }, results.message))));
1374
1427
  };
1375
1428
 
1376
1429
  var Leia = function Leia(props) {
@@ -1378,11 +1431,18 @@ var Leia = function Leia(props) {
1378
1431
  var _useLocation = useLocation(),
1379
1432
  pathname = _useLocation.pathname;
1380
1433
  var history = useHistory();
1434
+ var _useSharedProps = useSharedProps(),
1435
+ personas = _useSharedProps.personas;
1381
1436
  var t = getLanguage(props.language);
1382
1437
  var activeTab = useMemo(function () {
1383
1438
  return pathname.split('/')[5] || 'files';
1384
1439
  }, [pathname]);
1385
- return React.createElement(SharedPropsProvider, Object.assign({}, props), React.createElement(React.Fragment, null, React.createElement(Tabs, {
1440
+ return React.createElement(SharedPropsProvider, Object.assign({
1441
+ propTags: {
1442
+ tags: []
1443
+ },
1444
+ personas: personas
1445
+ }, props), React.createElement(React.Fragment, null, React.createElement(Tabs, {
1386
1446
  value: activeTab,
1387
1447
  onChange: function onChange(value) {
1388
1448
  return history.push(match.url + "/" + value);
@@ -1407,7 +1467,8 @@ var Leia = function Leia(props) {
1407
1467
  };
1408
1468
 
1409
1469
  var INITIAL_STATE = {
1410
- files: []
1470
+ files: [],
1471
+ message: ''
1411
1472
  };
1412
1473
  function filesReducer(state, action) {
1413
1474
  if (state === void 0) {
@@ -1421,6 +1482,9 @@ function filesReducer(state, action) {
1421
1482
  case Types.DELETE_FILES_SUCCESS:
1422
1483
  draft.files = action.payload.files;
1423
1484
  break;
1485
+ case Types.TEST_SUCCESS:
1486
+ draft.message = action.payload.message;
1487
+ break;
1424
1488
  default:
1425
1489
  return action.payload;
1426
1490
  }
@@ -1429,7 +1493,8 @@ function filesReducer(state, action) {
1429
1493
 
1430
1494
  var _marked = /*#__PURE__*/_regeneratorRuntime().mark(getFilesSaga),
1431
1495
  _marked2 = /*#__PURE__*/_regeneratorRuntime().mark(deleteFilesSaga),
1432
- _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(filesSagas);
1496
+ _marked3 = /*#__PURE__*/_regeneratorRuntime().mark(testSaga),
1497
+ _marked4 = /*#__PURE__*/_regeneratorRuntime().mark(filesSagas);
1433
1498
  function getFilesSaga(action) {
1434
1499
  var id, _yield$call, data;
1435
1500
  return _regeneratorRuntime().wrap(function getFilesSaga$(_context) {
@@ -1484,24 +1549,58 @@ function deleteFilesSaga(action) {
1484
1549
  case 12:
1485
1550
  _context2.prev = 12;
1486
1551
  _context2.t0 = _context2["catch"](0);
1487
- console.log('-----------getFiles.error------------------->', _context2.t0);
1552
+ console.log('-----------deleteFilesSaga.error------------------->', _context2.t0);
1488
1553
  case 15:
1489
1554
  case "end":
1490
1555
  return _context2.stop();
1491
1556
  }
1492
1557
  }, _marked2, null, [[0, 12]]);
1493
1558
  }
1494
- function filesSagas() {
1495
- return _regeneratorRuntime().wrap(function filesSagas$(_context3) {
1559
+ function testSaga(action) {
1560
+ var _action$payload2, question, profile, presset, files_directory, _yield$call3, data;
1561
+ return _regeneratorRuntime().wrap(function testSaga$(_context3) {
1496
1562
  while (1) switch (_context3.prev = _context3.next) {
1497
1563
  case 0:
1498
- _context3.next = 2;
1499
- return all([takeLatest(Types.GET_FILES_REQUEST, getFilesSaga), takeLatest(Types.DELETE_FILES_REQUEST, deleteFilesSaga)]);
1500
- case 2:
1564
+ _context3.prev = 0;
1565
+ _action$payload2 = action.payload, question = _action$payload2.question, profile = _action$payload2.profile, presset = _action$payload2.presset, files_directory = _action$payload2.files_directory;
1566
+ _context3.next = 4;
1567
+ return call(api.post, "/ask", {
1568
+ question: question,
1569
+ profile: profile,
1570
+ presset: presset,
1571
+ files_directory: files_directory
1572
+ });
1573
+ case 4:
1574
+ _yield$call3 = _context3.sent;
1575
+ data = _yield$call3.data;
1576
+ _context3.next = 8;
1577
+ return put(testActionSuccess({
1578
+ message: data.message
1579
+ }));
1580
+ case 8:
1581
+ _context3.next = 13;
1582
+ break;
1583
+ case 10:
1584
+ _context3.prev = 10;
1585
+ _context3.t0 = _context3["catch"](0);
1586
+ console.log('-----------testSaga.error------------------->', _context3.t0);
1587
+ case 13:
1501
1588
  case "end":
1502
1589
  return _context3.stop();
1503
1590
  }
1504
- }, _marked3);
1591
+ }, _marked3, null, [[0, 10]]);
1592
+ }
1593
+ function filesSagas() {
1594
+ return _regeneratorRuntime().wrap(function filesSagas$(_context4) {
1595
+ while (1) switch (_context4.prev = _context4.next) {
1596
+ case 0:
1597
+ _context4.next = 2;
1598
+ return all([takeLatest(Types.GET_FILES_REQUEST, getFilesSaga), takeLatest(Types.DELETE_FILES_REQUEST, deleteFilesSaga), takeLatest(Types.TEST_REQUEST, testSaga)]);
1599
+ case 2:
1600
+ case "end":
1601
+ return _context4.stop();
1602
+ }
1603
+ }, _marked4);
1505
1604
  }
1506
1605
 
1507
1606
  var sagaMiddleware = /*#__PURE__*/createSagaMiddleware();