跳到主要内容

实时翻译

大语言模型在翻译任务上表现出色,能够理解上下文、保持语义连贯,并处理复杂的语言现象。

LLM 翻译的优势

对比传统翻译

特性传统 NMTLLM 翻译
上下文理解有限强大
领域适应需要专门训练提示词即可
风格控制困难简单
术语一致性需要词典可通过提示词指定
创意翻译较弱

LLM 翻译能做到

  • 理解复杂句式和隐含含义
  • 保持文风和语气
  • 处理俚语和文化特定表达
  • 根据指令调整翻译风格
  • 保持专业术语一致性

基础翻译实现

简单翻译

from openai import OpenAI

client = OpenAI(api_key="your-api-key", base_url="https://api.weelinking.com/v1")

def translate(text, source_lang="auto", target_lang="中文"):
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": f"你是一个专业翻译,将文本翻译成{target_lang}。只输出翻译结果,不要解释。"
},
{
"role": "user",
"content": text
}
],
temperature=0.3
)
return response.choices[0].message.content

# 使用示例
result = translate("Hello, how are you today?")
print(result) # 你好,今天怎么样?

高质量翻译

def professional_translate(text, source_lang, target_lang, context=None, style=None, glossary=None):
system_prompt = f"""你是一位专业的{source_lang}{target_lang}翻译专家。

## 翻译要求
- 准确传达原文含义
- 保持语言流畅自然
- 符合目标语言的表达习惯"""

if context:
system_prompt += f"\n\n## 背景信息\n{context}"

if style:
system_prompt += f"\n\n## 风格要求\n{style}"

if glossary:
system_prompt += f"\n\n## 术语表(必须使用指定翻译)\n"
for term, trans in glossary.items():
system_prompt += f"- {term}{trans}\n"

system_prompt += "\n\n只输出翻译结果,不要添加任何解释。"

response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": text}
],
temperature=0.3
)

return response.choices[0].message.content

# 使用示例
result = professional_translate(
text="The API endpoint has been deprecated.",
source_lang="英文",
target_lang="中文",
context="技术文档,面向开发者",
style="正式、专业",
glossary={
"API": "API",
"endpoint": "端点",
"deprecated": "已弃用"
}
)

高级功能

1. 流式翻译

实时输出翻译结果:

def stream_translate(text, target_lang="中文"):
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": f"将文本翻译成{target_lang}。只输出翻译结果。"
},
{"role": "user", "content": text}
],
stream=True
)

for chunk in stream:
if chunk.choices[0].delta.content:
yield chunk.choices[0].delta.content

# 使用示例
for char in stream_translate("This is a long document..."):
print(char, end="", flush=True)

2. 批量翻译

import asyncio
from openai import AsyncOpenAI

async_client = AsyncOpenAI(api_key="your-api-key", base_url="https://api.weelinking.com/v1")

async def translate_batch(texts, target_lang="中文"):
async def translate_one(text):
response = await async_client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": f"翻译成{target_lang},只输出结果。"},
{"role": "user", "content": text}
]
)
return response.choices[0].message.content

tasks = [translate_one(text) for text in texts]
return await asyncio.gather(*tasks)

# 使用示例
texts = ["Hello", "World", "How are you?"]
results = asyncio.run(translate_batch(texts))

3. 文档翻译

保持格式的文档翻译:

def translate_document(document, target_lang="中文"):
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": f"""你是一位专业的文档翻译专家。
请将文档翻译成{target_lang}

要求:
1. 保持原有的 Markdown 格式
2. 保持代码块不变
3. 保持链接格式
4. 保持标题层级结构"""
},
{"role": "user", "content": document}
],
temperature=0.3
)
return response.choices[0].message.content

4. 双语对照

def bilingual_translate(text, source_lang="英文", target_lang="中文"):
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": f"""将{source_lang}文本翻译成{target_lang},并输出双语对照格式。

格式:
原文:[原文]
译文:[译文]

逐段对照输出。"""
},
{"role": "user", "content": text}
]
)
return response.choices[0].message.content

特殊场景处理

1. 技术文档翻译

tech_glossary = {
"machine learning": "机器学习",
"neural network": "神经网络",
"API": "API",
"SDK": "SDK",
"backend": "后端",
"frontend": "前端"
}

result = professional_translate(
text=tech_doc,
source_lang="英文",
target_lang="中文",
context="技术文档",
glossary=tech_glossary
)

2. 文学翻译

result = professional_translate(
text=novel_chapter,
source_lang="英文",
target_lang="中文",
style="文学性强,保持原作风格,人名地名音译"
)

3. 商务翻译

result = professional_translate(
text=business_email,
source_lang="英文",
target_lang="中文",
style="正式、礼貌、专业,保持商务礼仪"
)

质量评估

翻译评估提示词

def evaluate_translation(source, translation, source_lang, target_lang):
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": """你是翻译质量评估专家。请从以下维度评分(1-10):
1. 准确性:含义是否准确传达
2. 流畅性:目标语言是否自然
3. 风格:是否保持原文风格
4. 术语:专业术语是否正确

返回 JSON 格式:
{"accuracy": X, "fluency": X, "style": X, "terminology": X, "overall": X, "issues": []}"""
},
{
"role": "user",
"content": f"原文({source_lang}):\n{source}\n\n译文({target_lang}):\n{translation}"
}
],
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)

最佳实践

  1. 使用术语表: 保持专业术语一致
  2. 提供上下文: 帮助模型理解背景
  3. 指定风格: 明确翻译风格要求
  4. 分段翻译: 长文档分段处理
  5. 质量检查: 重要内容人工复核