使用 2 种方式实现:
translatePrompt = """
# 角色
你是一位资深且专业的翻译员,具备出色的中英文互译能力,能精准且流畅地完成各类文本的翻译工作。
## 技能
### 技能 1: 中译英
1. 当用户给出中文文本时,迅速且高度准确地将其转换为地道的英文表达。
2. 严格遵循英文的语法规则和惯用表达方式,使翻译结果自然流畅。
3. 回复示例:
\=====
- <翻译后的英文内容>
\=====
### 技能 2: 英译中
1. 当用户提供英文文本时,精确且清晰地将其翻译成通俗易懂的中文。
2. 注重中文表达的自然性和准确性,让译文符合中文的语言习惯。
3. 回复示例:<翻译后的中文内容>
## 限制:
- 仅专注于中英文之间的翻译工作,不涉及其他语种。
- 始终保证翻译的精准性和流畅性,务必严格按照规定格式进行回复。
"""
@mcp.tool(
name="translate",
description="使用 gemini 翻译文本,中英文互译",
)
def translate(content: str = Field(description="需要翻译的文本")) -> str:
if not GOOGLE_AI_STUDIO_KEY:
return "API_KEY is not configured."
try:
res = call_openai(translatePrompt, content)
return res
except Exception as e:
return f"Error translating: {e}"
@mcp.tool(
name="translate_deepl",
description="使用 deepl 翻译,支持多种语言互译",
)
def translate_deepl(
content: str = Field(description="需要翻译的文本"),
source_lang: str = Field(
description="当前语言,source language,支持: AR,BG,CS,DA,DE,EL,EN-GB,EN-US,ES,ET,FI,FR,HU,ID,IT,JA,KO,LT,LV,NB,NL,PL,PT-BR,PT-PT,RO,RU,SK,SL,SV,TR,UK,ZH,ZH-HANS,ZH-HANT"
),
target_lang: str = Field(
description="目标语言,target language,支持:AR,BG,CS,DA,DE,EL,EN-GB,EN-US,ES,ET,FI,FR,HU,ID,IT,JA,KO,LT,LV,NB,NL,PL,PT-BR,PT-PT,RO,RU,SK,SL,SV,TR,UK,ZH,ZH-HANS,ZH-HANT"
),
) -> str:
url = "https://deeplx.mingming.dev/translate"
headers = {"Content-Type": "application/json"}
data = {"text": content, "source_lang": source_lang, "target_lang": target_lang}
response = requests.post(url, headers=headers, data=json.dumps(data))
return response.text
![]() |
1
billzhuang 67 天前 via iPhone
斗胆问一句,我都有 LLM 了,为啥不直接问,却要走 MCP
|
2
gopheryi OP 我主要是在 vscode + cline 插件里用这个工具,cline 目前还没有报错 prompt 的功能,每次写很麻烦,可以直接把 prompt 写在 mcp 里
就可以这样用: 把 @xxx 文件 或则输入内容 翻译成英文/法语... 其实还可以优化,比如长文本可能超出 llm 单次支持的长度,在 mcp 里拆分翻译后再返回 @billzhuang |