저장된 문서 목록 조회
박수현 · (사)한국정보공학기술사회 · 2026
GET /files 로 문서 목록where 필터 기본🎯 목표: 여러 chunk로 분할 저장된 문서를 사용자용 문서 목록으로 집계한다.
💡 저장은 chunk 단위, 표시는 파일(source) 단위. 둘을 잇는 연결 고리가 메타데이터
source다.
def list_documents():
data = store._collection.get(include=["metadatas"])
counts = {}
for m in data["metadatas"]:
src = m.get("source", "unknown")
counts[src] = counts.get(src, 0) + 1
return [{"source": s, "chunks": n}
for s, n in counts.items()]
_collection.get(include=["metadatas"]) — 모든 chunk 의 메타데이터source 로 카운트 → 파일별 chunk 수_collection.count() — 전체 chunk 수로 컬렉션 상태 점검📁 참고:
vectorstore.py의list_documents/_distinct_sources
@app.get("/files")
def get_files():
return jsonify(list_documents())
응답 예:
[
{"source": "faq.pdf", "chunks": 42},
{"source": "rule.docx", "chunks": 18}
]
🔑 route는 서비스 결과를 JSON으로 반환할 뿐, 목록 UI 구성은 프런트가 담당한다.
store._collection.get(
where={"source": "faq.pdf"},
include=["metadatas"], limit=5
)
source가 일치하는 chunk만 반환include / limit으로 저장 내용 미리보기🔑 동일한
where문법이 문서 삭제·필터 검색에 그대로 적용된다.
GET /files → list_documents() 서비스 호출get(include=["metadatas"]) 로 전체 조회 · count() 로 상태 점검where 필터로 특정 문서만 조회 (limit 으로 미리보기)