diff --git a/lollms/app.py b/lollms/app.py index 45b70ce..ad8fa60 100644 --- a/lollms/app.py +++ b/lollms/app.py @@ -560,6 +560,8 @@ class LollmsApplication(LoLLMsCom): languages = [] # Construire le chemin vers le dossier contenant les fichiers de langue pour la personnalité actuelle languages_dir = self.lollms_paths.personal_configuration_path / "personalities" / self.personality.name + if self.personality.language is None: + self.personality.language="english" default_language = self.personality.language.lower().strip().split()[0] # Vérifier si le dossier existe languages_dir.mkdir(parents=True, exist_ok=True) diff --git a/lollms/databases/discussions_database.py b/lollms/databases/discussions_database.py index 195071a..cfa3fcd 100644 --- a/lollms/databases/discussions_database.py +++ b/lollms/databases/discussions_database.py @@ -662,9 +662,14 @@ class Discussion: if len(self.vectorizer.chunks)==0 and len(self.text_files)>0: for path in self.text_files: data = GenericDataLoader.read_file(path) - self.vectorizer.add_document(path, data, self.lollms.config.data_vectorization_chunk_size, self.lollms.config.data_vectorization_overlap_size, add_first_line_to_all_chunks=True if path.suffix==".csv" else False) + try: + self.vectorizer.add_document(path, data, self.lollms.config.data_vectorization_chunk_size, self.lollms.config.data_vectorization_overlap_size, add_first_line_to_all_chunks=True if path.suffix==".csv" else False) + except Exception as ex: + trace_exception(ex) + try: self.vectorizer.index() - + except Exception as ex: + trace_exception(ex) def update_file_lists(self): self.text_files = [Path(file) for file in self.discussion_text_folder.glob('*')] diff --git a/lollms/personality.py b/lollms/personality.py index 8e85729..d251f90 100644 --- a/lollms/personality.py +++ b/lollms/personality.py @@ -2348,7 +2348,7 @@ class APScript(StateMachine): self.step_start(f" Summary of {doc_name} - Processing chunk : {i+1}/{len(chunks)}") summary = f"{answer_start}"+ self.fast_gen( "\n".join([ - f"!@>Document_chunk: {doc_name}:", + f"!@>Document_chunk [{doc_name}]:", f"{chunk}", f"!@>instruction: {summary_instruction}", f"Answer directly with the summary with no extra comments.", diff --git a/lollms/server/endpoints/lollms_discussion.py b/lollms/server/endpoints/lollms_discussion.py index ae897a2..50a6355 100644 --- a/lollms/server/endpoints/lollms_discussion.py +++ b/lollms/server/endpoints/lollms_discussion.py @@ -151,8 +151,9 @@ async def delete_discussion(discussion: DiscussionDelete): try: client_id = discussion.client_id - discussion_id = sanitize_path(discussion.id) - discussion_path = lollmsElfServer.lollms_paths.personal_discussions_path/lollmsElfServer.config.discussion_db_name/discussion_id + discussion_id = discussion.id + discussion_path = lollmsElfServer.lollms_paths.personal_discussions_path/lollmsElfServer.config.discussion_db_name/f"{discussion_id}" + lollmsElfServer.session.get_client(client_id).discussion = Discussion(lollmsElfServer, discussion_id, lollmsElfServer.db) lollmsElfServer.session.get_client(client_id).discussion.delete_discussion() diff --git a/lollms/server/endpoints/lollms_personalities_infos.py b/lollms/server/endpoints/lollms_personalities_infos.py index 3af68bd..9ab2ca0 100644 --- a/lollms/server/endpoints/lollms_personalities_infos.py +++ b/lollms/server/endpoints/lollms_personalities_infos.py @@ -571,6 +571,8 @@ def select_personality(data:PersonalitySelectionInfos): print(f"Selected {lollmsElfServer.personality.name}") language = lollmsElfServer.config.current_language + if lollmsElfServer.personality.language is None: + lollmsElfServer.personality.language = "english" default_language = lollmsElfServer.personality.language.lower().strip().split()[0] if language != default_language: diff --git a/lollms/server/events/lollms_personality_events.py b/lollms/server/events/lollms_personality_events.py index 86cba70..bd3b714 100644 --- a/lollms/server/events/lollms_personality_events.py +++ b/lollms/server/events/lollms_personality_events.py @@ -161,6 +161,11 @@ def add_events(sio:socketio): if lollmsElfServer.personality.processor is not None: lollmsElfServer.start_time = datetime.now() lollmsElfServer.personality.processor.callback = partial(lollmsElfServer.process_chunk, client_id=client_id) + lollmsElfServer.personality.vectorizer = client.discussion.vectorizer + lollmsElfServer.personality.text_files = client.discussion.text_files + lollmsElfServer.personality.image_files = client.discussion.image_files + lollmsElfServer.personality.audio_files = client.discussion.audio_files + lollmsElfServer.personality.processor.execute_command(command, parameters, client) else: lollmsElfServer.warning("Non scripted personalities do not support commands",client_id=client_id)