File size: 1,506 Bytes
efc925f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from services.llm_service import generate_questions_from_context
from services.vector_service import search_similar_docs

# return type: dict
# example output: {"category": "์ƒํ’ˆ ์ถ”์ฒœ / ๋น„๊ต", "suggested_questions": ["ISA ๊ณ„์ขŒ๋Š” ๊ฐœ์ธ์ข…ํ•ฉ์ž์‚ฐ๊ด€๋ฆฌ๊ณ„์ขŒ๋กœ, ...", ..., "..."]}
def suggest_questions(user_message, user_profile):
    print(f"\n๐Ÿ” ์งˆ๋ฌธ ์ถ”์ฒœ ์‹œ์ž‘: '{user_message}'")
    
    # 1๏ธโƒฃ ๋ฒกํ„ฐ DB์—์„œ ์œ ์‚ฌ ๋ฌธ์„œ ๊ฒ€์ƒ‰
    similar_docs = search_similar_docs(user_message, top_k=5)
    print(f"๐Ÿ“š ๋ฒกํ„ฐ DB์—์„œ {len(similar_docs)}๊ฐœ ์œ ์‚ฌ ๋ฌธ์„œ ๊ฒ€์ƒ‰")
    
    if not similar_docs:
        print("โš ๏ธ ๋ฒกํ„ฐ DB์—์„œ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ")
        return {
            "category": "์ผ๋ฐ˜",
            "suggested_questions": [
                "์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฃผ์ œ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.",
                "๋‹ค๋ฅธ ๊ธˆ์œต ๊ด€๋ จ ์ฃผ์ œ๋กœ ์งˆ๋ฌธํ•ด์ฃผ์„ธ์š”."
            ]
        }
    
    # 2๏ธโƒฃ ๊ฒ€์ƒ‰๋œ ๋ฌธ์„œ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ LLM์ด ์งˆ๋ฌธ ์ƒ์„ฑ
    suggested_questions = generate_questions_from_context(
        user_message, 
        user_profile, 
        similar_docs
    )
    print(f"โœจ ๋ฒกํ„ฐ DB ๊ธฐ๋ฐ˜ ์งˆ๋ฌธ {len(suggested_questions)}๊ฐœ ์ƒ์„ฑ")
    for i, q in enumerate(suggested_questions, 1):
        print(f"  โœ… [{i}] {q}")

    return {
        "category": "์ƒํ’ˆ ์ถ”์ฒœ / ๋น„๊ต",
        "suggested_questions": suggested_questions[:3]
    }