lakshmivairamani commited on
Commit
62aa71b
·
verified ·
1 Parent(s): 8bac072

Upload 25 files

Browse files
Files changed (25) hide show
  1. templates/API_connectors.html +155 -0
  2. templates/base.html +38 -0
  3. templates/chatbot.html +79 -0
  4. templates/chatpage.html +91 -0
  5. templates/company_profile.html +138 -0
  6. templates/dashboard.html +142 -0
  7. templates/data_connectors.html +214 -0
  8. templates/failure.html +10 -0
  9. templates/footer.html +26 -0
  10. templates/index.html +103 -0
  11. templates/knowledgebase.html +229 -0
  12. templates/sidepane.html +101 -0
  13. templates/success.html +10 -0
  14. vectordb/openai_dbstore/DPS_School_Content.docx_1dcd3827e8e5f7a08a9c5233de3c47cc.metadata.json +1 -0
  15. vectordb/openai_dbstore/DPS_School_Content.docx_1dcd3827e8e5f7a08a9c5233de3c47cc.vectorstore/index.faiss +0 -0
  16. vectordb/openai_dbstore/DPS_School_Content.docx_1dcd3827e8e5f7a08a9c5233de3c47cc.vectorstore/index.pkl +3 -0
  17. vectordb/openai_dbstore/Future of Digital Freight Forwarders - BLOG.pdf_a3cfd1d6c83cfcd45146ec7c13b1d98d.metadata.json +1 -0
  18. vectordb/openai_dbstore/Future of Digital Freight Forwarders - BLOG.pdf_a3cfd1d6c83cfcd45146ec7c13b1d98d.vectorstore/index.faiss +0 -0
  19. vectordb/openai_dbstore/Future of Digital Freight Forwarders - BLOG.pdf_a3cfd1d6c83cfcd45146ec7c13b1d98d.vectorstore/index.pkl +3 -0
  20. vectordb/openai_dbstore/documents/Inbound.pdf_1dd51058ba4a11db1c9773ce16dfc175.metadata.json +1 -0
  21. vectordb/openai_dbstore/documents/Inbound.pdf_1dd51058ba4a11db1c9773ce16dfc175.vectorstore/index.faiss +0 -0
  22. vectordb/openai_dbstore/documents/Inbound.pdf_1dd51058ba4a11db1c9773ce16dfc175.vectorstore/index.pkl +3 -0
  23. vectordb/openai_dbstore/documents/NewAge (1).pdf_e4fb1ef3fb0aed5f99dbf218f2aa62af.metadata.json +1 -0
  24. vectordb/openai_dbstore/documents/NewAge (1).pdf_e4fb1ef3fb0aed5f99dbf218f2aa62af.vectorstore/index.faiss +0 -0
  25. vectordb/openai_dbstore/documents/NewAge (1).pdf_e4fb1ef3fb0aed5f99dbf218f2aa62af.vectorstore/index.pkl +3 -0
