@@ -1,61 +1,62 @@
|
||||
import numpy as np
|
||||
from dash import callback, Input, Output, State
|
||||
from ...data.processor import DataProcessor
|
||||
|
||||
|
||||
class DataProcessingCallbacks:
|
||||
|
||||
def __init__(self):
|
||||
self.processor = DataProcessor()
|
||||
self._register_callbacks()
|
||||
|
||||
|
||||
def _register_callbacks(self):
|
||||
|
||||
@callback(
|
||||
Output('processed-data', 'data'),
|
||||
Input('upload-data', 'contents'),
|
||||
State('upload-data', 'filename')
|
||||
Output("processed-data", "data"),
|
||||
Input("upload-data", "contents"),
|
||||
State("upload-data", "filename"),
|
||||
)
|
||||
def process_uploaded_file(contents, filename):
|
||||
if contents is None:
|
||||
return None
|
||||
|
||||
|
||||
processed_data = self.processor.process_upload(contents, filename)
|
||||
|
||||
|
||||
if processed_data.error:
|
||||
return {'error': processed_data.error}
|
||||
|
||||
return {"error": processed_data.error}
|
||||
|
||||
return {
|
||||
'documents': [self._document_to_dict(doc) for doc in processed_data.documents],
|
||||
'embeddings': processed_data.embeddings.tolist()
|
||||
"documents": [
|
||||
self._document_to_dict(doc) for doc in processed_data.documents
|
||||
],
|
||||
"embeddings": processed_data.embeddings.tolist(),
|
||||
}
|
||||
|
||||
|
||||
@callback(
|
||||
Output('processed-prompts', 'data'),
|
||||
Input('upload-prompts', 'contents'),
|
||||
State('upload-prompts', 'filename')
|
||||
Output("processed-prompts", "data"),
|
||||
Input("upload-prompts", "contents"),
|
||||
State("upload-prompts", "filename"),
|
||||
)
|
||||
def process_uploaded_prompts(contents, filename):
|
||||
if contents is None:
|
||||
return None
|
||||
|
||||
|
||||
processed_data = self.processor.process_upload(contents, filename)
|
||||
|
||||
|
||||
if processed_data.error:
|
||||
return {'error': processed_data.error}
|
||||
|
||||
return {"error": processed_data.error}
|
||||
|
||||
return {
|
||||
'prompts': [self._document_to_dict(doc) for doc in processed_data.documents],
|
||||
'embeddings': processed_data.embeddings.tolist()
|
||||
"prompts": [
|
||||
self._document_to_dict(doc) for doc in processed_data.documents
|
||||
],
|
||||
"embeddings": processed_data.embeddings.tolist(),
|
||||
}
|
||||
|
||||
|
||||
@staticmethod
|
||||
def _document_to_dict(doc):
|
||||
return {
|
||||
'id': doc.id,
|
||||
'text': doc.text,
|
||||
'embedding': doc.embedding,
|
||||
'category': doc.category,
|
||||
'subcategory': doc.subcategory,
|
||||
'tags': doc.tags
|
||||
}
|
||||
"id": doc.id,
|
||||
"text": doc.text,
|
||||
"embedding": doc.embedding,
|
||||
"category": doc.category,
|
||||
"subcategory": doc.subcategory,
|
||||
"tags": doc.tags,
|
||||
}
|
||||
|
Reference in New Issue
Block a user