Improve translation reliability and progress feedback
This commit is contained in:
parent
9439858b11
commit
51a6e845d1
20 changed files with 1194 additions and 216 deletions
|
|
@ -5,13 +5,21 @@
|
|||
|
||||
SYSTEM_PROMPT_PHASE1 = """\
|
||||
당신은 전문 번역가입니다. 사용자의 지시에 따라 원문을 도착 언어로 번역하고, \
|
||||
고유명사를 추출하며, 내용 요약을 작성하고, 문체를 분석합니다.\
|
||||
고유명사를 추출하며, 내용 요약을 작성하고, 문체를 분석합니다. 번역할 때 원문의 \
|
||||
주어와 목적어, 인칭, 시제, 양태, 높임 수준을 정확히 보존합니다.\
|
||||
"""
|
||||
|
||||
|
||||
def build_phase1_user_prompt(source_text: str, target_language: str) -> str:
|
||||
def build_phase1_user_prompt(
|
||||
source_text: str, source_language: str, target_language: str
|
||||
) -> str:
|
||||
source_instruction = (
|
||||
"원문의 언어를 자동으로 판단하고"
|
||||
if source_language == "auto"
|
||||
else f'원문이 "{source_language}"임을 전제로'
|
||||
)
|
||||
return f"""\
|
||||
다음 원문을 "{target_language}"으로 번역하세요.
|
||||
{source_instruction} 다음 원문을 "{target_language}"으로 번역하세요.
|
||||
|
||||
번역 결과를 반드시 아래 JSON 포맷으로만 반환하세요 (마크다운 코드 블록 없이 순수 JSON):
|
||||
|
||||
|
|
@ -44,13 +52,14 @@ SYSTEM_PROMPT_PHASE3 = """\
|
|||
|
||||
|
||||
def build_phase3_user_prompt(
|
||||
source_text: str,
|
||||
phase1_translated: str,
|
||||
proper_nouns: list[dict],
|
||||
style: str,
|
||||
target_language: str,
|
||||
) -> str:
|
||||
pn_lines = "\n".join(
|
||||
f" - {pn['original']} → {pn.get('final', pn.get('suggested', ''))}"
|
||||
f" - {pn['original']} → {pn.get('final') or pn.get('suggested', '')}"
|
||||
for pn in proper_nouns if pn.get("original") or pn.get("suggested")
|
||||
)
|
||||
|
||||
|
|
@ -65,10 +74,15 @@ def build_phase3_user_prompt(
|
|||
재번역 규칙:
|
||||
1. 위 고유명사 매핑을 반드시 준수하세요
|
||||
2. 지시된 문체에 맞게 어조를 조정하세요
|
||||
3. 초벌 번역의 의미는 유지하되 더 자연스럽고 정확히 다듬으세요
|
||||
3. 원문을 기준으로 초벌 번역의 누락이나 오역을 바로잡으세요
|
||||
4. 결과만 반환하세요 (설명 없이 번역문만)
|
||||
|
||||
초벌 번역:
|
||||
원문:
|
||||
---
|
||||
{source_text}
|
||||
---
|
||||
|
||||
초벌 번역 참고본:
|
||||
---
|
||||
{phase1_translated}
|
||||
---"""
|
||||
|
|
@ -78,7 +92,8 @@ def build_phase3_user_prompt(
|
|||
|
||||
SYSTEM_PROMPT_PHASE4 = """\
|
||||
당신은 "{target_language}" 원어민 편집자입니다. 제공된 번역문을 \
|
||||
"{target_language}" 화자에게 읽기 편하도록 다듬으세요.\
|
||||
"{target_language}" 화자에게 읽기 편하도록 다듬되, 번역문의 의미 관계와 \
|
||||
인칭, 시제, 양태, 높임 수준은 변경하지 마세요.\
|
||||
"""
|
||||
|
||||
|
||||
|
|
@ -86,9 +101,10 @@ def build_phase4_user_prompt(
|
|||
phase3_result: str,
|
||||
proper_nouns: list[dict],
|
||||
style: str,
|
||||
target_language: str,
|
||||
) -> str:
|
||||
pn_lines = "\n".join(
|
||||
f" - {pn['original']} → {pn.get('final', pn.get('suggested', ''))}"
|
||||
f" - {pn['original']} → {pn.get('final') or pn.get('suggested', '')}"
|
||||
for pn in proper_nouns if pn.get("original") or pn.get("suggested")
|
||||
)
|
||||
|
||||
|
|
@ -102,10 +118,12 @@ def build_phase4_user_prompt(
|
|||
|
||||
다듬기 규칙:
|
||||
1. 고유명사는 절대 변경하지 마세요
|
||||
2. 한국어 화자에게 자연스럽게 읽히도록 어순과 표현을 조정하세요
|
||||
2. {target_language} 화자에게 자연스럽게 읽히도록 어순과 표현을 조정하세요
|
||||
3. 문장은 간결하고 명확하게 다듬으세요
|
||||
4. 의미는 반드시 유지하세요
|
||||
5. 결과만 반환하세요 (설명 없이 번역문만)
|
||||
5. 주어와 목적어, 화자와 청자의 관계를 뒤바꾸지 마세요
|
||||
6. 인칭, 시제, 희망·추측 등의 양태와 높임 수준을 변경하지 마세요
|
||||
7. 결과만 반환하세요 (설명 없이 번역문만)
|
||||
|
||||
번역문:
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue