238 lines
3.9 KiB
Markdown
238 lines
3.9 KiB
Markdown
|
||
|
||
------
|
||
|
||
# Cloudflare Workers AI 翻译服务
|
||
|
||
一个基于 **Cloudflare Workers + Workers AI** 的轻量级 AI 翻译服务,支持:
|
||
|
||
- 🌐 **网页访问翻译**(默认:英语 → 中文)
|
||
- 📄 **长文本自动分页 / 翻页**
|
||
- 🔌 **HTTP API 调用**
|
||
- 🌎 **多语言互译**(基于 `m2m100-1.2b` 模型)
|
||
- ⚡ **全球边缘节点低延迟部署**
|
||
|
||
---
|
||
|
||
## ✨ 功能特性
|
||
|
||
### 1. 网页翻译(Web UI)
|
||
|
||
- 默认语言:**en → zh**
|
||
- 支持选择源语言 / 目标语言
|
||
- 自动按字符数分页
|
||
- 翻页只翻译当前页,响应更快
|
||
- 适合:
|
||
- 阅读外文文章
|
||
- 翻译长文档
|
||
- 快速人工校对
|
||
|
||
访问根路径即可使用:https://your-worker-domain/
|
||
|
||
|
||
---
|
||
|
||
### 2. HTTP API 翻译
|
||
|
||
#### 接口一览
|
||
|
||
| 方法 | 路径 | 说明 |
|
||
|----|----|----|
|
||
| GET | `/api/languages` | 获取常用语言列表 |
|
||
| POST | `/api/translate` | 翻译文本 |
|
||
|
||
---
|
||
|
||
## 🚀 API 使用说明
|
||
|
||
### 2.1 单页 / 分页翻译
|
||
|
||
**POST** `/api/translate`
|
||
|
||
```json
|
||
{
|
||
"text": "Hello world, this is a long text...",
|
||
"source_lang": "en",
|
||
"target_lang": "zh",
|
||
"page": 1,
|
||
"page_size": 1800
|
||
}
|
||
```
|
||
|
||
#### 返回示例
|
||
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"page_size": 1800,
|
||
"total_pages": 3,
|
||
"source_lang": "en",
|
||
"target_lang": "zh",
|
||
"translated_text": "你好,世界,这是一段很长的文本……"
|
||
}
|
||
```
|
||
|
||
------
|
||
|
||
### 2.2 一次翻译全文(自动分段)
|
||
|
||
```json
|
||
{
|
||
"text": "Very long text...",
|
||
"source_lang": "en",
|
||
"target_lang": "zh",
|
||
"translate_all": true,
|
||
"page_size": 1800
|
||
}
|
||
```
|
||
|
||
> ⚠️ 默认最多批量翻译 **50 段**(防止超时 / 过载)
|
||
|
||
------
|
||
|
||
### 2.3 curl 示例
|
||
|
||
```bash
|
||
curl -X POST https://your-worker-domain/api/translate \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"text": "Hello World",
|
||
"source_lang": "en",
|
||
"target_lang": "zh"
|
||
}'
|
||
```
|
||
|
||
------
|
||
|
||
## 🌐 支持语言(示例)
|
||
|
||
基于 **Meta M2M100 多语言模型**,支持数十种语言互译,例如:
|
||
|
||
- en – English
|
||
- zh – 中文
|
||
- ja – 日本語
|
||
- ko – 한국어
|
||
- fr – Français
|
||
- de – Deutsch
|
||
- es – Español
|
||
- ru – Русский
|
||
- ar – العربية
|
||
- hi – हिन्दी
|
||
- vi – Tiếng Việt
|
||
等……
|
||
|
||
> 实际支持语言以模型能力为准
|
||
|
||
------
|
||
|
||
## 🧠 使用的 AI 模型
|
||
|
||
- **模型**:`@cf/meta/m2m100-1.2b`
|
||
- **类型**:多语言 → 多语言翻译
|
||
- **提供方**:Cloudflare Workers AI
|
||
|
||
官方文档:
|
||
https://developers.cloudflare.com/workers-ai/models/m2m100-1.2b/
|
||
|
||
------
|
||
|
||
## 📦 项目结构
|
||
|
||
```text
|
||
.
|
||
├── index.js # Cloudflare Worker 主逻辑
|
||
├── wrangler.toml # Wrangler 配置
|
||
└── README.md
|
||
```
|
||
|
||
------
|
||
|
||
## ⚙️ 部署方式
|
||
|
||
### 1️⃣ 安装 Wrangler
|
||
|
||
```bash
|
||
npm install -g wrangler
|
||
```
|
||
|
||
### 2️⃣ 登录 Cloudflare
|
||
|
||
```bash
|
||
wrangler login
|
||
```
|
||
|
||
### 3️⃣ 配置 `wrangler.toml`
|
||
|
||
```toml
|
||
name = "ai-translate-worker"
|
||
main = "index.js"
|
||
compatibility_date = "2026-01-27"
|
||
|
||
[ai]
|
||
binding = "AI"
|
||
```
|
||
|
||
------
|
||
|
||
### 4️⃣ 发布 Worker
|
||
|
||
```bash
|
||
wrangler deploy
|
||
```
|
||
|
||
------
|
||
|
||
## 🔐 (可选)API Key 保护
|
||
|
||
### 设置密钥
|
||
|
||
```bash
|
||
wrangler secret put API_KEY
|
||
```
|
||
|
||
### 调用方式
|
||
|
||
```http
|
||
X-API-Key: your_api_key
|
||
```
|
||
|
||
或:
|
||
|
||
```text
|
||
/api/translate?key=your_api_key
|
||
```
|
||
|
||
------
|
||
|
||
## 🧩 适用场景
|
||
|
||
- 个人翻译工具
|
||
- 博客 / 内容平台翻译接口
|
||
- 海外资讯聚合
|
||
- AI 工具链中的翻译节点
|
||
- Cloudflare 边缘 AI Demo
|
||
|
||
------
|
||
|
||
## 📌 TODO / 可扩展方向
|
||
|
||
- 自动语言识别
|
||
- 翻译历史记录
|
||
- 左右对照 UI
|
||
- Markdown / HTML 翻译
|
||
- 翻译缓存(KV / Cache API)
|
||
- 流式翻译(Streaming)
|
||
|
||
------
|
||
|
||
## 📄 License
|
||
|
||
MIT License
|
||
|
||
------
|
||
|
||
## ❤️ 致谢
|
||
|
||
- Cloudflare Workers
|
||
- Cloudflare Workers AI
|
||
- Meta M2M100 Multilingual Model |