feat: add admin dashboard, pipeline service, lightbox, and update dependencies
This commit is contained in:
@@ -5,7 +5,8 @@ from __future__ import annotations
|
||||
import logging
|
||||
from pathlib import Path
|
||||
|
||||
from sqlalchemy.orm import Session, joinedload
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.orm import joinedload
|
||||
|
||||
from app.config import settings
|
||||
from app.models import Paper
|
||||
@@ -188,12 +189,11 @@ def index_paper(paper_id: str, texts_dict: dict | None = None) -> bool:
|
||||
|
||||
db = SessionLocal()
|
||||
try:
|
||||
paper = (
|
||||
db.query(Paper)
|
||||
.filter(Paper.arxiv_id == paper_id)
|
||||
paper = db.execute(
|
||||
select(Paper)
|
||||
.where(Paper.arxiv_id == paper_id)
|
||||
.options(joinedload(Paper.tags), joinedload(Paper.summary))
|
||||
.first()
|
||||
)
|
||||
).unique().scalar_one_or_none()
|
||||
if not paper:
|
||||
logger.warning("Paper %s not found for indexing", paper_id)
|
||||
return False
|
||||
@@ -242,36 +242,6 @@ def index_paper(paper_id: str, texts_dict: dict | None = None) -> bool:
|
||||
return False
|
||||
|
||||
|
||||
# ── 批量索引 ────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
def index_batch(paper_ids: list[str]) -> dict:
|
||||
"""批量索引论文,单篇失败不影响其他。
|
||||
|
||||
Returns:
|
||||
{"total": int, "success": int, "failed": int}
|
||||
"""
|
||||
if not paper_ids:
|
||||
return {"total": 0, "success": 0, "failed": 0}
|
||||
|
||||
col = get_collection()
|
||||
if col is None:
|
||||
return {"total": len(paper_ids), "success": 0, "failed": len(paper_ids)}
|
||||
|
||||
success = 0
|
||||
failed = 0
|
||||
for pid in paper_ids:
|
||||
if index_paper(pid):
|
||||
success += 1
|
||||
else:
|
||||
failed += 1
|
||||
|
||||
logger.info(
|
||||
"Batch index: total=%d success=%d failed=%d", len(paper_ids), success, failed
|
||||
)
|
||||
return {"total": len(paper_ids), "success": success, "failed": failed}
|
||||
|
||||
|
||||
# ── 删除 ────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user