Skip to content

Latest commit

Β 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RAG 기반 QnA μ‹œμŠ€ν…œ 및 응닡 μ‹ λ’°μ„± 평가 νŒŒμ΄ν”„λΌμΈ

λ¬Έμ„œ 기반 μ§ˆμ˜μ‘λ‹΅μ—μ„œ LLM의 hallucination을 νƒμ§€ν•˜κ³ , μ—¬λŸ¬ λͺ¨λΈμ˜ 응닡 신뒰성을 μ •λŸ‰μ μœΌλ‘œ 비ꡐ ν‰κ°€ν•˜λŠ” νŒŒμ΄ν”„λΌμΈ


ν”„λ‘œμ νŠΈ κ°œμš”

LLM에 λ¬Έμ„œ 기반 μ§ˆλ¬Έμ„ ν•˜λ©΄ hallucination(κ·Όκ±° μ—†λŠ” λ‹΅λ³€)을 μƒμ„±ν•˜λŠ” λ¬Έμ œκ°€ μžˆλ‹€. 이 ν”„λ‘œμ νŠΈλŠ” RAG둜 κ΄€λ ¨ λ¬Έμ„œλ₯Ό κ²€μƒ‰ν•˜μ—¬ LLM에 μ œκ³΅ν•˜κ³ , 3단계 평가 νŒŒμ΄ν”„λΌμΈμœΌλ‘œ μ‘λ‹΅μ˜ 신뒰성을 μžλ™ ν‰κ°€ν•œλ‹€.

핡심 κΈ°λŠ₯

  • Hybrid RAG: Vector Search + BM25 + Cross-Encoder Reranking
  • λ©€ν‹° LLM 비ꡐ: GPT-4o, Claude, Llama3 동일 쑰건 ν…ŒμŠ€νŠΈ
  • 3단계 μ‹ λ’°μ„± 평가: RAGAS (μ •λŸ‰) + LLM-as-a-Judge (μ •μ„±) + DeepEval (μ•ˆμ „μ„±)

μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜

    [Documents]              [User Query]
        β”‚                         β”‚
        β–Ό                         β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚ Document β”‚            β”‚   Query     β”‚
   β”‚ Loader   β”‚            β”‚   Engine    β”‚
   β”‚ (PDF/TXT)β”‚            β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
   β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                   β”‚
        β–Ό                         β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”‚
   β”‚ Semantic β”‚                   β”‚
   β”‚ Chunker  β”‚                   β”‚
   β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                   β”‚
        β–Ό                         β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚Embedding │───────────▢│  Hybrid     β”‚
   β”‚ Model    β”‚            β”‚  Retriever  β”‚
   β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜            β”‚  Vector+BM25β”‚
        β–Ό                  β”‚  +Reranker  β”‚
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
   β”‚ ChromaDB β”‚                   β”‚
   β”‚ (Vector  β”‚                   β–Ό
   β”‚  Store)  β”‚            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β”‚  LLM Layer  β”‚
                           β”‚  (LiteLLM)  β”‚
                           β”‚  GPT/Claude β”‚
                           β”‚  /Ollama    β”‚
                           β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                  β”‚
                                  β–Ό
                           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                           β”‚  Response   β”‚
                           β”‚  + Citation β”‚
                           β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                  β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β–Ό             β–Ό             β–Ό
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚  RAGAS   β”‚ β”‚   LLM    β”‚ β”‚ DeepEval β”‚
              β”‚ μ •λŸ‰ν‰κ°€  β”‚ β”‚  Judge   β”‚ β”‚ μ•ˆμ „μ„±   β”‚
              β”‚          β”‚ β”‚  정성평가  β”‚ β”‚          β”‚
              β”‚ Faith.   β”‚ β”‚ G-Eval   β”‚ β”‚ Halluc.  β”‚
              β”‚ Relevancyβ”‚ β”‚ μΈμš©μ •ν™•μ„±β”‚ β”‚ Toxicity β”‚
              β”‚ Ctx P/R  β”‚ β”‚ μ™„κ²°μ„±   β”‚ β”‚          β”‚
              β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                β–Ό
                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚  Dashboard  β”‚
                         β”‚ (Streamlit) β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

