Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from fastmcp import FastMCP | |
| from services.reference_data_service import ingest_reference_resumes, sync_reference_resumes_to_local | |
| def register(mcp: FastMCP) -> None: | |
| def bulk_ingest_reference_resumes( | |
| limit: int = 20, | |
| source_dir: str | None = None, | |
| force_reingest: bool = False, | |
| sync_to_local: bool = True, | |
| sync_max_files: int = 150, | |
| ) -> dict: | |
| """Bulk ingest sample resumes from a local directory into SQLite and vector index.""" | |
| sync_result = None | |
| ingest_source = source_dir | |
| if sync_to_local: | |
| sync_result = sync_reference_resumes_to_local( | |
| max_files=max(1, min(sync_max_files, 1000)), | |
| source_dir=source_dir, | |
| ) | |
| ingest_source = str(sync_result.get("target_dir")) | |
| summary = ingest_reference_resumes( | |
| limit=max(1, min(limit, 200)), | |
| source_dir=ingest_source, | |
| force_reingest=force_reingest, | |
| ) | |
| return { | |
| "status": "success", | |
| "sync": sync_result, | |
| "summary": { | |
| "source_dir": summary.source_dir, | |
| "requested_limit": summary.requested_limit, | |
| "files_seen": summary.files_seen, | |
| "ingested": summary.ingested, | |
| "skipped": summary.skipped, | |
| "failed": summary.failed, | |
| }, | |
| "failures": summary.failures[:20], | |
| } | |