fix(debate): topic_slug 및 title 길이 제한, 사회자 프롬프트에서 상대 전문 중계 제거

This commit is contained in:
2026-03-20 07:11:50 +09:00
parent e8dfdd97ce
commit 87d534cfcc

View File

@@ -77,8 +77,10 @@ class DebateHandler:
try: try:
from tools.wiki_client import WikiClient from tools.wiki_client import WikiClient
slug = WikiClient.slugify(topic) slug = WikiClient.slugify(topic)
if len(slug) > 80:
slug = slug[:80].rstrip("-")
except Exception: except Exception:
slug = topic[:15].replace(" ", "-").lower() slug = topic[:20].replace(" ", "-").lower()
self.session = DebateSession( self.session = DebateSession(
topic=topic, topic_slug=slug, topic=topic, topic_slug=slug,
@@ -347,13 +349,12 @@ class DebateHandler:
## 지시 ## 지시
발언자({speaker})에게 보낼 메시지를 작성하세요. 발언자({speaker})에게 보낼 메시지를 작성하세요.
1. 상대 발언이 있으면 **전문 포함** (요약 금지) 1. 사용자의 판단이 있으면 맥락 설명
2. 사용자의 판단이 있으면 맥락 설명 2. 상대방의 최근 발언을 바탕으로 오류/허점 확인 + 개선 방향 지시
3. 오류/허점 확인 + 개선 방향 3. 핵심 쟁점 방향
4. 핵심 쟁점 방향 제시 4. 첫 발언이면 주제 설명 + 자유 의견 안내
5. 첫 발언이면 주제 설명 + 자유 의견 안내 5. **답변은 전문으로 response.md에 작성하라고 안내**
6. **답변은 response.md에 작성하라고 안내** 6. **진행 상황과 상대측 의견 내용은 wiki/working_document.md를 참고하라고 안내 (상대방 전문 중계 금지)**
7. **참고할 합의 사항은 wiki/working_document.md에 있다고 안내**
(사회자 메시지만 출력) (사회자 메시지만 출력)
""" """
@@ -537,6 +538,8 @@ class DebateHandler:
async def _wiki_upsert(self, path: str, title: str, content: str): async def _wiki_upsert(self, path: str, title: str, content: str):
"""Wiki.js에 페이지 upsert.""" """Wiki.js에 페이지 upsert."""
if len(title) > 200:
title = title[:197] + "..."
try: try:
from tools.wiki_client import WikiClient from tools.wiki_client import WikiClient
client = WikiClient() client = WikiClient()
@@ -571,12 +574,10 @@ class DebateHandler:
prev = [h for h in self.session.history if h["speaker"] != "user"] prev = [h for h in self.session.history if h["speaker"] != "user"]
if prev: if prev:
last = prev[-1] parts.append("\n---\n상대방의 의견에 대한 오류를 확인하고 개선점을 지적하세요.")
parts.append(f"### 상대방({last['speaker']})의 발언:\n{last['content']}")
parts.append("\n---\n오류를 확인하고 개선점을 지적하세요.")
else: else:
parts.append("첫 번째 발언자입니다. 주제에 대해 의견을 제시하세요.") parts.append("첫 번째 발언자입니다. 주제에 대해 의견을 제시하세요.")
parts.append("\n\n**답변은 response.md에 작성하세요.**") parts.append("\n\n**답변은 response.md에 전문으로 작성하세요.**")
parts.append("**합의 사항은 wiki/working_document.md를 참고하세요.**") parts.append("**상대방의 의견 내용과 합의 사항은 wiki/working_document.md를 참고하세요.**")
return "\n".join(parts) return "\n".join(parts)