μ»΄ν¨ν° κ³Όν(CS) νμ΅μ μν AI λ©΄μ κ΄ λ° νΌλλ°± μμ§ Deadlock-AI νλ‘μ νΈμ ν΅μ¬ μ§λ₯ν μλΉμ€λ‘, μ¬μ©μμ μμ± λ΅λ³μ λΆμνμ¬ μ λ¬Έμ μΈ κΈ°μ νΌλλ°±μ μ 곡ν©λλ€.
- μλμ΄ κ°λ°μ νλ₯΄μλ: IT λκΈ°μ μλμ΄ κ°λ°μ 컨μ μ μ λ¬Έμ μ΄κ³ μΉκ·Όν νΌλλ°± μ 곡 (λ°λμ μ‘΄λλ§ μ¬μ©).
- μ λ° μ±μ μμ€ν : μ¬μ©μμ λ΅λ³κ³Ό κΈ°μ μ ν΅μ¬ κ°λ μ λΉκ΅νμ¬ 0~100μ μ¬μ΄μ μ μ μ°μΆ.
- ν€μλ λΆμ: λ΅λ³μμ λλ½λ ν΅μ¬ CS μ©μ΄λ₯Ό μλμΌλ‘ μΆμΆνμ¬ λ¦¬μ€νΈν.
- λ΅λ³ κ΅μ (Highlighting):
<highlight>νκ·Έλ₯Ό νμ©νμ¬ νλ‘ νΈμλμμ μ¦μ μκ°ν κ°λ₯ν κ΅μ λ΅λ³ μμ±.
- AI Model: Google Gemini 2.5 Flash (λλ 3.5 Flash)
- Environment: Google AI Studio (GUI Tuning μλ£)
- Output Format: Strict JSON Mode
μ¬μ©μμ λ΅λ³μ λΆμνκ³ κΈ°μ μ μ νλμ λ°λ₯Έ μ μμ νΌλλ°±μ λ°νν©λλ€.
Endpoint: POST /api/feedback/evaluate
| Field | Type | Description |
|---|---|---|
question |
String | λ©΄μ μ§λ¬Έ λ΄μ© |
user_answer |
String | μ¬μ©μκ° μμ±μΌλ‘ λ΅ν λ΄μ© (STT κ²°κ³Όλ¬Ό) |
model_answer |
String | (Optional) μ±μ κΈ°μ€μ΄ λλ λͺ¨λ² λ΅μ κ°μ΄λ |
{
"score": 85,
"missing_keywords": ["νλ‘μΈμ€ λ
립 λ©λͺ¨λ¦¬ 곡κ°", "μ€λ λ μμ 곡μ "],
"improved_answer": "-> νλ‘μΈμ€λ <highlight>λ
립λ λ©λͺ¨λ¦¬ 곡κ°</highlight>μ ν λΉλ°λ μ€ν λ¨μμ΄λ©°...",
"message": "ν΅μ¬μ μ μ§μΌμ
¨μ΄μ! μ‘°κΈλ§ λ 보μν΄ λ³ΌκΉμ? πͺ"
}- λμ ν
μ€νΈ λ λλ§:
improved_answerνλ λ΄μ ν¬ν¨λ<highlight>...</highlight>νκ·Έλ₯Ό νμ±νμ¬ νΉμ μμ(μ: Red λλ Orange)μΌλ‘ κ°μ‘° νμνλ λ‘μ§μ΄ νμν©λλ€. - νΌλλ°± μκ°ν: μλ΅λ°μ
scoreμmissing_keywordsλ°μ΄ν°λ₯Ό νμ©νμ¬ μ¬μ©μμ νμ΅ μ±μ·¨λλ₯Ό μκ°μ μΈ νλ‘κ·Έλ μ€ λ°λ 리μ€νΈ ννλ‘ ννν©λλ€. - λ°μ΄ν° λ§€ν: AI μλ΅ κ°μ²΄μ κ° νλλ₯Ό ν΄λΉ UI μ»΄ν¬λνΈ(μ μν, νΌλλ°± λ°μ€, μμ λ©μμ§ μΉΈ)μ μλμΌλ‘ λ§€ννμ¬ νλ©΄μ κ°±μ ν©λλ€.
보μμ μν΄ API ν€λ μμ€ μ½λμ μ§μ λ
ΈμΆνμ§ μμΌλ©°, .env νμΌμ μ μ₯νμ¬ κ΄λ¦¬ν©λλ€. νλ‘μ νΈ λ£¨νΈ λλ ν 리μ .env νμΌμ μμ±νκ³ μλ λ΄μ©μ μΆκ°νμΈμ.
# Google Gemini API Key
GEMINI_API_KEY=your-actual-gemini-api-key