templates/API_connectors.html ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>API Connectors</title>
5
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
6
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
7
+ <!-- Include AdminLTE CSS -->
8
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/adminlte.min.css">
9
+ <!-- Include DataTables CSS -->
10
+ <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap4.min.css">
11
+ </head>
12
+ <body>
13
+ {% include 'sidepane.html' %}
14
+
15
+ <!-- Your page content goes here -->
16
+ <div class="wrapper" style="position: relative; top: 0;">
17
+ <div class="content-wrapper">
18
+ <!-- Content Header (Page header) -->
19
+ <div class="content-header">
20
+ <div class="container-fluid">
21
+ <div class="row mb-2">
22
+ <div class="col-12 d-flex justify-content-between align-items-center">
23
+ <h1 class="m-0 text-center" style="flex-grow: 1;">API Connectors</h1>
24
+ <button class="btn btn-primary" id="add">Add</button>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ <!-- Main content -->
30
+ <section class="content">
31
+ <div class="container-fluid">
32
+ <div class="row">
33
+ <div class="col-12">
34
+ <div class="card">
35
+ <div class="card-body">
36
+ <table id="knowledgeTable" class="table table-bordered table-striped">
37
+ <thead>
38
+ <tr>
39
+ <th>Sno</th>
40
+ <th>API Name</th>
41
+ <th>API Endpoint</th>
42
+ <th>Auth/Bearer token</th>
43
+ <th>View</th>
44
+ </tr>
45
+ </thead>
46
+ <tbody>
47
+ <tr>
48
+ <td>1</td>
49
+ <td>Warehouse</td>
50
+ <td>http://193.203.162.39:9090/nxt-wms/userWarehouse/fetchWarehouseForUserId</td>
51
+ <td>Admin</td>
52
+ <td><button class="btn btn-primary viewButton">View</button></td>
53
+ </tr>
54
+ <tr>
55
+ <td>2</td>
56
+ <td>customer</td>
57
+ <td>http://193.203.162.39:9090/nxt-wms/userCustomer/fetchCustomerForUserId</td>
58
+ <td>Admin</td>
59
+ <td><button class="btn btn-primary viewButton">View</button></td>
60
+ </tr>
61
+ <tr>
62
+ <td>3</td>
63
+ <td>SKU</td>
64
+ <td>http://193.203.162.39:9090/nxt-wms/sku/autoComplete</td>
65
+ <td>Admin</td>
66
+ <td><button class="btn btn-primary viewButton">View</button></td>
67
+ </tr>
68
+ <tr>
69
+ <td>4</td>
70
+ <td>ASN</td>
71
+ <td>http://193.203.162.39:9090/nxt-wms/trnHeader</td>
72
+ <td>Admin</td>
73
+ <td><button class="btn btn-primary viewButton">View</button></td>
74
+ </tr>
75
+ </tbody>
76
+ </table>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ </section>
83
+ </div>
84
+ </div>
85
+
86
+ <!-- Modal -->
87
+ <div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="addModalLabel" aria-hidden="true">
88
+ <div class="modal-dialog" role="document">
89
+ <div class="modal-content">
90
+ <div class="modal-header">
91
+ <h5 class="modal-title" id="addModalLabel">Add API details</h5>
92
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
93
+ <span aria-hidden="true">&times;</span>
94
+ </button>
95
+ </div>
96
+ <div class="modal-body">
97
+ <form>
98
+ <div class="form-group">
99
+ <label for="APIName">API Name</label>
100
+ <input type="text" class="form-control" id="APIName" name="APIName" required>
101
+ </div>
102
+ <div class="form-group">
103
+ <label for="APIEndpoint">API Endpoint</label>
104
+ <input type="text"class="form-control" id="APIEndpoint" name="APIEndpoint" rows="3" required></textarea>
105
+ </div>
106
+ <div class="form-group">
107
+ <label for="Auth_Bearer">Auth/Bearer token</label>
108
+ <input type="text" class="form-control" id="Auth_Bearer" name="Auth_Bearer" required>
109
+ </div>
110
+ <div class="form-group">
111
+ <label for="Inputjson">Input Parameters</label>
112
+ <input type="text" class="form-control" id="Inputjson" name="Inputjson" required>
113
+ </div>
114
+ <div class="form-group">
115
+ <label for="OutputJson">Output Json</label>
116
+ <input type="text" class="form-control" id="OutputJson" name="OutputJson" required>
117
+ </div>
118
+ <div class="form-group">
119
+ <label for="Description">Description</label>
120
+ <textarea class="form-control" id="Description" name="Description" rows="3" required></textarea>
121
+ </div>
122
+ </form>
123
+ </div>
124
+ <div class="modal-footer">
125
+ <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
126
+ <button type="button" id="save" onclick="save_file()" class="btn btn-primary">Save</button>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+
133
+ <!-- Include DataTables JS and your custom script -->
134
+ <script src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script>
135
+ <script src="https://cdn.datatables.net/1.10.25/js/dataTables.bootstrap4.min.js"></script>
136
+ <script>
137
+ $(document).ready(function() {
138
+ // Initialize DataTable
139
+ $('#knowledgeTable').DataTable();
140
+
141
+ // Show modal function
142
+ $('#add').on('click', function() {
143
+ $('#addModal').modal('show');
144
+ });
145
+
146
+ // Your save file function here
147
+ async function save_file() {
148
+ alert('Save button clicked');
149
+ // Your save file logic goes here
150
+ }
151
+ });
152
+ </script>
153
+
154
+ </body>
155
+ </html>
templates/base.html ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>{% block title %}Your Application{% endblock %}</title>
6
+ <!-- AdminLTE CSS -->
7
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/adminlte.min.css">
8
+ <!-- Optionally, you can add custom CSS files here -->
9
+ {% block head %}{% endblock %}
10
+ </head>
11
+ <body class="{% block body_class %}{% endblock %}">
12
+ <div class="wrapper">
13
+ <!-- Header -->
14
+ {% block header %}
15
+ <!-- You can include a header here -->
16
+ {% endblock %}
17
+
18
+ <!-- Content Wrapper. Contains page content -->
19
+ <div class="content-wrapper">
20
+ <!-- Main content -->
21
+ <section class="content">
22
+ <div class="container-fluid">
23
+ {% block content %}{% endblock %}
24
+ </div>
25
+ </section>
26
+ </div>
27
+
28
+ <!-- Footer -->
29
+ {% block footer %}
30
+ <!-- You can include a footer here -->
31
+ {% endblock %}
32
+ </div>
33
+ <!-- AdminLTE JS -->
34
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/adminlte.min.js"></script>
35
+ <!-- Optionally, you can add custom JS files here -->
36
+ {% block scripts %}{% endblock %}
37
+ </body>
38
+ </html>
templates/chatbot.html ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- jinja2 html page with chatbot functionality using adminlte3 theme -->
2
+ <html>
3
+ <body>
4
+ <form id="myform">
5
+ <div class="content-wrapper">
6
+ <section class="content-header">
7
+ <div class="container-fluid">
8
+ <div class="row mb-2">
9
+ <div class="col-sm-6">
10
+ <h1>Chatbot</h1>
11
+ </div>
12
+
13
+ </div>
14
+ </div>
15
+ </section>
16
+
17
+ <section class="content">
18
+ <div class="container-fluid">
19
+ <div class="row">
20
+ <div class="col-md-8 offset-md-2">
21
+ <div class="card card-primary">
22
+ <div class="card-header">
23
+ <h3 class="card-title">RedmindGPT</h3>
24
+ </div>
25
+ <div class="card-body">
26
+ <div id="chat-container">
27
+ <div class="chat-messages">
28
+ <!-- Chat messages will be dynamically added here -->
29
+ </div>
30
+ <div class="chat-input">
31
+ <input type="text" class="form-control" name="user_question" id="user_question" placeholder="Type your message...">
32
+ <button id="send-button" class="form-control" onclick="clickform();">Send</button>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </section>
41
+ </div>
42
+ </form>
43
+
44
+ <script>
45
+ const chatContainer = document.getElementById('chat-container');
46
+ const userInput = document.getElementById('user_question');
47
+ const sendButton = document.getElementById('send-button');
48
+
49
+ function clickform() {
50
+
51
+
52
+ var userquestion = document.getElementById('user_question').value;
53
+
54
+
55
+ var xhr = new XMLHttpRequest();
56
+ var myForm = document.getElementById('myform');
57
+ var formData = new FormData(myForm);
58
+ xhr.open("POST", "/chat_with_agent", true);
59
+ xhr.send(formData);
60
+ alert('sent');
61
+
62
+ xhr.onreadystatechange = function() {
63
+ if (xhr.readyState === XMLHttpRequest.DONE) {
64
+ if (xhr.status === 200) {
65
+ // Successfully received a response
66
+ alert(xhr.responseText);
67
+ console.log(xhr.responseText);
68
+ //chatContainer.innerHTML += '<div class="chat-message"><div class="chat-message-content"><p>'+userquestion+ '\n' + xhr.responseText + '</p></div></div>';
69
+ } else {
70
+ // There was a problem with the request
71
+ alert('There was a problem with the request.');
72
+ console.error('Error:', xhr.statusText);
73
+ }
74
+ }
75
+ };
76
+ }
77
+ </script>
78
+ </body>
79
+ </html>
templates/chatpage.html ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Chatbot</title>
5
+ <!-- Include the necessary CSS and JS files for the AdminLTE3 theme -->
6
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/adminlte.min.css">
7
+ <script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"></script>
8
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"></script>
9
+ </head>
10
+ <body class="hold-transition sidebar-mini">
11
+ <div class="wrapper">
12
+ <!-- Side Pane -->
13
+ {% include 'sidepane.html' %}
14
+ <form id="myform">
15
+ <!-- Content Wrapper. Contains page content -->
16
+ <div class="content-wrapper">
17
+ <section class="content">
18
+ <div class="container-fluid">
19
+ <div class="row">
20
+ <div class="col-md-12">
21
+ <div class="card">
22
+ <div class="card-body">
23
+ <h5 class="card-title">Chat History</h5>
24
+ <textarea class="form-control" id="chatHistory" readonly></textarea>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </section>
31
+ </div>
32
+
33
+ <!-- Form -->
34
+ <div class="container-fluid">
35
+ <div class="row" style="width:50%">
36
+ <div class="col-md-3"></div>
37
+ <div class="col-md-6" style="margin-left: 90px;">
38
+ <div class="input-group">
39
+ <input type="text" class="form-control" name="user_question" id="user_question" placeholder="Enter your question">
40
+ <button type="button" class="btn btn-primary" onclick="submitQuestion()">Submit</button>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </form>
47
+ <script>
48
+ function submitQuestion() {
49
+ // Get the user's question from the input box
50
+ var question = document.getElementById("user_question").value;
51
+
52
+ // Call the API with the user's question and get the response
53
+ var xhr = new XMLHttpRequest();
54
+ var myForm = document.getElementById('myform');
55
+ var formData = new FormData(myForm);
56
+ xhr.open("POST", "/chat_with_agent", true);
57
+ xhr.send(formData);
58
+ //alert('sent');
59
+
60
+ xhr.onreadystatechange = function() {
61
+ if (xhr.readyState === XMLHttpRequest.DONE) {
62
+ if (xhr.status === 200) {
63
+ // Successfully received a response
64
+ //alert(xhr.responseText);
65
+ console.log(xhr.responseText);
66
+ // Append the user's question and the response to the chat history
67
+ var chatHistory = document.getElementById("chatHistory");
68
+ chatHistory.value += "User: " + question + "\n";
69
+ chatHistory.value += "Chatbot: " + xhr.responseText + "\n";
70
+
71
+ // Clear the input box
72
+ document.getElementById("user_question").value = "";
73
+ //chatContainer.innerHTML += '<div class="chat-message"><div class="chat-message-content"><p>'+userquestion+ '\n' + xhr.responseText + '</p></div></div>';
74
+ } else {
75
+ // There was a problem with the request
76
+ alert('There was a problem with the request.');
77
+ console.error('Error:', xhr.statusText);
78
+ }
79
+ }
80
+ };
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+ }
89
+ </script>
90
+ </body>
91
+ </html>
templates/company_profile.html ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Company Profile</title>
7
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
8
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
9
+ <!-- Include AdminLTE CSS -->
10
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/adminlte.min.css">
11
+ <!-- Include DataTables CSS -->
12
+ <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap4.min.css">
13
+
14
+ <style>
15
+ .container {
16
+ margin-top: 50px;
17
+ max-width: 600px;
18
+ padding: 40px;
19
+ border: 1px solid #ccc;
20
+ border-radius: 5px;
21
+ //background-color: #fff;
22
+ position: relative;
23
+ z-index: 1;
24
+ }
25
+
26
+ .container::before {
27
+ content: '';
28
+ position: absolute;
29
+ top: 50%;
30
+ left: 50%;
31
+ transform: translate(-50%, -50%);
32
+ background: url('..\static\img\redmindlogo3.jpg') no-repeat center center;
33
+ background-size: contain;
34
+ opacity: 0.1;
35
+ width: 100%;
36
+ height: 100%;
37
+ z-index: -1;
38
+ }
39
+
40
+ .form-group {
41
+ margin-bottom: 20px;
42
+ }
43
+
44
+ .form-group label {
45
+ font-weight: bold;
46
+ margin-bottom: 5px;
47
+ display: block;
48
+ }
49
+
50
+ .form-group input, .form-group select {
51
+ width: 100%;
52
+ padding: 10px;
53
+ border: 1px solid #ccc;
54
+ border-radius: 4px;
55
+ }
56
+
57
+ .btn-primary {
58
+ margin-right: 10px;
59
+ color: black;
60
+ font-size: 16px;
61
+ font-weight: bold;
62
+ }
63
+
64
+ h2 {
65
+ text-align: center;
66
+ margin-bottom: 40px;
67
+ }
68
+
69
+ .btn-container {
70
+ text-align: center;
71
+ margin-top: 0px;
72
+ color: white;
73
+ }
74
+ </style>
75
+ <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap4.min.css">
76
+ <!-- Include jQuery -->
77
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
78
+ <!-- Include DataTables JS -->
79
+ <script src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script>
80
+ <script src="https://cdn.datatables.net/1.10.25/js/dataTables.bootstrap4.min.js"></script>
81
+ <!-- Include AdminLTE JS -->
82
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/adminlte.min.js"></script>
83
+ <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css" rel="stylesheet" />
84
+ <link href="https://cdn.jsdelivr.net/npm/@ttskch/[email protected]/dist/select2-bootstrap4.min.css" rel="stylesheet" />
85
+ </head>
86
+
87
+ <body>
88
+ {% include 'sidepane.html' %}
89
+ <div class="container mt-5">
90
+ <h2>Company Profile</h2>
91
+ <form id="companyProfileForm" class="needs-validation" novalidate>
92
+ <div class="form-group">
93
+ <label for="company_name">Company Name</label>
94
+ <input type="text" id="company_name" name="company_name" class="form-control">
95
+ </div>
96
+ <div class="form-group">
97
+ <label for="company_code">Company Code</label>
98
+ <input type="text" id="company_code" name="company_code" class="form-control">
99
+ </div>
100
+ <div class="form-group">
101
+ <label for="domain">Domain/Business</label>
102
+ <input type="text" id="domain" name="domain" class="form-control">
103
+ </div>
104
+ <div class="form-group">
105
+ <label for="llm_tools">LLM Tools</label>
106
+ <select id="llm_tools" name="llm_tools[]" class="form-control" multiple>
107
+ <option value="tool1">Database</option>
108
+ <option value="tool2">Static Documents</option>
109
+ <option value="tool3">API</option>
110
+ <!-- Add more options as needed -->
111
+ </select>
112
+ </div>
113
+ <div class="btn-container">
114
+ <button type="submit" class="btn btn-primary">Save</button>
115
+ <button type="reset" class="btn btn-primary">Clear</button>
116
+ </div>
117
+ </form>
118
+ </div>
119
+ {% include 'footer.html' %}
120
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js"></script>
121
+ <script>
122
+ $(document).ready(function() {
123
+ // Initialize Select2 for multi-select dropdown
124
+ $('#llm_tools').select2({
125
+ theme: 'bootstrap4',
126
+ placeholder: 'Select LLM Tools',
127
+ allowClear: true
128
+ });
129
+
130
+ $('#companyProfileForm').on('submit', function(event) {
131
+ event.preventDefault();
132
+ alert('Data saved successfully!');
133
+ });
134
+ });
135
+ </script>
136
+ </body>
137
+
138
+ </html>
templates/dashboard.html ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Dashboard</title>
6
+ <!-- AdminLTE CSS -->
7
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/3.1.0/css/adminlte.min.css">
8
+ </head>
9
+
10
+ <body class="hold-transition sidebar-mini">
11
+ <div class="wrapper">
12
+ <!-- Main Sidebar -->
13
+ <aside class="main-sidebar sidebar-dark-primary elevation-4">
14
+ <!-- Sidebar -->
15
+ <div class="sidebar">
16
+ <!-- Sidebar Menu -->
17
+ <nav class="mt-2">
18
+ <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
19
+ <!-- Navigation Links -->
20
+ <li class="nav-item">
21
+ <a href="#" class="nav-link">
22
+ <i class="nav-icon fas fa-home"></i>
23
+ <p>Dashboard</p>
24
+ </a>
25
+ </li>
26
+ <li class="nav-item">
27
+ <a href="{{ url_for('company_profile') }}" class="nav-link">
28
+ <i class="nav-icon fas fa-cogs"></i>
29
+ <p>Company Profile</p>
30
+ </a>
31
+ </li>
32
+ <li class="nav-item">
33
+ <a href="{{ url_for('knowledgebase') }}" class="nav-link">
34
+ <i class="nav-icon fas fa-cogs"></i>
35
+ <p>KnowledgeBase</p>
36
+ </a>
37
+ </li>
38
+ <li class="nav-item">
39
+ <a href="{{ url_for('data_connectors') }}" class="nav-link">
40
+ <i class="nav-icon fas fa-home"></i>
41
+ <p>Data Connectors</p>
42
+ </a>
43
+ </li>
44
+ <li class="nav-item">
45
+ <a href="{{ url_for('API_connectors') }}" class="nav-link">
46
+ <i class="nav-icon fas fa-users"></i>
47
+ <p>API Connectors</p>
48
+ </a>
49
+ </li>
50
+ <li class="nav-item">
51
+ <a href="#" class="nav-link">
52
+ <i class="nav-icon fas fa-cogs"></i>
53
+ <p>Prompt Templates</p>
54
+ </a>
55
+ </li>
56
+ <!-- <li class="nav-item">
57
+ <a href="#" class="nav-link">
58
+ <i class="nav-icon fas fa-cogs"></i>
59
+ <p>LLM Settings</p>
60
+ </a>
61
+
62
+ </li>-->
63
+ <li class="nav-item">
64
+ <a href="{{ url_for('chatbot') }}" class="nav-link">
65
+ <i class="nav-icon fas fa-cogs"></i>
66
+ <p>Chat</p>
67
+ </a>
68
+ </li>
69
+
70
+ <!-- Add more navigation links here -->
71
+ </ul>
72
+ </nav>
73
+ <!-- /.sidebar-menu -->
74
+ </div>
75
+ <!-- /.sidebar -->
76
+ </aside>
77
+
78
+ <!-- Content Wrapper -->
79
+ <div class="content-wrapper">
80
+ <!-- Main content -->
81
+ <section class="content">
82
+ <!-- Project Information -->
83
+ <div class="container-fluid">
84
+ <h3 style="text-align: center; margin-bottom:40px;">REDMINDGPT</h>
85
+ </div>
86
+ </section>
87
+ <section class="content">
88
+ <div class="container-fluid">
89
+
90
+ <div class="row">
91
+ <div class="col-lg-4 col-6">
92
+
93
+ <div class="small-box bg-info">
94
+ <div class="inner">
95
+ <h3>4 </h3>
96
+ <h4> KnowledgeBase</h4>
97
+ </div>
98
+ <div class="icon">
99
+ <i class="ion ion-bag"></i>
100
+ </div>
101
+ </div>
102
+ </div>
103
+
104
+ <div class="col-lg-4 col-6">
105
+
106
+ <div class="small-box bg-success">
107
+ <div class="inner">
108
+ <h3>1</h3>
109
+ <h4>Data connectors</h4>
110
+ </div>
111
+ <div class="icon">
112
+ <i class="ion ion-stats-bars"></i>
113
+ </div>
114
+
115
+ </div>
116
+ </div>
117
+
118
+ <div class="col-lg-4 col-6">
119
+
120
+ <div class="small-box bg-warning">
121
+ <div class="inner">
122
+ <h3>4 </h3>
123
+ <h4>API Connectors</h4>
124
+ </div>
125
+ <div class="icon">
126
+ <i class="ion ion-person-add"></i>
127
+ </div>
128
+
129
+ </div>
130
+ </div>
131
+ <!-- /.content -->
132
+ </div>
133
+ <!-- /.content-wrapper -->
134
+ </div>
135
+ <!-- ./wrapper -->
136
+
137
+ <!-- AdminLTE JS -->
138
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/3.1.0/js/adminlte.min.js"></script>
139
+
140
+ </body>
141
+
142
+ </html>
templates/data_connectors.html ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Data Connectors</title>
7
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
8
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
9
+ <!-- Include AdminLTE CSS -->
10
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/adminlte.min.css">
11
+ <!-- Include DataTables CSS -->
12
+ <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap4.min.css">
13
+
14
+ <style>
15
+ html, body {
16
+ height: 90%;
17
+ margin: 0;
18
+ display: flex;
19
+ flex-direction: column;
20
+ }
21
+ body {
22
+ display: flex;
23
+ flex-direction: column;
24
+ }
25
+ .main-content {
26
+ flex: 1;
27
+ display: flex;
28
+ flex-direction: column;
29
+ align-items: center;
30
+ justify-content: flex-start;
31
+ padding: 20px;
32
+ }
33
+ .container {
34
+ margin-top: 50px;
35
+ max-width: 600px;
36
+ padding: 40px;
37
+ border: 1px solid #ccc;
38
+ border-radius: 5px;
39
+ //background-color: #fff;
40
+ position: relative;
41
+ z-index: 1;
42
+ }
43
+ .form-group {
44
+ margin-bottom: 20px;
45
+ }
46
+ .form-group label {
47
+ font-weight: bold;
48
+ margin-top: 10px;
49
+ margin-bottom: 5px;
50
+ display: block;
51
+ }
52
+ .form-group input, .form-group select, .form-group textarea {
53
+ width: 100%;
54
+ height: auto;
55
+ padding: 10px;
56
+ border: 1px solid #ccc;
57
+ border-radius: 4px;
58
+ }
59
+ .btn-primary {
60
+ margin-right: 10px;
61
+ color: black;
62
+ font-size: 16px;
63
+ font-weight: bold;
64
+ }
65
+ h2 {
66
+ text-align: center;
67
+ margin-bottom: 30px;
68
+ }
69
+ .btn-container {
70
+ text-align: center;
71
+ margin-top: 30px;
72
+ // margin-bottom: 20px;
73
+ color: white;
74
+ }
75
+ #selectedTables ,#labelselected {
76
+ display: none;
77
+ }
78
+ #saveBtn1{
79
+ display: none;
80
+ margin: 0 auto;
81
+ }
82
+ footer {
83
+ position: relative;
84
+ bottom: 0;
85
+ width: 100%;
86
+ color: black;
87
+ text-align: right;
88
+ padding-right: 245px;
89
+ padding-top: 10px;
90
+ background-color: #f8f9fa;
91
+ border-top: 1px solid #ccc;
92
+ }
93
+ </style>
94
+ </head>
95
+ <body>
96
+ {% include 'sidepane.html' %}
97
+ <div class="container mt-2">
98
+ <h2>Data Connectors</h2>
99
+ <form id="companyProfileForm" class="needs-validation" novalidate>
100
+ <div class="form-group">
101
+ <label for="database">Database</label>
102
+ <select type="text" id="database" name="database" class="form-control">
103
+ <option value="" selected>Select</option>
104
+ <option value="Postgress">Postgress</option>
105
+ <option value="mysql">Mysql</option>
106
+ </select>
107
+ </div>
108
+
109
+ <div class="form-group">
110
+ <label for="server">Server IP</label>
111
+ <input type="text" id="server" name="server" class="form-control">
112
+ </div>
113
+ <div class="form-group">
114
+ <label for="port">Port</label>
115
+ <input type="text" id="port" name="port" class="form-control">
116
+ </div>
117
+ <div class="form-group">
118
+ <label for="databaseName">Database Name</label>
119
+ <select type="text" id="databaseName" name="databaseName" class="form-control">
120
+ <option value="" selected>Select</option>
121
+ <option value="Warehouse">Warehouse</option>
122
+ </select>
123
+ </div>
124
+ <div class="form-group">
125
+ <label for="username">UserName</label>
126
+ <input type="text" id="username" name="username" class="form-control">
127
+ </div>
128
+ <div class="form-group">
129
+ <label for="password">Password</label>
130
+ <input type="text" id="password" name="password" class="form-control">
131
+ </div>
132
+ <div class="btn-container">
133
+ <button type="button" id="connectBtn" class="btn btn-primary">Connect</button>
134
+ <button type="reset" class="btn btn-primary">Clear</button>
135
+ </div>
136
+ <div id="schema-table-section" style="display: none;">
137
+ <div class="form-group">
138
+ <div class="row">
139
+ <div class="col">
140
+ <label for="schemas">Available Schemas</label>
141
+ <select type="text" id="schemas" name="schemas" class="form-control">
142
+ <option value="" selected>Select</option>
143
+ <option value="schema1">Lookup</option>
144
+ <option value="schema2">Public</option>
145
+ <option value="schema3">Tenant_default</option>
146
+ </select>
147
+ </div>
148
+ <div class="col">
149
+ <label for="tables">Available Tables</label>
150
+ <select type="text" id="tables" name="tables" class="form-control" multiple>
151
+ <option value="" selected>Select</option>
152
+ <option value="customer_master">customer_master</option>
153
+ <option value="efs_company_master">efs_company_master</option>
154
+ <option value="efs_group_company_master">efs_group_company_master</option>
155
+ <option value="efs_region_master">efs_region_master</option>
156
+ <option value="party_address_detail">party_address_detail</option>
157
+ <option value="wms_warehouse_master">wms_warehouse_master</option>
158
+ </select>
159
+ </div>
160
+ </div>
161
+ </div>
162
+ <div class="form-group">
163
+ <label id="labelselected" for="selectedTables">Selected Tables</label>
164
+ <textarea id="selectedTables" class="form-control" rows="5" readonly></textarea>
165
+ </div>
166
+ </div>
167
+ <div class="mt-5" id="table-container">
168
+ <!-- Table will be dynamically inserted here -->
169
+ </div>
170
+ <div class="btn-container">
171
+ <button type="button" id="saveBtn1" class="btn btn-primary">Save</button>
172
+ </div>
173
+ </form>
174
+ </div>
175
+ <footer>
176
+ {% include 'footer.html' %}
177
+ </footer>
178
+ <!-- Bootstrap JS (Optional, if you need JavaScript functionality) -->
179
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
180
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/adminlte.min.js"></script>
181
+
182
+ <script>
183
+ $(document).ready(function() {
184
+ $('#connectBtn').on('click', function(event) {
185
+ event.preventDefault();
186
+ alert('Connected!');
187
+ $('#schema-table-section').show();
188
+ $('#saveBtn1').show();
189
+ });
190
+
191
+ // Handle Save button click
192
+ $('#saveBtn1').on('click', function(event) {
193
+ event.preventDefault();
194
+ const selectedTables = $('#tables').val();
195
+ if (selectedTables.length > 0) {
196
+ // Show the textarea and populate with selected tables
197
+ $('#selectedTables').empty();
198
+ selectedTables.forEach(table => {
199
+ $('#selectedTables').append(table + '\n');
200
+ });
201
+ $('#selectedTables').show();
202
+ $('#labelselected').show();
203
+
204
+ alert('Data saved successfully!');
205
+ } else {
206
+ alert('Please select at least one table.');
207
+ }
208
+ });
209
+ });
210
+ </script>
211
+
212
+ </body>
213
+
214
+ </html>
templates/failure.html ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- templates/failure.html -->
2
+ <!DOCTYPE html>
3
+ <html>
4
+ <head>
5
+ <title>Login Failed</title>
6
+ </head>
7
+ <body>
8
+ <h1>Login Failed. Please try again.</h1>
9
+ </body>
10
+ </html>
templates/footer.html ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- footer.html -->
2
+
3
+ <!--
4
+ This is the HTML code for the footer section of a web page.
5
+ It displays the version number and copyright information.
6
+
7
+ HTML Structure:
8
+ - The footer element has a class of "main-footer".
9
+ - Inside the footer, there is a div element with classes "float-right" and "d-none d-sm-block".
10
+ - Inside the div, there is a bold tag (<b>) displaying the version number.
11
+ - After the div, there is a strong tag (<strong>) displaying the copyright information.
12
+ - The copyright information includes the year and a link to the company's website.
13
+
14
+ Example Usage:
15
+ <footer class="main-footer">
16
+ <div class="float-right d-none d-sm-block">
17
+ <b>Version</b> 3.0.5
18
+ </div>
19
+ <strong>&copy; 2023 <a href="https://yourcompany.com">Your Company</a>.</strong> All rights reserved.
20
+ </footer>
21
+ -->
22
+ <footer class="main-footer" style="position: absolute; bottom: 0; width: 100%; color: black; text-align: right; padding-right:245px ;">
23
+ <div class="container-fluid">
24
+ <a href="https://redmindtechnologies.com" target="_blank" style="color: black; text-decoration: none;">Visit Redmind Technologies at https://redmindtechnologies.com</a>
25
+ </div>
26
+ </footer>
templates/index.html ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!--
2
+ This is the login page template for the RedMindGPT application.
3
+ It contains a login form where users can enter their username and password to sign in.
4
+ The form includes validation to ensure that both fields are filled out before submission.
5
+ The page also includes styling using CSS and utilizes the AdminLTE and Font Awesome libraries for additional design elements.
6
+ -->
7
+
8
+ <!DOCTYPE html>
9
+ <html lang="en">
10
+ <head>
11
+ <meta charset="UTF-8">
12
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
13
+ <style>
14
+ /* CSS styles for the login page */
15
+ .login-box-msg {
16
+ color: grey;
17
+ font-size: larger;
18
+ font-weight: bold;
19
+ }
20
+
21
+ .remember-me {
22
+ text-align: center;
23
+ }
24
+ </style>
25
+ <title>RedMindGPT</title>
26
+ <!-- AdminLTE CSS -->
27
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/adminlte.min.css">
28
+ <!-- Font Awesome -->
29
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
30
+ </head>
31
+ <body class="hold-transition login-page" style="background-image: url('static/img/AI.jpg'); background-size: cover;">
32
+ <div class="login-box">
33
+ <div class="card">
34
+ <!-- Logo -->
35
+ <div style="align-items: center;">
36
+ <a href="#" style="color: blue;
37
+ font-size: 30px;
38
+ font-weight: bold;
39
+ margin-left: 80px;
40
+ margin-top: 20px;
41
+ "><b>RedMindGPT</b></a>
42
+ </div>
43
+ <form action='/validate-user' name='loginForm' method="post" onsubmit="return validateForm()">
44
+ <div class="card-body login-card-body">
45
+ <p class="login-box-msg">Sign in</p>
46
+ <div class="input-group mb-3">
47
+ <input type="text" class="form-control" placeholder="Username" name="username" required>
48
+ <div class="input-group-append">
49
+ <div class="input-group-text">
50
+ <span class="fas fa-user"></span>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div class="input-group mb-3">
55
+ <input type="password" class="form-control" placeholder="Password" name="password" required>
56
+ <div class="input-group-append">
57
+ <div class="input-group-text">
58
+ <span class="fas fa-lock"></span>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ <div class="row" style="align-content: center;">
63
+ <div class="col-8">
64
+ <div class="icheck-primary">
65
+ <input type="checkbox" id="remember">
66
+ <label for="remember">
67
+ Remember Me
68
+ </label>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ <div class="row" style="align-content: center;">
73
+ <div class="col-4">
74
+ <button type="submit" class="btn btn-primary btn-block">Sign In</button>
75
+ </div>
76
+ <div class="col-4">
77
+ <button type="reset" class="btn btn-secondary btn-block">Clear</button>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </form>
82
+ </div>
83
+ </div>
84
+ <!-- jQuery -->
85
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
86
+ <!-- Bootstrap 4 -->
87
+ <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js"></script>
88
+ <!-- AdminLTE App -->
89
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/adminlte.min.js"></script>
90
+ <script>
91
+ // JavaScript function to validate the login form
92
+ function validateForm() {
93
+ //alert("Validating form");
94
+ var username = document.forms["loginForm"]["username"].value;
95
+ var password = document.forms["loginForm"]["password"].value;
96
+ if (username == "" || password == "") {
97
+ alert("Username and Password must be filled out");
98
+ return false;
99
+ }
100
+ }
101
+ </script>
102
+ </body>
103
+ </html>
templates/knowledgebase.html ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Knowledge Base</title>
5
+ <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
6
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
7
+ <!-- Include AdminLTE CSS -->
8
+ <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/adminlte.min.css">
9
+ <!-- Include DataTables CSS -->
10
+ <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.25/css/dataTables.bootstrap4.min.css">
11
+ <!-- Include AdminLTE JS -->
12
+ <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/adminlte.min.js"></script>
13
+ <!-- Include DataTables JS -->
14
+ <script src="https://cdn.datatables.net/1.10.25/js/jquery.dataTables.min.js"></script>
15
+ <script src="https://cdn.datatables.net/1.10.25/js/dataTables.bootstrap4.min.js"></script>
16
+ <style>
17
+ body {
18
+ background-color: transparent !important;
19
+ }
20
+ .content-wrapper {
21
+ background-color: transparent !important;
22
+ text-align: center;
23
+ }
24
+ .wrapper {
25
+ background-color: transparent !important;
26
+ }
27
+ .modal-content {
28
+ background-color: #fff;
29
+ }
30
+ h1 {
31
+ text-align: center;
32
+ margin-bottom: 40px;
33
+ }
34
+ /* Adjust table width to full container width */
35
+ .card-body {
36
+ padding: 0;
37
+ }
38
+ .table {
39
+ width: 100%;
40
+ }
41
+ </style>
42
+ </head>
43
+ <body>
44
+ {% include 'sidepane.html' %}
45
+
46
+ <div class="wrapper" style="position: relative; top: 0;">
47
+ <!-- Content Wrapper. Contains page content -->
48
+ <div class="content-wrapper">
49
+ <!-- Content Header (Page header) -->
50
+ <div class="content-header">
51
+ <div class="container-fluid">
52
+ <div class="row mb-2">
53
+ <div class="col-12 d-flex justify-content-between align-items-center">
54
+ <h1 class="m-0 text-center" style="flex-grow: 1;">Knowledge Base</h1>
55
+ <button class="btn btn-primary" id="add">Add</button>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <!-- Main content -->
61
+ <section class="content">
62
+ <div class="container-fluid">
63
+ <div class="row">
64
+ <div class="col-12">
65
+ <div class="card">
66
+ <div class="card-body">
67
+ <div class="table-responsive">
68
+ <table id="knowledgeTable" class="table table-bordered table-striped">
69
+ <thead>
70
+ <tr>
71
+ <th>Sno</th>
72
+ <th>Document Name</th>
73
+ <th>Document Description</th>
74
+ <th>Document Version</th>
75
+ <th>VectorDB Flag</th>
76
+ <th>View</th>
77
+ </tr>
78
+ </thead>
79
+ <tbody>
80
+ <tr>
81
+ <td>1</td>
82
+ <td>NewAge eWMS BusinessRequirementsDocument_V1.9 - Inbound</td>
83
+ <td>GRN Inbound</td>
84
+ <td>1.9</td>
85
+ <td>Yes</td>
86
+ <td>
87
+ <button class="btn btn-primary viewButton">View</button>
88
+ </td>
89
+ </tr>
90
+ <tr>
91
+ <td>2</td>
92
+ <td>NewAge eWMS BusinessRequirementsDocument_V2.3 - Inbound</td>
93
+ <td>GRN Inbound</td>
94
+ <td>2.3</td>
95
+ <td>No</td>
96
+ <td>
97
+ <button class="btn btn-primary viewButton">View</button>
98
+ </td>
99
+ </tr>
100
+ <tr>
101
+ <td>3</td>
102
+ <td>NewAge eWMS BusinessRequirementsDocument_V1.9 - Outbound</td>
103
+ <td>GRN Outbound</td>
104
+ <td>1.9</td>
105
+ <td>Yes</td>
106
+ <td>
107
+ <button class="btn btn-primary viewButton">View</button>
108
+ </td>
109
+ </tr>
110
+ <tr>
111
+ <td>4</td>
112
+ <td>NewAge eWMS BusinessRequirementsDocument_V2.2 - Outboundbound</td>
113
+ <td>ASN Outbound</td>
114
+ <td>2.2</td>
115
+ <td>No</td>
116
+ <td>
117
+ <button class="btn btn-primary viewButton">View</button>
118
+ </td>
119
+ </tr>
120
+ </tbody>
121
+ </table>
122
+ </div>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </section>
129
+ <!-- /.content -->
130
+ </div>
131
+ <!-- /.content-wrapper -->
132
+
133
+ <!-- Modal -->
134
+ <div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="addModalLabel" aria-hidden="true">
135
+ <div class="modal-dialog" role="document">
136
+ <div class="modal-content">
137
+ <div class="modal-header">
138
+ <h5 class="modal-title" id="addModalLabel">Add Document</h5>
139
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
140
+ <span aria-hidden="true">&times;</span>
141
+ </button>
142
+ </div>
143
+ <div class="modal-body">
144
+ <form id="myForm">
145
+ <div class="form-group">
146
+ <label for="file">Upload File</label>
147
+ <input type="file" class="form-control-file" id="file" name="file" accept=".pdf,.doc,.docx">
148
+ </div>
149
+ <div class="form-group">
150
+ <label for="document_name">Document Name</label>
151
+ <input type="text" class="form-control" id="document_name" name="document_name" required>
152
+ </div>
153
+ <div class="form-group">
154
+ <label for="document_description">Document Description</label>
155
+ <textarea class="form-control" id="document_description" name="document_description" rows="3" required></textarea>
156
+ </div>
157
+ <div class="form-group">
158
+ <label for="department">Department</label>
159
+ <input type="text" class="form-control" id="department" name="department" required>
160
+ </div>
161
+ <div class="form-group">
162
+ <label for="version">Version</label>
163
+ <input type="text" class="form-control" id="version" name="version" required>
164
+ </div>
165
+ <div class="form-group">
166
+ <label for="last_updated">Last Updated</label>
167
+ <input type="text" class="form-control" id="last_updated" name="last_updated" required>
168
+ </div>
169
+
170
+ </div>
171
+ <div class="modal-footer">
172
+ <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
173
+ <button type="button" id="save" onclick="save_file()" class="btn btn-primary">Save</button>
174
+ </div>
175
+ </form>
176
+ </div>
177
+ </div>
178
+ </div>
179
+ </div>
180
+ <!-- ./wrapper -->
181
+
182
+ <!-- Footer -->
183
+ {% include 'footer.html' %}
184
+ <!-- End footer -->
185
+
186
+ <!-- JavaScript to handle modal display -->
187
+ <script>
188
+ $(document).ready(function() {
189
+ // Show modal function
190
+ $('#add').on('click', function() {
191
+ $('#addModal').modal('show');
192
+ });
193
+ $('.modal-footer .btn-secondary').on('click', function() {
194
+ $('#addModal').modal('hide');
195
+ });
196
+
197
+ });
198
+
199
+ // Your save file function here
200
+ function save_file() {
201
+ alert('Save button clicked');
202
+ // Call the API with the user's question and get the response
203
+ var xhr = new XMLHttpRequest();
204
+ var myForm = document.getElementById('myForm');
205
+ var formData = new FormData(myForm);
206
+ alert('Save button');
207
+ xhr.open("POST", "/upload_file", true);
208
+ xhr.send(formData);
209
+ alert('sent');
210
+
211
+ xhr.onreadystatechange = function() {
212
+ if (xhr.readyState === XMLHttpRequest.DONE) {
213
+ if (xhr.status === 200) {
214
+ // Successfully received a response
215
+ //alert(xhr.responseText);
216
+ console.log(xhr.responseText);
217
+ // Append the user's question and the response to the chat history
218
+ } else {
219
+ // There was a problem with the request
220
+ alert('There was a problem with the request.');
221
+ console.error('Error:', xhr.statusText);
222
+ }
223
+ }
224
+ };
225
+
226
+ }
227
+ </script>
228
+ </body>
229
+ </html>
templates/sidepane.html ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- sidepane.html -->
2
+
3
+ <!-- This file represents the sidepane component of a web application. It contains the navigation menu and sidebar. -->
4
+
5
+ <nav class="main-header navbar navbar-expand navbar-white navbar-light" style="text-align: center;">
6
+ <div class="container-fluid d-flex justify-content-center align-items-center">
7
+ <img src="..\static\img\redmindlogo3.jpg" alt="Logo" style="width: 80px; height: auto; margin-right: 10px;">
8
+
9
+ <h2 style="text-align: center; margin-bottom: 0;">Redmind GPT</h2>
10
+ </div>
11
+ <!-- Left navbar links -->
12
+ <ul class="navbar-nav">
13
+ <li class="nav-item">
14
+ <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a>
15
+ </li>
16
+ </ul>
17
+ </nav>
18
+
19
+ <!-- Main Sidebar Container -->
20
+ <aside class="main-sidebar sidebar-dark-primary elevation-4" style="width: 200px;">
21
+ <!-- Sidebar -->
22
+ <div class="sidebar">
23
+ <!-- Sidebar Menu -->
24
+ <nav class="mt-2">
25
+ <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false">
26
+ <!-- Navigation Links -->
27
+ <li class="nav-item">
28
+ <a href="#" class="nav-link">
29
+ <i class="nav-icon fas fa-home"></i>
30
+ <p>Dashboard</p>
31
+ </a>
32
+ </li>
33
+ <li class="nav-item">
34
+ <a href="{{ url_for('company_profile') }}" class="nav-link">
35
+ <i class="nav-icon fas fa-users"></i>
36
+ <p>Company Profile</p>
37
+ </a>
38
+ </li>
39
+ <li class="nav-item">
40
+ <a href="{{ url_for('knowledgebase') }}" class="nav-link">
41
+ <i class="nav-icon fas fa-cogs"></i>
42
+ <p>KnowledgeBase</p>
43
+ </a>
44
+ </li>
45
+ <li class="nav-item">
46
+ <a href="{{ url_for('data_connectors') }}" class="nav-link">
47
+ <i class="nav-icon fas fa-home"></i>
48
+ <p>Data Connectors</p>
49
+ </a>
50
+ </li>
51
+ <li class="nav-item">
52
+ <a href="{{ url_for('API_connectors') }}" class="nav-link">
53
+ <i class="nav-icon fas fa-users"></i>
54
+ <p>API Connectors</p>
55
+ </a>
56
+ </li>
57
+ <li class="nav-item">
58
+ <a href="#" class="nav-link">
59
+ <i class="nav-icon fas fa-cogs"></i>
60
+ <p>Prompt Templates</p>
61
+ </a>
62
+ </li>
63
+ <li class="nav-item">
64
+ <a href="{{ url_for('chatbot') }}" class="nav-link">
65
+ <i class="nav-icon fas fa-cogs"></i>
66
+ <p>Chatbot</p>
67
+ </a>
68
+ </li>
69
+ <!--<li class="nav-item">
70
+ <a href="#" class="nav-link">
71
+ <i class="nav-icon fas fa-cogs"></i>
72
+ <p>LLM Settings</p>
73
+ </a>
74
+ <ul class="nav nav-treeview">
75
+ <li class="nav-item">
76
+ <a href="#" class="nav-link">
77
+ <i class="far fa-circle nav-icon"></i>
78
+ <p>Sublink 1</p>
79
+ </a>
80
+ </li>
81
+ <li class="nav-item">
82
+ <a href="#" class="nav-link">
83
+ <i class="far fa-circle nav-icon"></i>
84
+ <p>Sublink 2</p>
85
+ </a>
86
+ </li>
87
+ <!-- Add more sublinks here -->
88
+ </ul>
89
+ </li> -->
90
+
91
+ <!-- Add more navigation links here -->
92
+ </ul>
93
+ </nav>
94
+ <!-- /.sidebar-menu -->
95
+ </div>
96
+ <!-- /.sidebar -->
97
+ </aside>
98
+
99
+
100
+ <!-- AdminLTE JS -->
101
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/admin-lte/3.1.0/js/adminlte.min.js"></script>
templates/success.html ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- templates/success.html -->
2
+ <!DOCTYPE html>
3
+ <html>
4
+ <head>
5
+ <title>Login Success</title>
6
+ </head>
7
+ <body>
8
+ <h1>Login Successful!</h1>
9
+ </body>
10
+ </html>
vectordb/openai_dbstore/DPS_School_Content.docx_1dcd3827e8e5f7a08a9c5233de3c47cc.metadata.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"filename": "DPS_School_Content.docx", "document_name": "DSP school Doc", "document_description": "We are elaburate the DSP school details form this doc", "department": "Primary section department", "version": "1234567890", "last_updated": "23-06-2024", "hash": "1dcd3827e8e5f7a08a9c5233de3c47cc", "upload_date": "2024-06-23T14:52:44.654077", "file_path": "/home/rajesh/redmind/python/code/redmindgen/vectordb/openai_dbstore/DPS_School_Content.docx_1dcd3827e8e5f7a08a9c5233de3c47cc.vectorstore", "file_size": 233747, "content_type": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}
vectordb/openai_dbstore/DPS_School_Content.docx_1dcd3827e8e5f7a08a9c5233de3c47cc.vectorstore/index.faiss ADDED
Binary file (6.19 kB). View file
 