기술 μŠ€νƒ

ꡬ뢄 기술 선택 이유
μ–Έμ–΄ Python 3.11+ RAG μƒνƒœκ³„ 쀑심
LLM 톡합 LiteLLM 1μ€„λ‘œ GPT/Claude/Ollama μ „ν™˜
μž„λ² λ”© OpenAI text-embedding-3-small λΉ„μš© λŒ€λΉ„ μ„±λŠ₯ 졜적
벑터 DB ChromaDB pip install만으둜 둜컬 μ‹€ν–‰
BM25 rank_bm25 ν‚€μ›Œλ“œ 검색 보완
리랭컀 sentence-transformers (Cross-Encoder) 검색 정밀도 ν–₯상
PDF νŒŒμ‹± PyMuPDF λΉ λ₯΄κ³  μ •ν™•ν•œ ν…μŠ€νŠΈ μΆ”μΆœ
평가 RAGAS + DeepEval ν•™μˆ μ μœΌλ‘œ κ²€μ¦λœ RAG λ©”νŠΈλ¦­
UI Streamlit λΉ λ₯Έ 데λͺ¨ ꡬ좕

RAG νŒŒμ΄ν”„λΌμΈ 상세

1. λ¬Έμ„œ μˆ˜μ§‘ (Ingestion)

PDF/TXT ──▢ ν…μŠ€νŠΈ μΆ”μΆœ ──▢ μ‹œλ§¨ν‹± μ²­ν‚Ή ──▢ μž„λ² λ”© ──▢ ChromaDB μ €μž₯
              (PyMuPDF)      (λ¬Έμž₯ 경계     (OpenAI     (벑터 + 메타데이터)
                              기반 λΆ„ν• )     API)
  • μ‹œλ§¨ν‹± μ²­ν‚Ή: κ³ μ • 크기가 μ•„λ‹Œ λ¬Έμž₯ 경계 기반 λΆ„ν•  (의미 λ‹¨μœ„ 보쑴)
  • 청크 크기: 512 토큰 (256/1024와 비ꡐ μ‹€ν—˜ μ˜ˆμ •)
  • μ˜€λ²„λž©: 50 토큰 (μ»¨ν…μŠ€νŠΈ μ—°κ²° μœ μ§€)

2. 검색 (Retrieval)

Query ──┬──▢ Vector Search (ChromaDB, 코사인 μœ μ‚¬λ„)
        β”‚                                            ──▢ RRF 병합 ──▢ Reranking ──▢ Top-5
        └──▢ BM25 Search (ν‚€μ›Œλ“œ λ§€μΉ­)

Hybrid Searchκ°€ ν•„μš”ν•œ 이유:

검색 방식 강점 약점
Vector Search "μ‘Έμ—… μš”κ±΄" β‰ˆ "ν•™μœ„ 취득 쑰건" (의미 μœ μ‚¬) μ •ν™•ν•œ 고유λͺ…사/숫자 검색 약함
BM25 "제30μ‘°" μ •ν™•νžˆ λ§€μΉ­ μœ μ˜μ–΄/νŒ¨λŸ¬ν”„λ ˆμ΄μ¦ˆ λͺ» 찾음
Hybrid (RRF) 두 λ°©μ‹μ˜ μž₯점 κ²°ν•©

Reciprocal Rank Fusion (RRF):

Score(doc) = Ξ£ 1/(k + rank_i)    (k=60)

각 검색 μ‹œμŠ€ν…œμ˜ μˆœμœ„λ₯Ό μ—­μˆ˜λ‘œ ν•©μ‚°ν•˜μ—¬ μ΅œμ’… μˆœμœ„ κ²°μ •.

