20 lines
761 B
Python
20 lines
761 B
Python
|
|
"""知识提取 Celery 定时任务"""
|
||
|
|
from app.core.celery_app import celery_app
|
||
|
|
from app.services.knowledge_extractor import knowledge_extractor
|
||
|
|
import logging
|
||
|
|
|
||
|
|
logger = logging.getLogger(__name__)
|
||
|
|
|
||
|
|
|
||
|
|
@celery_app.task(name="extract_knowledge_from_logs")
|
||
|
|
def extract_knowledge_task(limit: int = 10) -> dict:
|
||
|
|
"""定时从执行日志中提取知识。"""
|
||
|
|
logger.info("知识提取定时任务开始 (limit=%d)", limit)
|
||
|
|
try:
|
||
|
|
count = knowledge_extractor.run_extraction_pipeline(limit=limit)
|
||
|
|
logger.info("知识提取完成: %d 条新知识", count)
|
||
|
|
return {"status": "ok", "extracted": count}
|
||
|
|
except Exception as e:
|
||
|
|
logger.error("知识提取任务失败: %s", e)
|
||
|
|
return {"status": "error", "error": str(e)}
|