vectordb/openai_dbstore/DPS_School_Content.docx_1dcd3827e8e5f7a08a9c5233de3c47cc.vectorstore/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:58a2bdac1ced6fb8e495489010e58f1a5b779ca6ae50be6752a23e675c02f838
3
+ size 11327
vectordb/openai_dbstore/Future of Digital Freight Forwarders - BLOG.pdf_a3cfd1d6c83cfcd45146ec7c13b1d98d.metadata.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"filename": "Future of Digital Freight Forwarders - BLOG.pdf", "document_name": "Digital Freight Forwarders", "document_description": "Future of Digital Freight Forwarders", "department": "Freight", "version": "1.0", "last_updated": "20/06/2024", "hash": "a3cfd1d6c83cfcd45146ec7c13b1d98d", "upload_date": "2024-06-24T08:05:41.007505", "file_path": "/home/rajesh/redmind/python/code/redmindgen/vectordb/openai_dbstore/Future of Digital Freight Forwarders - BLOG.pdf_a3cfd1d6c83cfcd45146ec7c13b1d98d.vectorstore", "file_size": 100197, "content_type": "application/pdf"}
vectordb/openai_dbstore/Future of Digital Freight Forwarders - BLOG.pdf_a3cfd1d6c83cfcd45146ec7c13b1d98d.vectorstore/index.faiss ADDED
Binary file (6.19 kB). View file
 
