생성형 AI 기반 RAG 개발자 과정
Session 20 · ChromaDB 관리: 조회(Read)
생성형 AI 기반 RAG 개발자 과정

ChromaDB 관리
조회 (Read)

Session 20 / 33 — Day 3

저장된 문서 목록 조회

박수현 · (사)한국정보공학기술사회 · 2026

LLM 이론 · LangChain · ChromaDB CRUD · Agent — 4일 핸즈온
생성형 AI 기반 RAG 개발자 과정·Session 20 · ChromaDB 관리: 조회(Read)출처: Day 3Chroma 관리(R)

이번 시간을 마치면

📋 목록 구성

  • GET /files 로 문서 목록
  • chunk → source 단위 집계
  • 파일별 chunk 수

🔎 메타데이터 활용

  • Chroma 에서 메타데이터 조회
  • where 필터 기본
  • source 로 그룹핑

🎯 목표: 여러 chunk로 분할 저장된 문서를 사용자용 문서 목록으로 집계한다.

생성형 AI 기반 RAG 개발자 과정·Session 20 · ChromaDB 관리: 조회(Read)출처: Day 3Chroma 관리(R)

chunk의 파일 단위 그룹핑

flowchart LR DB[("ChromaDB<br/>chunk 412개")] --> AGG["source 별 집계"] AGG --> L["문서 목록<br/>faq.pdf (42)<br/>rule.docx (18)<br/>guide.txt (9)"] style DB fill:#00b89422,stroke:#00b894 style AGG fill:#a29bfe22,stroke:#a29bfe style L fill:#74b9ff22,stroke:#74b9ff

💡 저장은 chunk 단위, 표시는 파일(source) 단위. 둘을 잇는 연결 고리가 메타데이터 source다.

생성형 AI 기반 RAG 개발자 과정·Session 20 · ChromaDB 관리: 조회(Read)출처: Day 3Chroma 관리(R)

list_documents 서비스 (스니펫)

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.pylist_documents / _distinct_sources

생성형 AI 기반 RAG 개발자 과정·Session 20 · ChromaDB 관리: 조회(Read)출처: Day 3Chroma 관리(R)

라우트는 서비스 호출만 (스니펫)

@app.get("/files")
def get_files():
    return jsonify(list_documents())

응답 예:

[
  {"source": "faq.pdf",   "chunks": 42},
  {"source": "rule.docx", "chunks": 18}
]

🔑 route는 서비스 결과를 JSON으로 반환할 뿐, 목록 UI 구성은 프런트가 담당한다.

생성형 AI 기반 RAG 개발자 과정·Session 20 · ChromaDB 관리: 조회(Read)출처: Day 3Chroma 관리(R)

특정 문서만 조회 (개념)

where 로 좁히기

store._collection.get(
  where={"source": "faq.pdf"},
  include=["metadatas"], limit=5
)
  • source가 일치하는 chunk만 반환
  • include / limit으로 저장 내용 미리보기

활용 시점

  • 특정 문서 내부로 한정한 검색
  • 문서 삭제 대상 식별
  • 부서·작성일 등으로 필터링

🔑 동일한 where 문법이 문서 삭제·필터 검색에 그대로 적용된다.

생성형 AI 기반 RAG 개발자 과정·Session 20 · ChromaDB 관리: 조회(Read)출처: Day 3Chroma 관리(R)

핵심 5가지

  1. ✅ 저장은 chunk 단위, 표시는 파일(source) 단위
  2. GET /fileslist_documents() 서비스 호출
  3. ✅ 메타데이터를 source 로 집계해 파일별 chunk 수
  4. get(include=["metadatas"]) 로 전체 조회 · count() 로 상태 점검
  5. where 필터로 특정 문서만 조회 (limit 으로 미리보기)
1 / 7

목차 — Session 20

키보드 단축키 (뷰어)

네비게이션

다음 슬라이드 Space
이전 슬라이드 PgUp
처음 / 끝Home End
목차M

화면

전체화면F
테마 전환D
글자 크게 / 작게+ -
원래 크기 (100%)=
도움말 (열기/닫기)H ?
닫기 (모든 오버레이)Esc
강의 종료 (메인으로)Q

키보드 단축키 (강사)

네비게이션

다음 슬라이드 Space
이전 슬라이드 PgUp
처음 / 끝Home End
목차 (Menu)M
전체화면F

화면

테마 전환D
도움말 (열기/닫기)H ?
닫기 (모든 오버레이)Esc
툴바 펼치기 / 접기[ ]
강의 종료 (메인으로)Q

화면 확대

글자 크게 / 작게+ -
원래 크기 (100%)=
돋보기 (마우스 따라 2× 확대)V

발표자 도구 (PPT 호환)

화이트 화면W ,
블랙 화면B .
레이저 포인터L
펜 모드 ON/OFFP
펜 색상1 2 3 4
펜 자국 지우기 (현재 슬라이드)E
펜 — 마지막 스트로크 취소 (Undo)Z
펜 — 다시 (Redo)R
⏰ 쉬는시간 타이머T
📱 노트뷰 QR (휴대폰 동기화)N

PDF / 종료

PDF 저장 (슬라이드)Ctrl+P
강의 종료 (메인으로)Q X