From bb785545f00fd3e366b8298c2b313b4d4a2cd9b4 Mon Sep 17 00:00:00 2001 From: sm4640 Date: Wed, 25 Mar 2026 20:03:30 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20[3.0.5]=20=EC=9A=94=EC=95=BD=20=ED=95=84?= =?UTF-8?q?=EB=93=9C=20=EB=B9=88=20=EA=B0=92=20=EB=B0=A9=EC=A7=80=20?= =?UTF-8?q?=E2=80=94=20=ED=94=84=EB=A1=AC=ED=94=84=ED=8A=B8=20=EA=B7=9C?= =?UTF-8?q?=EC=B9=99=20+=20fallback=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 프롬프트에 세 필드 모두 비어있지 않은 값 필수 규칙 추가 - 코드에서 빈 문자열일 경우 "(내용 없음)" fallback 처리 - Discord embed field value 빈 문자열 에러 방지 Co-Authored-By: Claude Opus 4.6 --- app/summarizer.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/summarizer.py b/app/summarizer.py index 4be2dd2..b17420a 100644 --- a/app/summarizer.py +++ b/app/summarizer.py @@ -17,6 +17,7 @@ SYSTEM_PROMPT = """너는 뉴스/경제 유튜브 영상을 시청하고 핵심 ## 규칙 - 반드시 위 JSON 형식으로만 응답. 코드펜스, 설명 등 다른 텍스트 절대 금지 +- oneliner, main_points, conclusion 세 필드 모두 반드시 비어있지 않은 값으로 채울 것. 절대 빈 문자열("") 금지 - 한국어로 작성 - main_points는 3~7개 불릿(•)으로 정리. 각 항목에 구체적인 수치, 종목명, 인물, 사건 등을 반드시 포함 - "~에 대해 이야기했다" 같은 메타 서술 금지. 내용 자체를 직접 전달 @@ -41,10 +42,11 @@ def summarize(transcript: str, title: str) -> dict: parsed = _parse_json_response(raw) + fallback = "(내용 없음)" return { - "oneliner": parsed.get("oneliner", ""), - "main_points": parsed.get("main_points", ""), - "conclusion": parsed.get("conclusion", ""), + "oneliner": parsed.get("oneliner") or fallback, + "main_points": parsed.get("main_points") or fallback, + "conclusion": parsed.get("conclusion") or fallback, }