vectordb/openai_dbstore/Future of Digital Freight Forwarders - BLOG.pdf_a3cfd1d6c83cfcd45146ec7c13b1d98d.vectorstore/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e3591019b239fce4301b1d66a78306d38b3edba9beabd44daf9d48362ed56a5f
3
+ size 5403
vectordb/openai_dbstore/documents/Inbound.pdf_1dd51058ba4a11db1c9773ce16dfc175.metadata.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"filename": "Inbound.pdf", "document_name": "inbound", "document_description": "inbound", "department": "warehouse", "version": "1", "last_updated": "01.01.2025", "hash": "1dd51058ba4a11db1c9773ce16dfc175", "upload_date": "2024-07-22T12:52:08.315686", "file_path": "C:/lakshmi/RedmindGPT/Fastapi_sample/vectordb/openai_dbstore/documents\\Inbound.pdf_1dd51058ba4a11db1c9773ce16dfc175.vectorstore", "file_size": 161577, "content_type": "application/pdf"}
vectordb/openai_dbstore/documents/Inbound.pdf_1dd51058ba4a11db1c9773ce16dfc175.vectorstore/index.faiss ADDED
Binary file (6.19 kB). View file
 
vectordb/openai_dbstore/documents/Inbound.pdf_1dd51058ba4a11db1c9773ce16dfc175.vectorstore/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bd2422790291df76f1a4c98728866ce6537d286f2cf8854248fcf1826d49a4ea
3
+ size 18876
vectordb/openai_dbstore/documents/NewAge (1).pdf_e4fb1ef3fb0aed5f99dbf218f2aa62af.metadata.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"filename": "NewAge (1).pdf", "document_name": "newage", "document_description": "newage", "department": "warehouse", "version": "1", "last_updated": "01.01.2023", "hash": "e4fb1ef3fb0aed5f99dbf218f2aa62af", "upload_date": "2024-07-22T12:50:44.009785", "file_path": "C:/lakshmi/RedmindGPT/Fastapi_sample/vectordb/openai_dbstore/documents\\NewAge (1).pdf_e4fb1ef3fb0aed5f99dbf218f2aa62af.vectorstore", "file_size": 1044446, "content_type": "application/pdf"}
vectordb/openai_dbstore/documents/NewAge (1).pdf_e4fb1ef3fb0aed5f99dbf218f2aa62af.vectorstore/index.faiss ADDED
Binary file (30.8 kB). View file
 
vectordb/openai_dbstore/documents/NewAge (1).pdf_e4fb1ef3fb0aed5f99dbf218f2aa62af.vectorstore/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa973b7de7e20e5426be49ebf137336fb27a4ce5a55e23de3069f08c7f28161a
3
+ size 20392