Cross-Encoder Reranking: 1μ°¨ κ²€μƒ‰μ—μ„œ 20개 후보 β†’ Cross-Encoder둜 μ •λ°€ μž¬ν‰κ°€ β†’ μƒμœ„ 5개 선별.

3. λ‹΅λ³€ 생성 (Generation)

# LiteLLM으둜 λͺ¨λΈ κ΅μ²΄λŠ” 1쀄
from litellm import completion

# GPT-4o
response = completion(model="openai/gpt-4o", messages=[...])

# Claude Sonnet
response = completion(model="anthropic/claude-sonnet-4-20250514", messages=[...])

# Llama3 (둜컬, 무료)
response = completion(model="ollama/llama3.2", messages=[...])

ν”„λ‘¬ν”„νŠΈμ— 좜처 μΈμš©μ„ μ§€μ‹œν•˜μ—¬ 닡변에 [좜처: λ¬Έμ„œλͺ…, νŽ˜μ΄μ§€] ν‘œμ‹œ.


응닡 μ‹ λ’°μ„± 평가 νŒŒμ΄ν”„λΌμΈ

μ™œ 3단계인가?

각 평가 방식이 μž‘λŠ” λ¬Έμ œκ°€ λ‹€λ₯΄λ‹€:

                         β”Œβ”€ RAGAS ──────── "μ»¨ν…μŠ€νŠΈμ— κ·Όκ±°ν•˜λŠ”κ°€?" (μ •λŸ‰)
                         β”‚
RAG 응닡 ──▢ 평가 ───────┼─ LLM Judge ──── "닡변이 μ™„μ „ν•˜κ³  μ •ν™•ν•œκ°€?" (μ •μ„±)
                         β”‚
                         └─ DeepEval ───── "λͺ…μ‹œμ μœΌλ‘œ ν‹€λ¦° λ‚΄μš©μ΄ μžˆλŠ”κ°€?" (μ•ˆμ „μ„±)

Stage 1: RAGAS (μ •λŸ‰ 평가)

RAGASλŠ” RAG의 검색 ν’ˆμ§ˆκ³Ό 생성 ν’ˆμ§ˆμ„ κ΅¬λΆ„ν•˜μ—¬ ν‰κ°€ν•œλ‹€.

λ©”νŠΈλ¦­ μΈ‘μ • λŒ€μƒ λ™μž‘ 방식 Target
Faithfulness 생성 λ‹΅λ³€β†’claim λΆ„ν•΄β†’μ»¨ν…μŠ€νŠΈμ—μ„œ NLI 검증 β‰₯ 0.85
Answer Relevancy 생성 λ‹΅λ³€β†’μ—­μ§ˆλ¬Έ μƒμ„±β†’μ›λž˜ 질문과 μœ μ‚¬λ„ 비ꡐ β‰₯ 0.80
Context Precision 검색 검색 λ¬Έμ„œλ³„ κ΄€λ ¨μ„± νŒμ •β†’Average Precision β‰₯ 0.75
Context Recall 검색 μ •λ‹΅β†’statement λΆ„ν•΄β†’μ»¨ν…μŠ€νŠΈμ—μ„œ 확인 β‰₯ 0.80

Faithfulness λ™μž‘ μ˜ˆμ‹œ:

λ‹΅λ³€: "μ‘Έμ—…μ—λŠ” 130학점이 ν•„μš”ν•˜λ©°, GPA 2.0 이상이어야 ν•©λ‹ˆλ‹€."
  ↓ claim λΆ„ν•΄
Claim 1: "μ‘Έμ—…μ—λŠ” 130학점이 ν•„μš”ν•˜λ‹€"
Claim 2: "GPA 2.0 이상이어야 ν•œλ‹€"
  ↓ μ»¨ν…μŠ€νŠΈ λŒ€μ‘°
Context: "학생은 μ΅œμ†Œ 130학점을 μ΄μˆ˜ν•΄μ•Ό μ‘Έμ—…ν•  수 μžˆλ‹€."
  ↓
Claim 1: βœ… Supported    Claim 2: ❌ Not Supported (hallucination)
  ↓
Faithfulness = 1/2 = 0.50

Stage 2: LLM-as-a-Judge (μ •μ„± 평가)

κ°•λ ₯ν•œ LLM(GPT-4o)을 **채점관(judge)**으둜 μ‚¬μš©ν•˜μ—¬ RAGASκ°€ μž‘μ§€ λͺ»ν•˜λŠ” 정성적 ν’ˆμ§ˆμ„ ν‰κ°€ν•œλ‹€.

G-Eval 방식:

  1. 평가 기쀀을 μ£Όλ©΄ LLM이 평가 절차(Chain-of-Thought)λ₯Ό μžλ™ 생성
  2. μƒμ„±λœ μ ˆμ°¨μ— 따라 닡변을 평가
  3. 토큰 ν™•λ₯ λ‘œ 점수λ₯Ό μ •κ·œν™” (μ •μˆ˜κ°€ μ•„λ‹Œ 연속 점수)

평가 ν•­λͺ©: 인용 μ •ν™•μ„±, λ‹΅λ³€ μ™„κ²°μ„±, 가독성 (각 1-5점)

Judge 편ν–₯ μ™„ν™”:

편ν–₯ 문제 μ™„ν™” 방법
Position Bias μˆœμ„œμ— 따라 νŒμ • λ’€μ§‘νž˜ (10-30%) μˆœμ„œ λ°”κΏ” 2회 평가 ν›„ 평균
Verbosity Bias κΈ΄ λ‹΅λ³€ μ„ ν˜Έ (70%) "길이가 μ•„λ‹Œ μ •ν™•μ„± κΈ°μ€€" λͺ…μ‹œ
Self-Enhancement 자기 λͺ¨λΈ 닡변에 +10-25% 생성 λͺ¨λΈκ³Ό λ‹€λ₯Έ λͺ¨λΈμ„ judge둜 μ‚¬μš©

Stage 3: DeepEval (μ•ˆμ „μ„± 평가)

RAGAS Faithfulness와 λ‹€λ₯Έ κ΄€μ μ—μ„œ hallucination을 νƒμ§€ν•œλ‹€.

RAGAS Faithfulness:   "증거 μ—†μŒ" = λΆˆμΆ©μ‹€ (엄격)
DeepEval Hallucination: "λͺ…μ‹œμ  λͺ¨μˆœ" = hallucination (λͺ¨μˆœλ§Œ 탐지)

μ˜ˆμ‹œ:
  Context: "μ‘Έμ—… 학점은 130이닀"
  λ‹΅λ³€: "μ‘Έμ—… 학점은 130이며, 인턴십도 ν•„μˆ˜μ΄λ‹€"

  Faithfulness:  0.50  ("인턴십" 증거 μ—†μŒ β†’ λΆˆμΆ©μ‹€)
  Hallucination: 0.00  ("인턴십" λͺ¨μˆœμ€ μ•„λ‹˜ β†’ 미탐지)

  β†’ λ‘˜ λ‹€ μ‚¬μš©ν•΄μ•Ό μ •ν™•ν•œ μ‹ λ’°μ„± 평가 κ°€λŠ₯

μ‹€ν—˜ 섀계

μ‹€ν—˜ 맀트릭슀

μ‹€ν—˜ 1: λͺ¨λΈ 비ꡐ (검색 κ³ μ •: Hybrid+Rerank)
  GPT-4o-mini / GPT-4o / Claude Sonnet / Llama 3.2
  Γ— 100 QA 쌍 = 400 평가

μ‹€ν—˜ 2: 검색 μ „λž΅ 비ꡐ (λͺ¨λΈ κ³ μ •: GPT-4o-mini)
  Vector Only / BM25 Only / Hybrid / Hybrid+Rerank
  Γ— 100 QA 쌍 = 400 평가

μ‹€ν—˜ 3: RAG vs No-RAG
  μ»¨ν…μŠ€νŠΈ 제곡 vs LLM 단독
  Γ— 100 QA 쌍 = 200 평가

κΈ°λŒ€ κ²°κ³Ό (κ°€μ„€)

Model              Faith.  Relev.  Halluc.  Latency
──────────────────────────────────────────────────
GPT-4o             0.92    0.94    0.05     3.2s
Claude Sonnet      0.90    0.91    0.07     4.1s
GPT-4o-mini        0.87    0.89    0.10     1.8s
Llama 3.2          0.78    0.82    0.18     2.5s

Strategy           C.Prec  C.Rec   Faith.
────────────────────────────────────────
Vector Only        0.72    0.75    0.85
BM25 Only          0.68    0.70    0.83
Hybrid (RRF)       0.82    0.84    0.87
Hybrid+Rerank      0.89    0.88    0.87   ← Best

                   Faithfulness    Hallucination
With RAG           0.87            0.10
Without RAG        0.45            0.52   ← 52% hallucination!

개발 일정

Phase κΈ°κ°„ λ‚΄μš© 핡심 μ‚°μΆœλ¬Ό
Phase 1 Week 1 λ¬Έμ„œ μˆ˜μ§‘ νŒŒμ΄ν”„λΌμΈ PDF β†’ Chunks β†’ Embeddings β†’ ChromaDB
Phase 2 Week 2 검색 μ‹œμŠ€ν…œ Hybrid Search + Reranker
Phase 3 Week 3 λ‹΅λ³€ 생성 λ©€ν‹° LLM νŒŒμ΄ν”„λΌμΈ + 좜처 인용
Phase 4 Week 4 평가 νŒŒμ΄ν”„λΌμΈ RAGAS + LLM Judge + DeepEval
Phase 5 Week 5-6 UI + 톡합 Streamlit 데λͺ¨ + μ΅œμ’… 리포트

ν΄λΌμš°λ“œ 배포

ν•­λͺ© AWS GCP μΆ”μ²œ
μ•± ν˜ΈμŠ€νŒ… App Runner ~$18/μ›” Cloud Run ~$0/μ›” GCP
무료 ν¬λ ˆλ”§ $200 (μˆ¨μ€ λΉ„μš© 주의) $300 (μ•ˆμ „) GCP
LLM 무료 μ—†μŒ Gemini 1M tokens/μ›” GCP
μ›” 총 λΉ„μš© ~$24-28 ~$6-10 GCP

κ°œλ°œμ€ λ‘œμ»¬μ—μ„œ μ§„ν–‰ (λΉ„μš© $0), 데λͺ¨ 배포만 GCP Cloud Run μ‚¬μš© μΆ”μ²œ. λΉ λ₯Έ 데λͺ¨λ§Œ ν•„μš”ν•˜λ©΄ Hugging Face Spaces (무료)도 쒋은 λŒ€μ•ˆ.


ν”„λ‘œμ νŠΈ ꡬ쑰

