Speaking of "network bodhisattvas", many people probably know what I'm talking about: Cloudflare. Almost all of their products, including but not limited to CDN, KV databases, Pages, and Workers, provide a large amount of free resources and encourage people to use them for free. More importantly, the free quota is very high. Generally, small businesses or individual studios can support their business without spending a penny.
Recently, Cloudflare launched a free AI service, directly in their website backend. Without a server or domain name, you can build a free and usable AI service in a few simple steps, including translation, text generation, text-to-image, and speech recognition. It's a wave of benefits, don't miss it!
This article mainly introduces how to build a free and usable translation API in the Cloudflare backend, using the m2m100-1.2B model. The implemented effect is as follows.
This article mainly includes:
- Register and log in to an account
- Create a Worker service
- Copy and paste the code and deploy and start it
- Bind your own domain name (optional)
- Use this API in code or software
1. Register and log in to an account
If you don't have an account, click this address to register, which is very simple:
https://dash.cloudflare.com/sign-up
If you have an account, go directly to login: https://dash.cloudflare.com/login
2. Create a Worker service
After logging in, click "Workers & Pages" on the left.
Then click "Create".
In the new page that opens, click "AI" on the right, find "Translation App", hover over it, and click.
In the next interface, set a name. This name will be part of the domain name assigned to you. Only numbers, English letters, underscores, and hyphens are allowed, as shown in the figure below. Then save and complete.
Next, you will be told that the deployment is successful, but you also need to paste the code to replace the default one.
3. Copy and paste code
Click "Edit code" shown in the last step. Wait for the page to display, then delete all the code on the left and paste the following code on the left. Among them, 123456
is your access key. You can modify it to prevent others from using and wasting your free traffic.
// This is the access key
const SECRET_PASS="123456"
export default {
async fetch(request, env) {
const urlStr = request.url
const urlObj = new URL(urlStr)
let text = urlObj.searchParams.get('text')
let source_language = urlObj.searchParams.get('source_language')
let target_language = urlObj.searchParams.get('target_language')
let secret = urlObj.searchParams.get('secret')
if(secret!==SECRET_PASS){
return Response.json({code:1,msg:"Unauthorized access",text:text,source_language:source_language,target_lanuage:target_language,secret:secret});
}
const inputs = {
text: text,
source_lang: source_language,
target_lang: target_language,
};
const response = await env.AI.run('@cf/meta/m2m100-1.2b', inputs);
if(response.translated_text.indexOf('ERROR')===0){
return Response.json({code:2,msg:"ok",text:response.translated_text});
}
return Response.json({code:0,msg:"ok",text:response.translated_text });
},
};
After pasting, wait for "Save & Deploy" in the upper right corner to become clickable, then click it. In the pop-up confirmation window, confirm and deploy again.
Okay, you can use it happily. For example, the address after my deployment is https://my-translate-api.2124455076.workers.dev/
, then I can use it directly through this address:
https://my-translate-api.2124455076.workers.dev/?text=%E4%BD%A0%E5%A5%BD%E5%95%8A%E6%88%91%E7%9A%84%E6%9C%8B%E5%8F%8B&source_language=zh&target_language=en&secret=123456
This address is your translation API endpoint.
4. Bind your own domain name
If you think this address is too long or bad, or workers.dev may be blocked and inaccessible in China, and you don't want to use a proxy, you can bind your own domain name.
First, you need to modify your domain name's NS server to Cloudflare's. After it takes effect, return to the Cloudflare homepage https://dash.cloudflare.com/ and bind your domain name.
NS | ezra.ns.cloudflare.com |
---|---|
NS | karsyn.ns.cloudflare.com |
After adding, return to your worker. Remember how to enter? Click "Workers & Pages" on the left.
On the right, you will see the service you have created. Click its name to enter the settings page.
As shown in the figure below, first click "Settings --> Triggers", and then click "Add Custom Domain" to add your own domain name. For example, if your domain name bound to Cloudflare is abc.com, then you can set api.abc.com here.
Okay, now you can use your own domain name to access.
5. Use this API in code and software
First, remember the language codes that m2m100 can support:
Afrikaans (af), Amharic (am), Arabic (ar), Asturian (ast), Azerbaijani (az), Bashkir (ba), Belarusian (be), Bulgarian (bg), Bengali (bn), Breton (br), Bosnian (bs), Catalan (ca), Cebuano (ceb), Czech (cs), Welsh (cy), Danish (da), German (de), Greek (el), English (en), Spanish (es), Estonian (et), Persian (fa), Fulah (ff), Finnish (fi), French (fr), Western Frisian (fy), Irish (ga), Scottish Gaelic (gd), Galician (gl), Gujarati (gu), Hausa (ha), Hebrew (he), Hindi (hi), Croatian (hr), Haitian Creole (ht), Hungarian (hu), Armenian (hy), Indonesian (id), Igbo (ig), Ilocano (ilo), Icelandic (is), Italian (it), Japanese (ja), Javanese (jv), Georgian (ka), Kazakh (kk), Central Khmer (km), Kannada (kn), Korean (ko), Luxembourgish (lb), Ganda (lg), Lingala (ln), Lao (lo), Lithuanian (lt), Latvian (lv), Malagasy (mg), Macedonian (mk), Malayalam (ml), Mongolian (mn), Marathi (mr), Malay (ms), Burmese (my), Nepali (ne), Dutch (nl), Norwegian (no), Northern Sotho (ns), Occitan (oc), Oriya (or), Punjabi (pa), Polish (pl), Pashto (ps), Portuguese (pt), Romanian (ro), Russian (ru), Sindhi (sd), Sinhala (si), Slovak (sk), Slovenian (sl), Somali (so), Albanian (sq), Serbian (sr), Swati (ss), Sundanese (su), Swedish (sv), Swahili (sw), Tamil (ta), Thai (th), Tagalog (tl), Tswana (tn), Turkish (tr), Ukrainian (uk), Urdu (ur), Uzbek (uz), Vietnamese (vi), Wolof (wo), Xhosa (xh), Yiddish (yi), Yoruba (yo), Chinese (zh), Zulu (zu)
Use Python code to use this API:
import requests
response = requests.get(url="https://transapi.pyvideotrans.com/?text=你好啊我的朋友们&source_language=zh&target_language=en&secret=123456")
print(response.json())
It's that simple.
Use in video translation software:
Open the settings menu in the upper left corner -- Custom Translation API, fill in your API address and key, and then test it.
After there are no problems, select "TransAPI" in the translation channel, and you can happily use free API and free service resources to translate your videos. The free quota is generally enough for monthly use.