This commit is contained in:
beabigegg
2025-09-02 13:11:48 +08:00
parent a60d965317
commit b11a8272c4
76 changed files with 15321 additions and 200 deletions

View File

@@ -142,15 +142,43 @@ class DifyClient:
if not text.strip():
raise APIError("翻譯文字不能為空")
# 構建請求資料
# 構建標準翻譯 prompt英文指令格式
language_names = {
'zh-tw': 'Traditional Chinese',
'zh-cn': 'Simplified Chinese',
'en': 'English',
'ja': 'Japanese',
'ko': 'Korean',
'vi': 'Vietnamese',
'th': 'Thai',
'id': 'Indonesian',
'ms': 'Malay',
'es': 'Spanish',
'fr': 'French',
'de': 'German',
'ru': 'Russian',
'ar': 'Arabic'
}
source_lang_name = language_names.get(source_language, source_language)
target_lang_name = language_names.get(target_language, target_language)
query = f"""Task: Translate ONLY into {target_lang_name} from {source_lang_name}.
Rules:
- Output translation text ONLY (no source text, no notes, no questions, no language-detection remarks).
- Preserve original line breaks.
- Do NOT wrap in quotes or code blocks.
- Maintain original formatting and structure.
{text.strip()}"""
# 構建請求資料 - 使用成功版本的格式
request_data = {
'inputs': {
'text': text.strip(),
'source_language': source_language,
'target_language': target_language
},
'inputs': {},
'response_mode': 'blocking',
'user': f"user_{user_id}" if user_id else "anonymous"
'user': f"user_{user_id}" if user_id else "doc-translator-user",
'query': query
}
try:
@@ -162,10 +190,10 @@ class DifyClient:
job_id=job_id
)
# 從響應中提取翻譯結果
answer = response.get('answer', '')
# 從響應中提取翻譯結果 - 使用成功版本的方式
answer = response.get('answer')
if not answer:
if not isinstance(answer, str) or not answer.strip():
raise APIError("Dify API 返回空的翻譯結果")
return {