惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
小众软件
小众软件
The Cloudflare Blog
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
美团技术团队
WordPress大学
WordPress大学
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
Last Week in AI
Last Week in AI
月光博客
月光博客
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
GbyAI
GbyAI
B
Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
博客园 - 叶小钗

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 看到有公司考核 token 指标,很好奇大家上个月的 AI 账单是多少 GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? 现在还有什么渠道可以稳定安全地使用 Claude 吗? 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? gemini cli 貌似挂了,一直返回 403 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 只有我一个人觉得 codex 不好用?
用 DeepSeek API 做了个佛经翻译器,分享 Prompt 工程和前端...
XR843 · 2025-12-17 · via V2EX

最近做了个佛教文献翻译器,纯前端实现,分享下技术细节。

背景

翻译佛经时发现通用翻译器对专业术语处理很差,比如「般若」被翻成 wisdom ,丢失了 Prajñā 的深层含义。于是自己动手做了一个。

在线体验: https://xr843.github.io/Buddhist-AI-Translator GitHub: https://github.com/xr843/Buddhist-AI-Translator

技术栈

  • 纯前端: HTML5 + CSS3 + JavaScript ES6+
  • AI: DeepSeek API
  • 语音: Web Speech API
  • 无框架,零依赖

核心实现

1. Prompt 工程

最关键的是让 AI 理解佛学语境,我的 prompt 结构:

function createTranslationPrompt(text, sourceLang, targetLang) {
    let prompt = `将${sourceDesc}翻译为${targetDesc}:\n\n${text}\n\n`;

    if (targetLang === 'zh') {
        prompt += '要求:准确翻译佛教术语,使用现代中文。';
    } else if (targetLang === 'zh-classical') {
        prompt += '要求:翻译为文言文,保持庄严性。';
    } else {
        prompt += '要求:准确翻译,保持佛教术语的正确性。';
    }

    prompt += '\n\n 直接返回翻译结果,无需引号或解释。';
    return prompt;
}

关键点:
- 明确指定目标语言风格
- 要求直接返回结果,减少后处理
- 针对不同语言给不同指令

### 2. 术语数据库

内置了 50+ 佛教术语对照表,作为兜底:

const buddhistTerms = {
    '般若波罗蜜多心经': 'The Heart of the Perfection of Wisdom Sutra / प्रज्ञापारमिताहृदयसूत्र',
    '观自在菩萨': 'Avalokiteshvara Bodhisattva / अवलोकितेश्वर बोधिसत्त्व',
    '涅槃': 'Nirvana / निर्वाण',
    '菩萨': 'Bodhisattva / बोधिसत्त्व',
    // ...
};

当 API 挂掉时,用术语库做基础翻译。

### 3. 缓存策略

为了减少 API 调用和提升响应速度:

const translationCache = new Map();
const MAX_CACHE_SIZE = 100;

function getCacheKey(text, sourceLang, targetLang) {
    return `${sourceLang}->${targetLang}:${text.trim()}`;
}

// LRU 清理
function cleanCache() {
    if (translationCache.size >= MAX_CACHE_SIZE) {
        const firstKey = translationCache.keys().next().value;
        translationCache.delete(firstKey);
    }
}

相同文本+语言对直接返回缓存,秒级响应。

### 4. XSS 防护

AI 返回的内容不可信,必须转义:

function escapeHtml(text) {
    const div = document.createElement('div');
    div.textContent = text;
    return div.innerHTML;
}

// 输出时转义
resultDiv.innerHTML = `<div class="translation-text">${escapeHtml(translationResult)}</div>`;

### 5. API 调用优化

const controller = new AbortController();
const timeoutId = setTimeout(() => controller.abort(), 15000);

const response = await fetch(API_CONFIG.baseURL, {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${API_CONFIG.apiKey}`
    },
    body: JSON.stringify({
        model: 'deepseek-chat',
        messages: [...],
        temperature: 0.1,  // 低温度保证一致性
        max_tokens: 800,
        stream: false
    }),
    signal: controller.signal
});

- 15 秒超时,避免长时间等待
- temperature 设 0.1 ,翻译需要稳定输出
- 非流式响应,简化处理逻辑

遇到的坑

1. DeepSeek 返回带引号 - AI 经常把翻译结果用引号包起来,需要后处理去掉
2. 语音合成分段 - 长文本一次性朗读会卡,需要按句子分段
3. 梵文字体 - 部分浏览器不支持 Devanagari ,需要加载 Google Fonts

## 效果

| 指标     | 数据        |
|----------|-------------|
| 首次翻译 | 1-3 秒      |
| 缓存命中 | <100ms      |
| 代码量   | ~1400 行 JS |
| 包大小   | 0 (无依赖)  |

## 总结

纯前端 + LLM API 的组合很适合做这类垂直领域工具:
- 开发快,部署简单 (GitHub Pages 直接托管)
- 用户自带 API Key ,无服务器成本
- Prompt 工程 + 术语库,解决专业领域翻译问题

代码完全开源,欢迎 PR: https://github.com/xr843/Buddhist-AI-Translator

---
有问题欢迎讨论,也欢迎推荐其他需要补充的佛教术语。

---