diff --git a/bots/bot.py b/bots/bot.py
index 377eb0b..6f766d2 100644
--- a/bots/bot.py
+++ b/bots/bot.py
@@ -74,12 +74,17 @@ async def on_message_activity(self, turn_context: TurnContext):
turn_context.activity.text = turn_context.activity.text.split("Francis 봇")[1].strip()
else:
turn_context.activity.text = turn_context.activity.text
- ai_parsed_category = await openai_helper.get_parsed_question_category(turn_context.activity.text)
+ try:
+ ai_parsed_category = await openai_helper.get_parsed_question_category(turn_context.activity.text)
+ except Exception as e:
+ ai_parsed_category = None
+ ai_parsed_error = f"{str(e)}"
if turn_context.activity.text == "openaikey":
await turn_context.send_activity(
textwrap.dedent(
f"""\
- 현재 OpenAI API key는 {openai_helper.openai.api_key}입니다."""
+ 현재 OpenAI API key는 {openai_helper.openai.api_key}입니다.
+
{ai_parsed_error}"""
)
)
if ai_parsed_category and ai_parsed_category["category"] == 0:
diff --git a/utils/openai_helper.py b/utils/openai_helper.py
index 3ea6f63..e8eab07 100644
--- a/utils/openai_helper.py
+++ b/utils/openai_helper.py
@@ -40,34 +40,31 @@ async def get_parsed_question_for_meeting_schedule(user_input) -> dict:
async def get_parsed_question_category(user_input) -> dict | None:
- try:
- response = openai.ChatCompletion.create(
- model="gpt-3.5-turbo",
- messages=[
- {
- "role": "user",
- "content": f"""
- 사용자 input 의 summary를 추출해서 ---로 구분된 카테고리중에 골라서 번호를 int 타입의 "category" key로,
- summary를 str 타입의 "summary" key로 만들어서 JSON 타입으로 리턴해줘
- ---
- 명령어 도움 요청: 0
- 미팅룸 확인, 예약: 1
- 유저 출근/재택 확인: 2
- 생일 축하에 대한 감사: 3
- 나머지 질문이나 요청: 98
- 리셋, 로그아웃: 99
- ---
- 사용자 질문: {user_input}
- 예시1: {{"category": 98, "summary": "고달픈 인생에 대한 질문"}}
- 예시2: {{"category": 98, "summary": "얼룩말 색깔 변경 요청"}}
- """,
- },
- ],
- timeout=30,
- )
- return json.loads(response["choices"][0]["message"]["content"])
- except Exception:
- return None
+ response = openai.ChatCompletion.create(
+ model="gpt-3.5-turbo",
+ messages=[
+ {
+ "role": "user",
+ "content": f"""
+ 사용자 input 의 summary를 추출해서 ---로 구분된 카테고리중에 골라서 번호를 int 타입의 "category" key로,
+ summary를 str 타입의 "summary" key로 만들어서 JSON 타입으로 리턴해줘
+ ---
+ 명령어 도움 요청: 0
+ 미팅룸 확인, 예약: 1
+ 유저 출근/재택 확인: 2
+ 생일 축하에 대한 감사: 3
+ 나머지 질문이나 요청: 98
+ 리셋, 로그아웃: 99
+ ---
+ 사용자 질문: {user_input}
+ 예시1: {{"category": 98, "summary": "고달픈 인생에 대한 질문"}}
+ 예시2: {{"category": 98, "summary": "얼룩말 색깔 변경 요청"}}
+ """,
+ },
+ ],
+ timeout=30,
+ )
+ return json.loads(response["choices"][0]["message"]["content"])
async def gen_answer(user_input) -> str | None: