云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

免费利用mcp规模化自动下载高质量论文,并自动形成MD语料库

jxf315 2025-05-28 18:07:21 教程文章 13 ℃

1、安装uv

UV是由Astral公司(Rust工具Ruff的开发者)推出的高性能Python包管理工具,基于Rust编写,旨在替代传统的pip和pip-tools。其核心优势在于极快的速度(比pip快10-100倍)、轻量级设计(仅几十MB)以及现代化的依赖管理(支持pyproject.toml和uv.lock文件)。UV集成了虚拟环境管理、Python版本控制、依赖解析等功能,目标是成为类似Rust Cargo的全能工具,简化Python开发流程。

执行安装命令,如:pip install uv

安装后,uv会被添加到系统环境变量,即使切换虚拟环境也能使用。

安装后验证:uv --version

若正确显示,则类似:uv 0.6.11 (0632e24d1 2025-03-30)

2、安装arxiv-mcp-server

uv tool install arxiv-mcp-server

3、在Trae/Cursor/Cherry Studio等工具中安装arxiv-mcp-server

在此以Trae为例,都差不多


{
    "mcpServers": {
          "arxiv-mcp-server": {
                "command": "uv",
                "args": [
                      "tool",
                      "run",
                      "arxiv-mcp-server",
                      "--storage-path", "d:/dev/note/down(更换为你自己的文件存储路径)"
                ]
          }
    }
}


4、Trae中调用arxiv-mcp-server

输入:搜索并下载最新的5篇设备在线监测诊断的论文,记得需要选取“@Builder with MCP”

下载结果,含原文pdf及解析的md文件(英文)


5、Trae中实现自动翻译生产的英文论文MD文件

使用Trae自动编写自动翻译脚本,实现md英文翻译为中文

translate_md.py

import os
import re
from googletrans import Translator


def translate_markdown(input_path, output_path):
    translator = Translator()
   
    with open(input_path, 'r', encoding='utf-8') as f:
        content = f.read()
   
    # 分割Markdown内容为段落
    paragraphs = re.split(r'(\n\n|^\n)', content)
   
    translated_paragraphs = []
    for para in paragraphs:
        if para.strip():
            try:
                translated = translator.translate(para, src='en', dest='zh-cn').text
                translated_paragraphs.append(translated)
            except:
                translated_paragraphs.append(para)
        else:
            translated_paragraphs.append(para)
   
    with open(output_path, 'w', encoding='utf-8') as f:
        f.write(''.join(translated_paragraphs))


def main():
    input_dir = os.path.join(os.path.dirname(__file__), 'down')
    output_dir = os.path.join(os.path.dirname(__file__), 'down_zh')
   
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
   
    for filename in os.listdir(input_dir):
        if filename.endswith('.md'):
            input_path = os.path.join(input_dir, filename)
            output_path = os.path.join(output_dir, f"{os.path.splitext(filename)[0]}_zh.md")
            translate_markdown(input_path, output_path)
            print(f"Translated {filename} to {os.path.basename(output_path)}")


if __name__ == '__main__':
    main()


Tags:

最近发表
标签列表