capstone-backend / question_agent.py
dongchan21's picture
Upload 2 files
efc925f verified
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]
}