项目简介
AiryLark 是一个开源的文档处理和翻译工具,本仓库是其后端 API 服务部分,基于 Next.js 构建。它提供了一系列 API 接口,用于文档的翻译流程,包括翻译前的规划、段落翻译、译文审校和质量评估等功能。虽然它不是一个完全标准的 Model Context Protocol (MCP) 服务器实现,但它体现了 MCP 服务器的核心思想,可以作为 LLM 应用的上下文服务后端,专注于文档翻译领域。
主要功能点
- 文档解析: 支持解析 Word (.docx) 文档,提取文本内容。
- 翻译规划: 根据输入文本分析文档类型、风格和专业领域,生成翻译规划,指导后续翻译流程。
- 段落翻译: 根据翻译规划,将文档段落翻译成目标语言。支持流式输出,实时展示翻译进度。
- 译文审校: 对翻译结果进行审校,提高翻译质量。支持流式输出,实时展示审校进度。
- 翻译质量评估: 评估翻译质量,提供评分和改进建议。
- API 接口: 提供 RESTful API 接口,方便集成到其他应用或 LLM 客户端。
安装步骤
-
克隆仓库
git clone https://github.com/wizd/airylark.git cd airylark -
安装依赖 使用 npm, yarn, pnpm 或 bun 安装依赖:
npm install # 或 yarn install # 或 pnpm install # 或 bun install -
配置环境变量 复制 '.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。
-
启动开发服务器
npm run dev # 或 yarn dev # 或 pnpm dev # 或 bun dev在浏览器中打开 'http://localhost:3030' 即可访问 AiryLark 应用界面。API 服务运行在配置的端口 (默认为 '3030')。
-
构建和启动生产服务器 (可选)
npm run build npm start -
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 接口的请求参数、响应格式和使用方法。
基本使用方法
- 启动 AiryLark 后端 API 服务。
- 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 文档。
- 客户端解析 API 响应,获取翻译结果、审校结果、质量评估报告等信息,并将其用于 LLM 应用的上下文增强或其他功能。
信息
分类
AI与计算