Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion service/summary.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import requests
import os
import re
import json
from config import settings
from pydantic import BaseModel, Field
from openai import OpenAI
Expand Down Expand Up @@ -54,6 +56,20 @@ class AssistantSummary(BaseModel):
summaries: Summaries
today_messages: List[Message]

def extract_plain_reply(messages: str) -> str:
# 코드블록(```json … ```) 제거
# ```json\n{ … }\n``` 형태를 찾는다
m = re.search(r"```json\s*(\{.*?\})\s*```", messages, re.DOTALL)
json_part = m.group(1) if m else messages

# JSON 문자열로 파싱
try:
obj = json.loads(json_part)
return obj.get("reply", json_part)
except json.JSONDecodeError:
# 파싱 실패 시, 그냥 텍스트로 돌려준다
return json_part.strip()


# 프롬프팅 반환
def user_prompt(response, userId) -> list[dict]:
Expand Down Expand Up @@ -115,7 +131,8 @@ def get_reply(response, userId) -> str:
messages=messages,
temperature=0.5,
)
return gpt_response.choices[0].message.content.strip()

return extract_plain_reply(gpt_response.choices[0].message.content.strip())


# 프론트에서 대답 time out으로 추천대화 get 요청
Expand Down