编程笔记

lifelong learning & practice makes perfect

AI周报20250516-写了个MCP翻译工具

开发一个MCP翻译工具

使用2种方式实现:

  1. 使用谷歌LLM gemini-2.0-flash 翻译

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    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}"
  2. 使用deepl api实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@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

自部署 DeepLX 满足日常翻译需求

免费的翻译服务 DeepL 翻译效果要远远好于微软和谷歌翻译,在 OpenAI 出现之前一直是备受推崇的 ( 注意,虽然但是,普通人还是比较难自己开通 OpenAI的API,参考我上上篇写到的经历)。

如果想在翻译软件中使用其API,或者自己的代码执行中调用其API来完成任务。就得注册账号并绑定信用卡。然后可以使用其免费的计划提供的API,每个月有50万 Token 的额度。

前往测试

1
2
3
4
5
6
7
curl --location 'https://deeplx.mingming.dev/translate' \
--header 'Content-Type: application/json' \
--data '{
"text": "免费,无限量翻译 API",
"source_lang": "zh",
"target_lang": "en"
}'

可参考教程在Chrome插件”沉浸式翻译”中使用该翻译api

  • 插件的设置里面打开开发者选项
  • 然后去翻译服务里面打开DeepLX(Beta),会提示你先设置,跳转到基本设置
  • 去基本设置里面你的URL https://api.deeplx.org//translate

这里我们设置为 https://deeplx.mingming.dev/ 即可,或使用自己部署链接

所有小初高、大学PDF教材

开源仓库 收集了各种教育资料,从幼儿园到小学、中学,大学、含毕业论文等,还涵盖学而思,万维,猿辅导等多个机构课程资料

项目的由来

虽然国内教育网站已提供免费资源,但大多数普通人获取信息的途径依然受限。有些人利用这一点,在淘宝上销售这些带有私人水印的资源。为了应对这种情况,我计划将这些资源集中并开源,以促进义务教育的普及和消除地区间的教育贫困。
还有一个最重要的原因是,希望海外华人能够让自己的孩子继续了解国内教育。

官方网站

国家中小学智慧教育平台,提供了大部分 小/初/高 教材的PDF文件

pdf

汽车新规来临,AEBS将强制安装!

近日,备受关注的强制性国家标准《轻型汽车自动紧急制动系统技术要求及试验方法》完成起草,进入公开征求意见阶段,该标准将替代现行国标GB/T 39901-2021,征求意见截止日期为2025年6月30日。

对比现行标准,该标准由推荐性转为强制性,且适用范围有所扩大,标准要求“M1和N1类汽车应装备自动紧急制动系统”。同时,该标准还增加了对行人目标、自行车目标、踏板式两轮摩托车目标等弱势交通参与者的识别能力考核,并新增仿真测试项目。这意味着,未来所有的乘用车必须安装自动紧急制动系统(简称“AEBS”)。

AEBS即主动刹车或者自动紧急制动系统,能够有效减少驾驶员走神、疲劳驾驶等原因引发的追尾、碰撞事故。在2023年,由于对AEBS的不同理解,还曾引发华为和小鹏汽车的“隔空论战”。(证券时报)

GitHub 加速终极教程

文章总结了 GitHub 加速的方案,主要通过设置 HTTP 和 SSH 代理来实现。HTTP 代理推荐使用 SOCKS5 协议,并配置 socks5h 以强制 DNS 解析也走代理。对于 SSH 代理,Linux 和 macOS 系统通过配置 ~/.ssh/config 文件,使用 nc 命令设置代理。Windows 系统则使用 Git 自带的 connect.exe 程序。文章还解答了关于 hostname 和端口选择的常见问题,并提到了通过 SwitchyOmega 等工具加速网页访问 GitHub 的方法。

ssh proxy vs http proxy

  1. 设置 Http Proxy
1
git config --global http.proxy socks5://127.0.0.1:7890

因为 git 底层使用 libcurl 发送 http 请求,而 libcurl 的代理使用 socks5:// 时会在本地解析 DNS,实际使用中我们希望 DNS 也在远程(也就是可以访问 google 的代理节点)解析,所以使用 socks5h ,即

1
git config --global http.proxy socks5h://127.0.0.1:7890

h 代表 host,包括了域名解析,即域名解析也强制走这个 proxy。另外不需要配置 https.proxy,这些 git server 都会配置 http redirect to https。

推荐使用 socks5 代理,因为 socks5 包含 http(s)。而且 socks5 代理工作在 osi 七层模型中的会话层(第五层),https/http 代理工作在 osi 七层模型的应用层(第七层), socks 代理更加底层。所以就没必要配置 git config –global http.proxy http://127.0.0.1:7890 了。

  1. 设置 SSH Proxy

配置文件在用户家目录下的 .ssh/config 其中 nc 程序位于 /usr/bin/nc

1
2
3
4
5
6
7
8
cat ~/.ssh/config

Host github.com
Hostname ssh.github.com
IdentityFile /xxx/.ssh/github_id_rsa
User git
Port 443
ProxyCommand nc -v -x 127.0.0.1:7890 %h %p

ACI.dev,解决 AI 调用外部工具时的复杂对接问题

这是一个专为 AI Agent 设计的开源基础设施平台,主要解决 AI 调用外部工具时的复杂对接问题。如果你想实现这个流程,你之前可能需要配置三个 MCP 服务:Hacker News 上获取热点新闻,然后在 Tavily 中找到对应的内容,然后通过 Gamil 发送到你的邮箱。

有了 ACI.dev 这个 MCP 中枢神器,你需要配置一个总的 ACI MCP 服务,然后把你想要的告诉它,它会自己帮你决策调用哪些 MCP 或者 API 完成你的任务。

开源地址:https://github.com/aipotheosis-labs/aci

它预置了 600 多种常见应用(如谷歌日历、Slack等)的标准化接口,开发者无需从头编写每个服务的授权流程和 API 调用代码。

你的 Agetn 只需接收一条指令,它就能在 600+ 工具中自动筛选出最合适的 API 组合来完成你下达的任务,无需逐个处理集成。

操作步骤

  1. 注册账号,在AppStore中国将需要的工具关联到账号
    aci,操作
    aci,操作
  2. 在客户端配置aci mcp或者aci网站 Playground试用
    aci,操作
  3. 以cline为例使用aci-mcp工具
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 参考文档 https://www.aci.dev/docs/mcp-servers/unified-server#cursor-and-windsurf
    // 这里后去api key: https://platform.aci.dev/project-setting , Default Agent的API KEY 或新建Project设置API KEY
    // LINKED_ACCOUNT_OWNER_ID就是第一步关联账号设置的账号id,我这里为admin
    {
    "mcpServers": {
    "aci-mcp-unified": {
    "command": "uvx",
    "args": ["aci-mcp", "unified-server", "--linked-account-owner-id", "<LINKED_ACCOUNT_OWNER_ID>"],
    "env": {
    "ACI_API_KEY": "<YOUR_ACI_API_KEY>"
    }
    }
    }
    }
    aci,操作

更多

https://github.com/yiGmMk/bookmark/releases

欢迎关注我的其它发布渠道

Related Issues not found

Please contact @yiGmMk to initialize the comment