在软件开发中,开发者们普遍面临一个棘手挑战:现有代码功能完善,但语言不符合项目要求,例如将 Python 服务迁移到 Go,或将 JavaScript 工具重写为 TypeScript。尝试使用 ChatGPT 等通用大型语言模型进行翻译,往往结果差强人意,经常出现导入错误、缺失错误处理,或代码风格不符合规范,难以通过代码审查。
为了解决这一痛点,一位开发者独自构建了 Transpiler.us。Transpiler.us 是一个专为代码翻译设计的AI工具,而非简单地在通用聊天机器人上叠加翻译功能。它从底层设计出发,旨在为27种编程语言生成生产级别的代码输出,确保正确的导入、完整的错误处理以及符合目标语言习惯的编程模式,而非仅仅进行语法替换。
除了核心的代码翻译功能,Transpiler.us 平台还提供了一系列辅助工具,进一步提升开发效率:
- AI 代码审查器:提供结构化的反馈,涵盖代码缺陷、安全漏洞、性能优化及代码风格建议。
- GitHub 集成:通过 OAuth 直接将翻译后的代码推送至任何 GitHub 仓库。
- JSON/YAML 格式化器:用于验证、格式化以及在 JSON 和 YAML 格式之间进行转换。
- 正则表达式测试器:提供实时模式匹配功能,并支持命名捕获组。
- CLI 工具:通过 npm 上的 `code-translator-ai` 包,可在终端和自动化管道中使用。
该项目的技术栈注重简洁高效,便于独立开发:
- 前端:采用 React + Vite + TailwindCSS 组合,部署在 Vercel。
- 后端:使用 Express + TypeScript 构建,部署在 Railway。
- AI 模型:核心翻译能力由 Together AI API 提供的 Llama 3.3 70B 模型驱动。选择 Llama 3.3 70B 是经过深思熟虑的,因为它在测试中持续生成最简洁、高质量的翻译,尤其是在 Rust 到 Zig 或 COBOL 到 Java 等不常见语言对方面表现出色。
- 支付:通过 Stripe 实现积分包和每月20美元的 Pro 订阅服务。
- 身份验证:GitHub OAuth 用于仓库集成。
实现高质量代码翻译的关键并非简单地将代码发送给 LLM,然后返回结果。这种“朴素”的方法大约有30%的时间会产生不可用的代码。真正有效的方法是在提示(prompt)中明确指定目标语言的“良好”标准,并对输出结构进行严格定义,以确保其能够被可靠地解析。Transpiler.us 采用的系统提示正是基于这一原则,确保了翻译结果的准确性和可用性。以下是该翻译器使用的实际系统提示范例:
function buildSystemPrompt(
source: Language,
target: Language,
preserveComments: boolean,
addExplanations: boolean
): string {
return `You are an expert code translator. Translate code from ${source.name} to ${target.name} accurately.
Rules:
1. Translate faithfully — preserve all logic and behavior
2. Use idiomatic ${target.name} patterns
3. Use appropriate ${target.name} standard library equivalents
4. ${preserveComments ? "Preserve all comments" : "Remove comments unless critical"}
5. ${addExplanations ? "Add brief inline comments explaining non-obvious translations" : "Keep output clean"}
6. Output ONLY the translated code — no mark`
}