使用 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 148 天前 via iPhone 斗胆问一句,我都有 LLM 了,为啥不直接问,却要走 MCP |
2 gopheryi OP 我主要是在 vscode + cline 插件里用这个工具,cline 目前还没有报错 prompt 的功能,每次写很麻烦,可以直接把 prompt 写在 mcp 里 就可以这样用: 把 @xxx 文件 或则输入内容 翻译成英文/法语... 其实还可以优化,比如长文本可能超出 llm 单次支持的长度,在 mcp 里拆分翻译后再返回 @billzhuang |