Cognee gui add visualziation[COG-1334] (#538)
<!-- .github/pull_request_template.md --> ## Description Add visualization to Cognee GUI ## DCO Affirmation I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced an interactive data visualization option that opens insights in your web browser. - Enhanced the interface layout for a more streamlined file upload and visualization experience. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
parent
b9869b1241
commit
ecf6a19ab8
1 changed files with 22 additions and 2 deletions
|
|
@ -10,6 +10,7 @@ try:
|
||||||
QLineEdit,
|
QLineEdit,
|
||||||
QFileDialog,
|
QFileDialog,
|
||||||
QVBoxLayout,
|
QVBoxLayout,
|
||||||
|
QHBoxLayout,
|
||||||
QLabel,
|
QLabel,
|
||||||
QMessageBox,
|
QMessageBox,
|
||||||
QTextEdit,
|
QTextEdit,
|
||||||
|
|
@ -38,9 +39,18 @@ class FileSearchApp(QWidget):
|
||||||
self.init_ui()
|
self.init_ui()
|
||||||
|
|
||||||
def init_ui(self):
|
def init_ui(self):
|
||||||
|
# Horizontal layout for file upload and visualization buttons
|
||||||
|
button_layout = QHBoxLayout()
|
||||||
|
|
||||||
# Button to open file dialog
|
# Button to open file dialog
|
||||||
self.file_button = QPushButton("Upload File to Cognee", parent=self)
|
self.file_button = QPushButton("Upload File to Cognee", parent=self)
|
||||||
self.file_button.clicked.connect(self.open_file_dialog)
|
self.file_button.clicked.connect(self.open_file_dialog)
|
||||||
|
button_layout.addWidget(self.file_button)
|
||||||
|
|
||||||
|
# Button to visualize data
|
||||||
|
self.visualize_button = QPushButton("Visualize Data", parent=self)
|
||||||
|
self.visualize_button.clicked.connect(lambda: asyncio.ensure_future(self.visualize_data()))
|
||||||
|
button_layout.addWidget(self.visualize_button)
|
||||||
|
|
||||||
# Label to display selected file path
|
# Label to display selected file path
|
||||||
self.file_label = QLabel("No file selected", parent=self)
|
self.file_label = QLabel("No file selected", parent=self)
|
||||||
|
|
@ -61,13 +71,12 @@ class FileSearchApp(QWidget):
|
||||||
# Progress dialog
|
# Progress dialog
|
||||||
self.progress_dialog = QProgressDialog("Processing..", None, 0, 0, parent=self)
|
self.progress_dialog = QProgressDialog("Processing..", None, 0, 0, parent=self)
|
||||||
self.progress_dialog.setWindowModality(Qt.WindowModal)
|
self.progress_dialog.setWindowModality(Qt.WindowModal)
|
||||||
# self.progress_dialog.setAttribute(Qt.WA_DeleteOnClose)
|
|
||||||
self.progress_dialog.setCancelButton(None) # Remove the cancel button
|
self.progress_dialog.setCancelButton(None) # Remove the cancel button
|
||||||
self.progress_dialog.close()
|
self.progress_dialog.close()
|
||||||
|
|
||||||
# Layout setup
|
# Layout setup
|
||||||
layout = QVBoxLayout()
|
layout = QVBoxLayout()
|
||||||
layout.addWidget(self.file_button)
|
layout.addLayout(button_layout)
|
||||||
layout.addWidget(self.file_label)
|
layout.addWidget(self.file_label)
|
||||||
layout.addWidget(self.search_input)
|
layout.addWidget(self.search_input)
|
||||||
layout.addWidget(self.search_button)
|
layout.addWidget(self.search_button)
|
||||||
|
|
@ -119,6 +128,17 @@ class FileSearchApp(QWidget):
|
||||||
self.setEnabled(True)
|
self.setEnabled(True)
|
||||||
self.progress_dialog.close()
|
self.progress_dialog.close()
|
||||||
|
|
||||||
|
async def visualize_data(self):
|
||||||
|
"""Async slot for handling visualize data button press."""
|
||||||
|
import webbrowser
|
||||||
|
from cognee.api.v1.visualize.visualize import visualize_graph
|
||||||
|
import os
|
||||||
|
import pathlib
|
||||||
|
|
||||||
|
html_file = os.path.join(pathlib.Path(__file__).parent, ".data", "graph_visualization.html")
|
||||||
|
await visualize_graph(html_file)
|
||||||
|
webbrowser.open(f"file://{html_file}")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue