Skip to content

Latest commit

Β 

History

History
128 lines (92 loc) Β· 3.56 KB

File metadata and controls

128 lines (92 loc) Β· 3.56 KB

🧠 MCP_Voice_Transfer - Backend System

πŸ“¦ ꡬ쑰 κ°œμš”

backend/
β”œβ”€β”€ auth/              # 인증 λͺ¨λ“ˆ (μ§€λ¬Έ/μŒμ„± λͺ¨ν‚Ή λ“±)
β”œβ”€β”€ data/              # κ³„μ’Œ, 둜그 λ“± JSON μ €μž₯
β”œβ”€β”€ event/             # Redis Pub/Sub 처리
β”œβ”€β”€ fds/               # μ΄μƒκ±°λž˜ 탐지
β”œβ”€β”€ gateway/           # FastAPI Gateway + router
β”œβ”€β”€ llm/               # Intent 뢄석 + gRPC client
β”œβ”€β”€ proto/             # gRPC λ©”μ‹œμ§€ μ •μ˜ 및 컴파일
β”œβ”€β”€ shared/            # 곡톡 μœ ν‹Έ, 둜거 λ“±
β”œβ”€β”€ transfer/          # μ†‘κΈˆ 처리 둜직
β”œβ”€β”€ requirements.txt   # μ˜μ‘΄μ„± λͺ…μ„Έ
└── docker-compose.yml # 전체 μ„œλΉ„μŠ€ μ‹€ν–‰

βœ… 싀행법 (둜컬 개발 κΈ°μ€€)

# μ˜μ‘΄μ„± μ„€μΉ˜
pip install -r requirements.txt

# 각 μ„œλΉ„μŠ€λ³„ μ‹€ν–‰ (예: gateway)
cd backend/gateway
uvicorn main:app --reload --port 8000

# λ˜λŠ” 전체 μ‹€ν–‰
docker-compose up --build

🌐 μ£Όμš” API

경둜 μ„€λͺ…
POST /api/intent μ˜λ„ 뢄석 + 이벀트 λ°œν–‰
POST /api/transfer μ†‘κΈˆ μˆ˜ν–‰ (더미)
POST /api/auth μ‚¬μš©μž 인증 λͺ¨ν‚Ή
POST /api/log 둜그 μ €μž₯ (JSON 파일)
GET /api/healthcheck μ‹œμŠ€ν…œ μƒνƒœ 확인

2. λͺ¨λΈ μ„±λŠ₯ 검증

1. STT λͺ¨λ“ˆ (μŒμ„± β†’ ν…μŠ€νŠΈ λ³€ν™˜)

  • 검증 λͺ©ν‘œ: μŒμ„± μž…λ ₯에 λŒ€ν•΄ μ •ν™•ν•œ ν…μŠ€νŠΈ λ³€ν™˜ μˆ˜ν–‰ μ—¬λΆ€ 확인

  • 평가 μ§€ν‘œ: WER (Word Error Rate)

  • WER 계산 방식: WER = (Substitutions + Insertions + Deletions) / Total Words

    • μ˜ˆμ‹œ:
μ‹€μ œ λ¬Έμž₯ STT κ²°κ³Ό WER
μ—„λ§ˆν•œν…Œ μ˜€λ§Œμ› λ³΄λ‚΄μ€˜ μ—„λ§ˆ ν•œν…Œ 5만 원 보내 쀘 0% (거의 μ •ν™•)

2. NLU (Intent / Slot 뢄석)

  • 검증 λͺ©ν‘œ: μ‚¬μš©μžμ˜ μ˜λ„λ₯Ό μ •ν™•νžˆ λΆ„λ₯˜ν•˜κ³ , μŠ¬λ‘―μ„ μΆ”μΆœν•˜λŠ” λŠ₯λ ₯ 평가
  • 평가 μ§€ν‘œ:
  • Intent: Accuracy
  • Slot: Precision / Recall / F1-score

μ˜ˆμ‹œ 데이터:

{
  "text": "μ•„λΉ ν•œν…Œ λ§Œμ› λ³΄λ‚΄μ€˜",
  "intent": "transfer",
  "slots": {
    "recipient": "μ•„λΉ ",
    "amount": "10000"
  }
}

3. μŒμ„± 둜그 데이터 처리

  • 검증 λͺ©ν‘œ: μ‚¬μš©μž-μ‹œμŠ€ν…œ κ°„ λŒ€ν™” 흐름과 μ†‘κΈˆ μš”μ²­/응닡을 μ •ν™•νžˆ κΈ°λ‘ν•˜κ³  관리

검증 ν•­λͺ©

  • 둜그 μ •ν•©μ„± (λˆ„λ½λœ ν•„λ“œ μ—†μŒ)
  • λŒ€ν™” 흐름 좔적 κ°€λŠ₯ μ—¬λΆ€
  • 검색 정확도 (νŠΉμ • 쑰건 거래 필터링 λ“±)

μ˜ˆμ‹œ 둜그 ꡬ쑰 (JSON)

{
  "timestamp": "2025-04-06T10:00:00Z",
  "text": "μ—„λ§ˆν•œν…Œ 3λ§Œμ› λ³΄λ‚΄μ€˜",
  "intent": "transfer",
  "slots": {
    "recipient": "μ—„λ§ˆ",
    "amount": 30000
  },
  "authenticated": true,
  "transfer_status": "success"
}

4. μ΄μƒκ±°λž˜ 탐지 μ‹œμŠ€ν…œ

평가 μ§€ν‘œ

  • Precision: νƒμ§€λœ 거래 쀑 μ‹€μ œ μ΄μƒκ±°λž˜μΌ ν™•λ₯ 
    β†’ Precision = TP / (TP + FP)

  • Recall: 전체 μ΄μƒκ±°λž˜ 쀑 λͺ¨λΈμ΄ νƒμ§€ν•œ λΉ„μœ¨
    β†’ Recall = TP / (TP + FN)

  • F1-score: Precisionκ³Ό Recall의 μ‘°ν™” 평균
    β†’ F1 = 2 * (Precision * Recall) / (Precision + Recall)

  • AUC (Area Under Curve): ROC 곑선 μ•„λž˜ 면적, 전체 λΆ„λ₯˜ μ„±λŠ₯ μ§€ν‘œ
    β†’ 1에 κ°€κΉŒμšΈμˆ˜λ‘ μ„±λŠ₯ 우수