高级
多语言AI智能体提示工程
跨文化语境保持与动态语言路由的高级策略。
24 分钟
GPT-4o
多语言AI智能体提示工程#
构建能在不同语言间无缝工作的AI智能体,需要的远不止翻译。本指南涵盖了保持语境和文化细微差别的高级策略。
多语言智能体的挑战#
传统方法之所以失败,是因为:
- 直接翻译会丢失语境和习语
- 文化引用无法传递
- 正式程度因语言而异
- 技术术语可能没有对应词
语言检测与路由#
动态语言检测#
from langdetect import detect
from typing import Literal
def detect_language(text: str) -> str:
"""检测输入文本的主要语言。"""
try:
lang = detect(text)
return lang
except:
return "en" # 默认使用英语
def route_to_agent(text: str, agents: dict):
"""将查询路由到相应的语言特定智能体。"""
lang = detect_language(text)
return agents.get(lang, agents["en"])多语言系统提示词#
SYSTEM_PROMPTS = {
"en": """You are a helpful assistant. Respond in English.
Use professional but friendly language.""",
"zh": """你是一个有帮助的助手。请用中文回答。
使用专业但友好的语言。注意使用恰当的敬语。""",
"ja": """あなたは親切なアシスタントです。日本語で回答してください。
丁寧語を使用し、適切な敬意を示してください。""",
"es": """Eres un asistente útil. Responde en español.
Usa un lenguaje profesional pero amigable."""
}语境保持策略#
语义锚定#
在翻译中保持含义:
def create_semantic_anchor(concept: str, languages: list) -> dict:
"""创建语义锚点,以实现跨语言的一致理解。"""
anchors = {}
for lang in languages:
# 生成语言特定的解释
anchors[lang] = generate_explanation(concept, lang)
return anchors
# 示例用法
technical_terms = {
"machine_learning": {
"en": "machine learning (ML) - computers learning from data",
"zh": "机器学习 (ML) - 计算机从数据中学习",
"ja": "機械学習 (ML) - コンピュータがデータから学習すること"
}
}文化语境层#
class CulturalContextManager:
def __init__(self):
self.cultural_norms = {
"en": {
"greeting": "Hello",
"formality": "casual",
"date_format": "MM/DD/YYYY",
"currency_symbol": "$"
},
"zh": {
"greeting": "您好",
"formality": "formal",
"date_format": "YYYY年MM月DD日",
"currency_symbol": "¥"
},
"ja": {
"greeting": "こんにちは",
"formality": "very_formal",
"date_format": "YYYY年MM月DD日",
"currency_symbol": "¥"
}
}
def adapt_response(self, response: str, source_lang: str, target_lang: str) -> str:
"""根据文化语境调整回复。"""
source_norms = self.cultural_norms[source_lang]
target_norms = self.cultural_norms[target_lang]
# 调整正式程度、日期格式等
adapted = self.adjust_formality(response, target_norms["formality"])
adapted = self.convert_date_format(adapted, target_norms["date_format"])
return adapted高级提示工程技术#
母语思维链#
def multilingual_cot_prompt(question: str, lang: str) -> str:
"""生成目标语言的思维链提示词。"""
cot_templates = {
"en": "Let's think step by step:\n1.",
"zh": "让我们一步一步思考:\n1.",
"ja": "順番に考えてみましょう:\n1."
}
return f"{question}\n\n{cot_templates.get(lang, cot_templates['en'])}"每种语言的少样本示例#
EXAMPLES = {
"en": [
{"input": "What's the weather?", "output": "I'd be happy to help! Could you tell me your location?"},
{"input": "Book a flight", "output": "I can help with that. What's your destination and travel dates?"}
],
"zh": [
{"input": "天气怎么样?", "output": "我很乐意帮助您!请问您在哪个城市?"},
{"input": "订机票", "output": "我可以帮您办理。请问您的目的地和出行日期是?"}
]
}处理混合语言输入#
语码转换检测#
import re
def detect_code_switching(text: str) -> bool:
"""检测文本是否包含多种语言(语码转换)。"""
# 简单启发式方法:检查混合文字
has_latin = bool(re.search(r'[a-zA-Z]', text))
has_cjk = bool(re.search(r'[\u4e00-\u9fff\u3040-\u309f\u30a0-\u30ff]', text))
has_arabic = bool(re.search(r'[\u0600-\u06ff]', text))
script_count = sum([has_latin, has_cjk, has_arabic])
return script_count > 1
def handle_mixed_input(text: str) -> str:
"""处理包含多种语言的输入。"""
if detect_code_switching(text):
# 使用主导语言回复
dominant_lang = get_dominant_language(text)
return f"[Responding in {dominant_lang}]"
return text最佳实践#
- 原生提示词:用目标语言编写系统提示词,而非翻译
- 文化敏感性:调整正式程度、敬语和表达方式
- 术语一致性:维护技术术语词汇表
- 用户偏好:允许用户设置语言偏好
- 回退策略:优雅地处理不支持的语言
测试多语言智能体#
def test_language_consistency(agent, test_cases: dict):
"""测试智能体是否以正确的语言回复。"""
for lang, queries in test_cases.items():
for query in queries:
response = agent.chat(query)
detected = detect_language(response)
assert detected == lang, f"Expected {lang}, got {detected}"