feat(project): trigger async LLM name generation on project creation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
f301eff373
commit
ca38800a53
|
|
@ -16,6 +16,7 @@ from ..config import Config
|
||||||
from ..services.ontology_generator import OntologyGenerator
|
from ..services.ontology_generator import OntologyGenerator
|
||||||
from ..services.graph_builder import GraphBuilderService
|
from ..services.graph_builder import GraphBuilderService
|
||||||
from ..services.text_processor import TextProcessor
|
from ..services.text_processor import TextProcessor
|
||||||
|
from ..services.project_name_generator import generate_project_name
|
||||||
from ..utils.file_parser import FileParser
|
from ..utils.file_parser import FileParser
|
||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
from ..utils.locale import t, get_locale, set_locale
|
from ..utils.locale import t, get_locale, set_locale
|
||||||
|
|
@ -196,6 +197,17 @@ def generate_ontology():
|
||||||
ProjectManager.save_extracted_text(project_id, all_text, storage)
|
ProjectManager.save_extracted_text(project_id, all_text, storage)
|
||||||
logger.info(f"Text extraction complete, total {len(all_text)} characters")
|
logger.info(f"Text extraction complete, total {len(all_text)} characters")
|
||||||
|
|
||||||
|
# Generate project name in background (non-blocking)
|
||||||
|
def _name_task():
|
||||||
|
try:
|
||||||
|
name = generate_project_name(all_text)
|
||||||
|
ProjectManager.save_project({"id": project_id, "name": name})
|
||||||
|
logger.info(f"Project name generated: {name!r}")
|
||||||
|
except Exception as exc:
|
||||||
|
logger.warning(f"Background name generation failed: {exc}")
|
||||||
|
|
||||||
|
threading.Thread(target=_name_task, daemon=True).start()
|
||||||
|
|
||||||
logger.info("Calling LLM to generate ontology definition...")
|
logger.info("Calling LLM to generate ontology definition...")
|
||||||
generator = OntologyGenerator()
|
generator = OntologyGenerator()
|
||||||
ontology = generator.generate(
|
ontology = generator.generate(
|
||||||
|
|
@ -231,6 +243,7 @@ def generate_ontology():
|
||||||
})
|
})
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
logger.exception("Error in generate_ontology")
|
||||||
if project_id:
|
if project_id:
|
||||||
try:
|
try:
|
||||||
ProjectManager.delete_project(project_id, storage=get_storage())
|
ProjectManager.delete_project(project_id, storage=get_storage())
|
||||||
|
|
@ -311,6 +324,17 @@ def import_ontology():
|
||||||
|
|
||||||
ProjectManager.save_extracted_text(project_id, all_text, storage)
|
ProjectManager.save_extracted_text(project_id, all_text, storage)
|
||||||
|
|
||||||
|
# Generate project name in background (non-blocking)
|
||||||
|
def _name_task():
|
||||||
|
try:
|
||||||
|
name = generate_project_name(all_text)
|
||||||
|
ProjectManager.save_project({"id": project_id, "name": name})
|
||||||
|
logger.info(f"Project name generated: {name!r}")
|
||||||
|
except Exception as exc:
|
||||||
|
logger.warning(f"Background name generation failed: {exc}")
|
||||||
|
|
||||||
|
threading.Thread(target=_name_task, daemon=True).start()
|
||||||
|
|
||||||
entity_types = ontology.get("entity_types", [])
|
entity_types = ontology.get("entity_types", [])
|
||||||
edge_types = ontology.get("edge_types", [])
|
edge_types = ontology.get("edge_types", [])
|
||||||
analysis_summary = ontology.get("analysis_summary", "")
|
analysis_summary = ontology.get("analysis_summary", "")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue