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| κ²½λ‘ | μ€λͺ |
|---|---|
POST /api/intent |
μλ λΆμ + μ΄λ²€νΈ λ°ν |
POST /api/transfer |
μ‘κΈ μν (λλ―Έ) |
POST /api/auth |
μ¬μ©μ μΈμ¦ λͺ¨νΉ |
POST /api/log |
λ‘κ·Έ μ μ₯ (JSON νμΌ) |
GET /api/healthcheck |
μμ€ν μν νμΈ |
-
κ²μ¦ λͺ©ν: μμ± μ λ ₯μ λν΄ μ νν ν μ€νΈ λ³ν μν μ¬λΆ νμΈ
-
νκ° μ§ν:
WER (Word Error Rate) -
WER κ³μ° λ°©μ: WER = (Substitutions + Insertions + Deletions) / Total Words
-
- μμ:
| μ€μ λ¬Έμ₯ | STT κ²°κ³Ό | WER |
|---|---|---|
| μλ§νν μ€λ§μ 보λ΄μ€ | μλ§ νν 5λ§ μ λ³΄λ΄ μ€ | 0% (κ±°μ μ ν) |
- κ²μ¦ λͺ©ν: μ¬μ©μμ μλλ₯Ό μ νν λΆλ₯νκ³ , μ¬λ‘―μ μΆμΆνλ λ₯λ ₯ νκ°
- νκ° μ§ν:
- Intent: Accuracy
- Slot: Precision / Recall / F1-score
μμ λ°μ΄ν°:
{
"text": "μλΉ νν
λ§μ 보λ΄μ€",
"intent": "transfer",
"slots": {
"recipient": "μλΉ ",
"amount": "10000"
}
}- κ²μ¦ λͺ©ν: μ¬μ©μ-μμ€ν κ° λν νλ¦κ³Ό μ‘κΈ μμ²/μλ΅μ μ νν κΈ°λ‘νκ³ κ΄λ¦¬
- λ‘κ·Έ μ ν©μ± (λλ½λ νλ μμ)
- λν νλ¦ μΆμ κ°λ₯ μ¬λΆ
- κ²μ μ νλ (νΉμ 쑰건 κ±°λ νν°λ§ λ±)
{
"timestamp": "2025-04-06T10:00:00Z",
"text": "μλ§νν
3λ§μ 보λ΄μ€",
"intent": "transfer",
"slots": {
"recipient": "μλ§",
"amount": 30000
},
"authenticated": true,
"transfer_status": "success"
}- κ²μ¦ λͺ©ν: λΉμ μ/μμ¬ κ±°λ νμ§ μ νλ μΈ‘μ
- μ¬μ© λ°μ΄ν°: IEEE-CIS Fraud Detection Dataset (Kaggle)
-
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μ κ°κΉμΈμλ‘ μ±λ₯ μ°μ