fix: surface missing knowledge files

This commit is contained in:
stefanfeng
2026-08-19 15:13:22 +08:00
parent bd5f64d000
commit 25d2494616
4 changed files with 37 additions and 4 deletions
@@ -32,6 +32,14 @@ class EnabledIn(BaseModel):
enabled: bool = True
def _doc_payload(doc: KnowledgeDoc) -> dict:
payload = doc.to_dict()
stored_name = os.path.basename(doc.file_url or "")
stored_path = os.path.join(UPLOAD_DIR, doc.avatar_id, stored_name)
payload["filePresent"] = bool(stored_name and os.path.isfile(stored_path))
return payload
def _resolve_user(authorization: str | None, db: Session):
if not authorization:
return None
@@ -61,7 +69,7 @@ def list_docs(avatar_id: str, authorization: str = Header(None), db: Session = D
.order_by(KnowledgeDoc.created_at.desc())
.all()
)
return ok([d.to_dict() for d in docs])
return ok([_doc_payload(d) for d in docs])
@router.post("/avatar/{avatar_id}/knowledge/docs")
@@ -121,7 +129,7 @@ async def upload_doc(avatar_id: str, file: UploadFile = File(...), authorization
db.commit()
db.refresh(doc)
return ok(doc.to_dict())
return ok(_doc_payload(doc))
@router.delete("/avatar/{avatar_id}/knowledge/docs/{doc_id}")