Research_test/
β”œβ”€β”€ config/                     # μ„€μ •
β”‚   β”œβ”€β”€ settings.py             #   μ „μ—­ μ„€μ • (청크 크기, λͺ¨λΈ λ“±)
β”‚   └── models.py               #   LLM λͺ¨λΈ μ„€μ •
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ ingestion/              # λ¬Έμ„œ μˆ˜μ§‘
β”‚   β”‚   β”œβ”€β”€ loader.py           #   PDF/TXT λ‘œλ”
β”‚   β”‚   β”œβ”€β”€ chunker.py          #   μ‹œλ§¨ν‹± μ²­ν‚Ή
β”‚   β”‚   └── embedder.py         #   μž„λ² λ”© 생성
β”‚   β”œβ”€β”€ retrieval/              # 검색
β”‚   β”‚   β”œβ”€β”€ vector_store.py     #   ChromaDB 래퍼
β”‚   β”‚   β”œβ”€β”€ bm25_store.py       #   BM25 ν‚€μ›Œλ“œ 검색
β”‚   β”‚   β”œβ”€β”€ hybrid.py           #   ν•˜μ΄λΈŒλ¦¬λ“œ 검색 (RRF)
β”‚   β”‚   └── reranker.py         #   Cross-encoder λ¦¬λž­ν‚Ή
β”‚   β”œβ”€β”€ generation/             # λ‹΅λ³€ 생성
β”‚   β”‚   β”œβ”€β”€ llm_client.py       #   LiteLLM λ©€ν‹° λͺ¨λΈ 래퍼
β”‚   β”‚   β”œβ”€β”€ prompt.py           #   ν”„λ‘¬ν”„νŠΈ ν…œν”Œλ¦Ώ
β”‚   β”‚   └── pipeline.py         #   RAG μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜
β”‚   β”œβ”€β”€ evaluation/             # 평가 (3단계)
β”‚   β”‚   β”œβ”€β”€ ragas_metrics.py    #   RAGAS μ •λŸ‰ 평가
β”‚   β”‚   β”œβ”€β”€ llm_judge.py        #   LLM-as-a-Judge μ •μ„± 평가
β”‚   β”‚   β”œβ”€β”€ safety_metrics.py   #   DeepEval μ•ˆμ „μ„± 평가
β”‚   β”‚   β”œβ”€β”€ dataset.py          #   평가 데이터셋 관리
β”‚   β”‚   └── report.py           #   μ’…ν•© 비ꡐ 리포트
β”‚   └── ui/
β”‚       └── app.py              #   Streamlit 데λͺ¨ μ•±
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ documents/              # 원본 λ¬Έμ„œ
β”‚   β”œβ”€β”€ eval/                   # 평가 QA 데이터셋
β”‚   └── results/                # 평가 κ²°κ³Ό
β”œβ”€β”€ tests/                      # ν…ŒμŠ€νŠΈ
└── docs/                       # 상세 λ¬Έμ„œ

Quick Start

# 1. 클둠 및 μ„€μΉ˜
git clone <repo-url>
cd Research_test
pip install -e ".[dev]"

# 2. ν™˜κ²½λ³€μˆ˜ μ„€μ •
cp .env.example .env
# .env에 OPENAI_API_KEY, ANTHROPIC_API_KEY μž…λ ₯

# 3. λ¬Έμ„œ μ€€λΉ„
# data/documents/에 PDF/TXT 파일 배치

# 4. ν…ŒμŠ€νŠΈ
pytest tests/ -v

# 5. νŒŒμ΄ν”„λΌμΈ μ‹€ν–‰
python -m src.generation.pipeline --query "질문" --model "openai/gpt-4o-mini"

# 6. 평가 μ‹€ν–‰
python -m src.evaluation.metrics --dataset data/eval/qa_pairs.json --models all

# 7. UI μ‹€ν–‰
streamlit run src/ui/app.py

상세 λ¬Έμ„œ

λ¬Έμ„œ λ‚΄μš©
01-project-overview.md ν”„λ‘œμ νŠΈ κ°œμš”, μ•„ν‚€ν…μ²˜, λ²”μœ„
02-development-plan.md 단계별 개발 기획, μ„ΈλΆ€ νƒœμŠ€ν¬, μ‹€ν—˜ 섀계
03-requirements.md 기술 μŠ€νƒ, μ˜μ‘΄μ„±, API ν‚€, λΉ„μš© μΆ”μ •
04-research.md 기술 비ꡐ 뢄석 (ν”„λ ˆμž„μ›Œν¬, 벑터DB, μž„λ² λ”© λ“±)
05-cloud-deployment.md ν΄λΌμš°λ“œ 배포 비ꡐ (AWS vs GCP)
06-evaluation-methods.md RAG 평가 방법둠 심측 뢄석 (RAGAS, LLM-as-a-Judge)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors