项目简介

AiryLark 是一个开源的文档处理和翻译工具,本仓库是其后端 API 服务部分,基于 Next.js 构建。它提供了一系列 API 接口,用于文档的翻译流程,包括翻译前的规划、段落翻译、译文审校和质量评估等功能。虽然它不是一个完全标准的 Model Context Protocol (MCP) 服务器实现,但它体现了 MCP 服务器的核心思想,可以作为 LLM 应用的上下文服务后端,专注于文档翻译领域。

主要功能点

  • 文档解析: 支持解析 Word (.docx) 文档,提取文本内容。
  • 翻译规划: 根据输入文本分析文档类型、风格和专业领域,生成翻译规划,指导后续翻译流程。
  • 段落翻译: 根据翻译规划,将文档段落翻译成目标语言。支持流式输出,实时展示翻译进度。
  • 译文审校: 对翻译结果进行审校,提高翻译质量。支持流式输出,实时展示审校进度。
  • 翻译质量评估: 评估翻译质量,提供评分和改进建议。
  • API 接口: 提供 RESTful API 接口,方便集成到其他应用或 LLM 客户端。

安装步骤

  1. 克隆仓库

    git clone https://github.com/wizd/airylark.git
    cd airylark
  2. 安装依赖 使用 npm, yarn, pnpm 或 bun 安装依赖:

    npm install
    # 或
    yarn install
    # 或
    pnpm install
    # 或
    bun install
  3. 配置环境变量 复制 '.env.local.example' 文件并重命名为 '.env.local',根据需要配置以下环境变量:

    PORT=3030 # 应用端口
    MCP_PORT=3031 # MCP服务器端口 (虽然不是标准MCP,但仍可配置端口)
    TRANSLATION_API_KEY=your_api_key # 翻译API密钥 (例如 DeepSeek API Key)
    TRANSLATION_MODEL=your_model # 使用的翻译模型 (例如 deepseek-ai/DeepSeek-V3)
    TRANSLATION_BASE_URL=your_base_url # 翻译API Base URL (例如 DeepSeek API Base URL)

    请替换 'your_api_key'、'your_model' 和 'your_base_url' 为您实际使用的 API 密钥、模型名称和 Base URL。

  4. 启动开发服务器

    npm run dev
    # 或
    yarn dev
    # 或
    pnpm dev
    # 或
    bun dev

    在浏览器中打开 'http://localhost:3030' 即可访问 AiryLark 应用界面。API 服务运行在配置的端口 (默认为 '3030')。

  5. 构建和启动生产服务器 (可选)

    npm run build
    npm start
  6. Docker 部署 (推荐)

    • 按照 'README.md' 中的 Docker 部署指南,使用 Docker 或 Docker Compose 部署 AiryLark 应用和 MCP 服务器 (实际上是API后端服务)。
    • 可以使用预构建的 Docker 镜像:'docker.io/wizdy/airylark:latest' 和 'docker.io/wizdy/airylark-mcp-server:latest'。
    • 通过 Docker Compose 可以一键启动应用和 API 后端服务。

服务器配置 (MCP客户端配置)

对于需要连接到 AiryLark 后端 API 服务的 MCP 客户端,您需要配置以下信息。请注意,这里虽然使用了 "MCP服务器" 的概念,但实际上客户端是与 AiryLark 提供的 HTTP API 进行交互,而非标准的 JSON-RPC MCP 协议。

{
  "serverName": "AiryLark Translation API",
  "command": "curl",  // 使用 curl 命令作为示例,实际应用中客户端应直接调用 API
  "args": [
    "http://localhost:3030/api/translation/{api_endpoint}", // API 基础 URL,需要替换 {api_endpoint} 为具体的 API 路径
    "-X", "POST",
    "-H", "Content-Type: application/json",
    "-d", "{request_body}" // 请求体,需要根据具体 API 接口构建 JSON 请求体
  ],
  "description": "AiryLark 文档翻译 API 服务,提供翻译规划、段落翻译和审校等功能。",
  "features": [
    "translation",
    "document_processing",
    "quality_evaluation"
  ],
  "baseUrl": "http://localhost:3030/api" // API 的基础 URL,方便客户端构建完整的 API 请求路径
}

参数注释:

  • 'serverName': 服务器名称,用于在客户端界面中标识 AiryLark 翻译 API 服务。
  • 'command': 示例命令,仅供参考。实际 MCP 客户端应直接集成 HTTP API 调用逻辑,无需使用 'curl' 命令。 这里使用 'curl' 仅为演示如何通过命令行调用 API。
  • 'args': 示例命令参数,仅供参考。
    • '"http://localhost:3030/api/translation/{api_endpoint}"': API 基础 URL,需要将 '{api_endpoint}' 替换为具体的 API 路径,例如 'plan' (翻译规划), 'segment' (段落翻译), 'review' (审校) 等。
    • '"-X", "POST"': 指定 HTTP 请求方法为 POST。
    • '"-H", "Content-Type: application/json"': 指定请求头 Content-Type 为 application/json,表明请求体是 JSON 格式。
    • '"-d", "{request_body}"': 请求体,需要根据具体的 API 接口,将 '{request_body}' 替换为 JSON 格式的请求数据。例如,翻译段落 API 需要包含 'segment' (文本段落) 和 'translationPlan' (翻译规划) 等字段。
  • 'description': 对 AiryLark 翻译 API 服务的简要描述,用于在客户端界面中展示。
  • 'features': 列出 AiryLark 翻译 API 服务提供的功能特性,例如 'translation', 'document_processing', 'quality_evaluation' 等,方便客户端理解服务能力。
  • 'baseUrl': API 的基础 URL,客户端可以基于此 URL 构建完整的 API 请求路径,例如 '/translation/plan', '/translation/segment' 等。

重要提示:

  • 非标准 MCP 协议: AiryLark 后端 API 服务并非严格意义上的 JSON-RPC MCP 服务器,而是基于 HTTP API 实现。MCP 客户端需要根据其 API 文档进行集成,而不是直接按照标准 MCP 协议进行通信。
  • 示例配置: 上述 'command' 和 'args' 配置仅为 示例,用于演示如何通过命令行调用 API。实际 MCP 客户端应 直接集成 HTTP API 调用逻辑,例如使用 JavaScript 的 'fetch' API 或其他 HTTP 客户端库。
  • API 文档: 为了更有效地使用 AiryLark 翻译 API 服务,MCP 客户端开发者需要参考仓库代码或联系项目维护者,获取更详细的 API 文档,了解每个 API 接口的请求参数、响应格式和使用方法。

基本使用方法

  1. 启动 AiryLark 后端 API 服务。
  2. MCP 客户端根据上述服务器配置信息,构建 HTTP 请求,调用 AiryLark 提供的 API 接口,例如:
    • 调用 '/api/translation/plan/stream' API 获取翻译规划 (流式输出)。
    • 调用 '/api/translation/segment/stream' API 翻译文本段落 (流式输出),需要传入翻译规划作为参数。
    • 调用 '/api/translation/review/stream' API 审校译文 (流式输出),需要传入翻译规划作为参数。
    • 调用 '/api/evaluate-translation' API 评估翻译质量。
    • 调用 '/api/parse-docx' API 解析 Word 文档。
  3. 客户端解析 API 响应,获取翻译结果、审校结果、质量评估报告等信息,并将其用于 LLM 应用的上下文增强或其他功能。

信息

分类

AI与计算