ឯកសារ API
បញ្ចូលការបកប្រែមានឥទ្ធិពលទៅក្នុងកម្មវិធីរបស់អ្នកជាមួយ REST API សាមញ្ញរបស់យើង។
ការចាប់ផ្ដើម
TranslateAPI ផ្តល់នូវចំណុចប្រទាក់ REST សាមញ្ញសម្រាប់បកប្រែអត្ថបទរវាង 180+ ភាសា។ ចំណុចបញ្ចប់ API ទាំងអស់ត្រឡប់ការឆ្លើយតប JSON ។
https://api.translateapi.ai/api/v1/
ចាប់ផ្ដើមរហ័ស
ធ្វើសំណើបកប្រែដំបូងរបស់អ្នក & # 160; ៖
curl -X POST https://api.translateapi.ai/api/v1/translate/ \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"text": "Hello, world!",
"target_language": "es"
}'
import requests
response = requests.post(
"https://api.translateapi.ai/api/v1/translate/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"text": "Hello, world!",
"target_language": "es"
}
)
result = response.json()
print(result["translated_text"]) # "Hola, mundo!"
const response = await fetch("https://api.translateapi.ai/api/v1/translate/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
text: "Hello, world!",
target_language: "es"
})
});
const result = await response.json();
console.log(result.translated_text); // "Hola, mundo!"
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add(
"Authorization", "Bearer YOUR_API_KEY"
);
var content = new StringContent(
JsonConvert.SerializeObject(new {
text = "Hello, world!",
target_language = "es"
}),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync(
"https://api.translateapi.ai/api/v1/translate/",
content
);
var result = await response.Content.ReadAsStringAsync();
var data = JsonConvert.DeserializeObject<dynamic>(result);
Console.WriteLine(data.translated_text); // "Hola, mundo!"
}
}
ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ
ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវសំណើរបស់អ្នកដោយប្រើកូនសោ API ។ អ្នកអាចបង្កើតកូនសោ API ពីរបស់អ្នក បន្ទះឧបករណ៍.
ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវបឋមកថា (បានផ្ដល់អនុសាសន៍)
Authorization: Bearer ta_your_api_key_here
ប៉ារ៉ាម៉ែត្រសំណួរ
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
បកប្រែអត្ថបទ
បកប្រែអត្ថបទទៅជាភាសាគោលដៅតែមួយ & # 160; ។
POST https://api.translateapi.ai/api/v1/translate/
តួសំណើ
| ប៉ារ៉ាម៉ែត្រ | ប្រភេទ | ត្រូវការ | ការពិពណ៌នា |
|---|---|---|---|
text |
string | បាទ/ ចាស | អត្ថបទត្រូវបកប្រែ (អតិបរមា ៥០. ០០០ តួអក្សរ) |
target_language |
string | បាទ/ ចាស* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | គ្មាន | Source language code. Default: "auto" (auto-detect) |
* ប្រើ target_language (ខ្សែអក្សរ) សម្រាប់ភាសាតែមួយ ឬ target_languages (អ័ក្ស) សម្រាប់ច្រើន ។ មើល ការបកប្រែគោលដៅច្រើន.
ការឆ្លើយតប
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
ការបកប្រែគោលដៅច្រើន
បកប្រែអត្ថបទទៅជាភាសាច្រើនក្នុងសំណើតែមួយ & # 160; ។ ប្រើចំណុចបញ្ចប់ដូចគ្នាជាការបកប្រែតែមួយ & # 160; ។
POST https://api.translateapi.ai/api/v1/translate/
តួសំណើ
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
ប្រើ target_languages (អ័ក្ស) ជំនួសឲ្យ target_language (ខ្សែអក្សរ) សម្រាប់គោលដៅច្រើន & # 160; ។
ការឆ្លើយតប
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
ការបកប្រែបាច់
បកប្រែអត្ថបទច្រើនក្នុងពេលតែមួយជាមួយនឹងការដំណើរការ async & # 160; ។ ដាក់ស្នើ batch និងការស្ទង់មតិសម្រាប់លទ្ធផល & # 160; ។
POST https://api.translateapi.ai/api/v1/translate/batch/
ជំហានទី ១ & # 160; ៖ ដាក់ស្នើបាច់
curl -X POST https://api.translateapi.ai/api/v1/translate/batch/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": ["Hello", "Goodbye", "Thank you"],
"target_language": "es",
"source_language": "en"
}'
ការឆ្លើយតប (បានទទួលយក HTTP 202)
{
"job_id": "67535b2b-c9e3-4f82-9499-e237edbc1dd8",
"status": "pending",
"total_texts": 3,
"queue_position": 1,
"source_language": "en",
"target_languages": ["es"],
"character_count": 22,
"credits_remaining": -1,
"poll_url": "https://api.translateapi.ai/api/v1/jobs/67535b2b-c9e3-4f82-9499-e237edbc1dd8/"
}
ជំហានទី ២ & # 160; ៖ បោះឆ្នោតរកលទ្ធផល
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
ឧទាហរណ៍ការស្ទង់មតិ (Python)
import time, requests
job_id = response.json()["job_id"]
total = response.json()["total_texts"]
headers = {"Authorization": "Bearer YOUR_API_KEY"}
print(f"Batch submitted: {total} texts (job {job_id})")
while True:
result = requests.get(f"https://api.translateapi.ai/api/v1/jobs/{job_id}/", headers=headers).json()
status = result["status"]
processed = result.get("processed_texts", 0)
progress = result.get("progress_percentage", 0)
if status == "completed":
print(f"Completed: {processed}/{total} texts in {result.get('processing_time', 0):.1f}s")
translations = result["result_data"]["translations"]
break
elif status == "failed":
print(f"Failed at {processed}/{total}: {result.get('error_message', 'unknown')}")
raise Exception(result.get("error_message", "Translation failed"))
elif status == "pending":
queue_pos = result.get("queue_position", "?")
print(f"Queued (position {queue_pos}) — waiting for GPU worker...")
else:
print(f"[{status}] {processed}/{total} ({progress:.0f}%)")
time.sleep(3)
ការឆ្លើយតប (កំពុងរង់ចាំ - បានដាក់ជាជួរ រង់ចាំ GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
ការឆ្លើយតប (ខណៈពេលដំណើរការ)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
ការឆ្លើយតប (បានបញ្ចប់)
{
"job_id": "67535b2b-...",
"status": "completed",
"processed_texts": 3,
"total_texts": 3,
"progress_percentage": 100.0,
"processing_time": 10.65,
"result_data": {
"translations": ["Hola", "Adiós", "Gracias"],
"source_language": "en",
"target_language": "es",
"character_count": 22,
"processing_time": 10.65
}
}
ការតាមដានវឌ្ឍនភាពពេលវេលាពិត
ការឆ្លើយតបការស្ទង់មតិនីមួយៗរួមបញ្ចូលវាលវឌ្ឍនភាពពេលវេលាពិត ដូច្នេះអ្នកអាចតាមដានយ៉ាងច្បាស់នូវអ្វីដែលកំពុងកើតឡើងជាមួយនឹងបាច់របស់អ្នក & # 160; ៖
| វាល | ការពិពណ៌នា |
|---|---|
status |
ស្ថានភាពការងារបច្ចុប្បន្ន & # 160; ៖ pending (បានដាក់ជាជួរ រង់ចាំអ្នកធ្វើការ GPU), processing (កំពុងបកប្រែជាសកម្ម), completed, failed |
processed_texts |
ចំនួនការបកប្រែឯកជនដែលបានបញ្ចប់រហូតមកដល់ពេលនេះ & # 160; ។ ធ្វើឲ្យទាន់សម័យក្នុងពេលពិត ខណៈពេលដែលអត្ថបទនីមួយៗត្រូវបានបកប្រែ & # 160; ។ |
total_texts |
ចំនួនសរុបនៃការបកប្រែក្នុងបាច់នេះ (អត្ថបទ × ភាសាគោលដៅ) & # 160; ។ |
progress_percentage |
ភាគរយបញ្ចប់ (០- ១០០) & # 160; ។ គណនាពី processed_ texts / total_ texts & # 160; ។ |
queue_position |
ទីតាំងរបស់អ្នកក្នុងជួរ ពេលស្ថានភាពគឺ "កំពុងរង់ចាំ" (១ = បន្ទាប់) & # 160; ។ គ្មាន ពេលដំណើរការ ឬបានបញ្ចប់ & # 160; ។ ប្រើវាដើម្បីប៉ាន់ប្រមាណពេលរង់ចាំ និងបង្ហាញស្ថានភាពជួរទៅអ្នកប្រើរបស់អ្នក & # 160; ។ |
processing_time |
ពេលវេលាដំណើរការសរុបគិតជាវិនាទី (អាចប្រើបាននៅពេលបញ្ចប់) & # 160; ។ |
status គឺ "pending", កម្មករ GPU កំពុងរវល់ជាមួយនឹងបាច់ផ្សេងទៀត & # 160; ។ ពិនិត្យមើល queue_position ដើម្បីមើលចំនួនការងារដែលនៅមុខរបស់អ្នក (១ = អ្នកជាអ្នកបន្ទាប់) & # 160; ។ ការងាររបស់អ្នកនឹងចាប់ផ្ដើមដោយស្វ័យប្រវត្តិ - មិនចាំបាច់ធ្វើអ្វីទេ គ្រាន់តែបន្តការស្ទង់មតិ & # 160; ។
បទពិសោធន៍ល្អបំផុតសម្រាប់ការផ្ទុកការងារធំ
- ផ្ញើភាសាគោលដៅ 1 ក្នុងសំណើបាច់ & # 160; ។ វារក្សាបាច់នីមួយៗឲ្យលឿន និងធ្វើឲ្យវឌ្ឍនភាពងាយស្រួលតាមដាន & # 160; ។
- រក្សាបាច់នៅ 50- 100 អត្ថបទ & # 160; ។ បាច់តូចជាងបញ្ចប់លឿនជាងមុន និងផ្តល់ឲ្យអ្នកនូវការធ្វើឲ្យទាន់សម័យវឌ្ឍនភាពញឹកញាប់ជាងមុន & # 160; ។
- រត់ច្រើនបំផុត ២ ការងារបាច់ស្របពេល & # 160; ។ GPU ដំណើរការបាច់ ២ ក្នុងប៉ារ៉ាឡែល - ជួរការងារបន្ថែម និងនឹងមិនចាប់ផ្ដើមលឿនទេ & # 160; ។
- នៅពេលអស់ពេល សាកល្បង job_ id ដូចគ្នាម្ដងទៀត ជំនួសឲ្យដាក់ស្នើបាច់ថ្មី & # 160; ។ ការងារដើមអាចនៅតែដំណើរការនៅលើ GPU & # 160; ។
- ធ្វើការស្ទង់មតិរៀងរាល់ ៣- ៥ វិនាទី & # 160; ។ ការស្ទង់មតិជាញឹកញាប់មិនបង្កើនល្បឿនដំណើរការទេ & # 160; ។
បាច់ភាសាច្រើន
បកប្រែអត្ថបទច្រើនទៅជាភាសាច្រើនក្នុងពេលតែមួយ & # 160; ៖
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
ទិន្នន័យលទ្ធផលដែលបានបញ្ចប់
{
"translations": [
{"es": "Hola", "fr": "Bonjour"},
{"es": "Adiós", "fr": "Au revoir"}
],
"source_language": "en",
"target_languages": ["es", "fr"],
"character_count": 24,
"processing_time": 2.45
}
ប៉ារ៉ាម៉ែត្រសំណើ
| ប៉ារ៉ាម៉ែត្រ | ប្រភេទ | ត្រូវការ | ការពិពណ៌នា |
|---|---|---|---|
texts |
array | បាទ/ ចាស | អ័ក្សខ្សែអក្សរដែលត្រូវបកប្រែ |
target_language |
string | បាទ/ ចាស* | កូដភាសាគោលដៅសម្រាប់ភាសាតែមួយ |
target_languages |
array | បាទ/ ចាស* | អ័ក្សកូដភាសាគោលដៅសម្រាប់ភាសាច្រើន |
source_language |
string | គ្មាន | Source language code. Default: "auto" |
* ផ្ដល់ target_language ឬ target_languages, មិនទាំងពីរ & # 160; ។
job_id. រន្ធ GET /api/v1/jobs/{job_id}/ រហូតដល់ status គឺ "completed", បន្ទាប់មកអាន result_data សម្រាប់ការបកប្រែ & # 160; ។ ប្រើ progress_percentage ដើម្បីតាមដានវឌ្ឍនភាព ។
ការបកប្រែឯកសារ
បកប្រែឯកសារទាំងមូលក្នុងពេលរក្សាទ្រង់ទ្រាយ & # 160; ។ គាំទ្រទ្រង់ទ្រាយឯកសារច្រើន & # 160; ។
POST https://api.translateapi.ai/api/v1/translate/document/
សំណើ (ផ្នែកច្រើន/ ទិន្នន័យសំណុំបែបបទ)
| ប៉ារ៉ាម៉ែត្រ | ប្រភេទ | ត្រូវការ | ការពិពណ៌នា |
|---|---|---|---|
file |
file | បាទ/ ចាស | ឯកសារត្រូវបកប្រែ (អតិបរមា ១០ មេកាបៃ) |
target_language |
string | បាទ/ ចាស | Target language code (e.g., "es", "fr", "de") |
source_language |
string | គ្មាន | Source language code. Default: "auto" (auto-detect) |
ប្រភេទឯកសារដែលគាំទ្រ
.txt- ឯកសារអត្ថបទធម្មតា.docx- ឯកសារ Word.pdf- ឯកសារ PDF (រួមទាំងឯកសារដែលបានស្កេន).json- ឯកសារ JSON (បកប្រែតម្លៃខ្សែអក្សរ).xml- ឯកសារ XML
.srt- ឯកសារចំណងជើងរង.po/.pot- ឯកសារបកប្រែ Gettext.jpg/.jpeg- រូបភាព JPEG (OCR).png- រូបភាព PNG (OCR).tiff/.tif- រូបភាព TIFF (OCR).bmp- រូបភាព BMP (OCR).webp- រូបភាព WebP (OCR)
ឧទាហរណ៍ (cURL)
# Translate a Word document
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@document.docx" \
-F "target_language=es" \
-F "source_language=en"
# Translate text from an image (OCR)
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@scanned_page.jpg" \
-F "target_language=es" \
-F "source_language=en"
.txt ឯកសារ & # 160; ។
ការឆ្លើយតប
{
"id": 123,
"original_filename": "document.docx",
"file_type": "docx",
"source_language": "en",
"target_language": "es",
"status": "completed",
"character_count": 5420,
"translated_file_url": "/media/translated/document_es.docx",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:05Z"
}
តម្លៃស្ថានភាព
pending |
បានផ្ទុកឯកសារឡើង រង់ចាំដំណើរការ |
processing |
ការបកប្រែកំពុងដំណើរការ |
completed |
បានបញ្ចប់ការបកប្រែ អាចទាញយកបាន |
failed |
ការបកប្រែបានបរាជ័យ (ពិនិត្យសារកំហុស) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
ពិនិត្យមើលស្ថានភាពនៃការបកប្រែឯកសារ ឬទាញយក URL & # 160; ។
ការឆ្លើយតប
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
ការរកឃើញភាសា
ការរកឃើញភាសាត្រូវបានបង្កើតក្នុងសំណើបកប្រែនីមួយៗ & # 160; ។ កំណត់ source_language to "auto" (ឬរំលងវា) ហើយភាសាដែលបានរកឃើញត្រូវបានត្រឡប់ក្នុងការឆ្លើយតប & # 160; ។
POST https://api.translateapi.ai/api/v1/translate/
តួសំណើ
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
ការឆ្លើយតប
{
"translated_text": "Hello, how are you?",
"source_language": "fr",
"target_language": "en",
"translations": {
"en": "Hello, how are you?"
},
"character_count": 28,
"translation_time": 0.52
}
ការផ្លាស់ប្ដូរ source_language វាលក្នុងការឆ្លើយតបបង្ហាញភាសាដែលបានរកឃើញ ពេលការរកឃើញដោយស្វ័យប្រវត្តិត្រូវបានប្រើ & # 160; ។
ភាសាដែលគាំទ្រ
យកបញ្ជីភាសាដែលបានគាំទ្រទាំងអស់ & # 160; ។
GET https://api.translateapi.ai/api/v1/translate/languages/
ការឆ្លើយតប
{
"count": 186,
"results": [
{"iso": "en", "name": "English", "en_label": "English"},
{"iso": "es", "name": "Español", "en_label": "Spanish"},
{"iso": "fr", "name": "Français", "en_label": "French"},
...
]
}
ម៉ូដែលបកប្រែ
យើងប្រើម៉ូដែលបកប្រែប្រភពបើកចំហដែលដំណើរការលើហេដ្ឋារចនាសម្ព័ន្ធ GPU របស់យើងផ្ទាល់ ។ ម៉ូដែលទាំងអស់មានអាជ្ញាប័ណ្ណពាណិជ្ជកម្ម (Apache 2.0) ។
| ម៉ូដែល | ភាសា | ល្អបំផុតសម្រាប់ |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ គូភាសា | ភាសាទូទៅ (EN, ES, FR, DE, IT, PT, RU, ZH, JA, ល) |
| Google MADLAD-400 | 400+ ភាសា | ភាសាកម្រ ការគ្របដណ្តប់ទូលំទូលាយ |
API ជ្រើសម៉ូដែលល្អបំផុតសម្រាប់គូភាសារបស់អ្នកដោយស្វ័យប្រវត្តិ & # 160; ។ អ្នកអាចបញ្ជាក់ជាជម្រើស engine ប៉ារ៉ាម៉ែត្រ & # 160; ៖
| ម៉ាស៊ីន | ការពិពណ៌នា |
|---|---|
"auto" |
លំនាំដើម & # 160; ។ ព្យាយាម HuggingFace ដំបូង ធ្លាក់ត្រឡប់ទៅ MADLAD- 400 |
"huggingface" |
បង្ខំ HuggingFace / MarianMT (លឿនបំផុត, 50+ ភាសា) |
"madlad" |
កម្លាំង MADLAD-400 (400+ ភាសា) |
ការដោះស្រាយកំហុស
API ប្រើកូដស្ថានភាព HTTP ស្តង់ដារដើម្បីបង្ហាញជោគជ័យ ឬបរាជ័យ & # 160; ។
| កូដ | ការពិពណ៌នា |
|---|---|
200 |
បរាជ័យ |
400 |
សំណើមិនល្អ - ប៉ារ៉ាម៉ែត្រមិនត្រឹមត្រូវ |
401 |
មិនបានអនុញ្ញាត - សោ API មិនត្រឹមត្រូវ ឬបាត់ |
402 |
ត្រូវការការទូទាត់ - កូតាតួអក្សរប្រចាំថ្ងៃបានលើស |
429 |
សំណើច្រើនពេក - លើសដែនកំណត់អត្រា |
503 |
សេវាមិនអាចប្រើបាន - ម៉ាស៊ីនបកប្រែបានបិទបណ្ដោះអាសន្ន |
ទ្រង់ទ្រាយការឆ្លើយតបកំហុស
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
អត្រាដែនកំណត់
ដែនកំណត់ប្រែប្រួលដោយផែនការ. មើល តម្លៃ សម្រាប់សេចក្ដីលម្អិតពេញលេញ ៖
| ផែនការ | តួអក្សរ/ ខែ | តម្លៃ | |
|---|---|---|---|
| ទំនេរ | 250,000 | $0 | ចុះឈ្មោះដោយឥតគិតថ្លៃ |
| កម្មវិធីចាប់ផ្ដើម | 2,500,000 | $9/ខែ | ជាវជាប្រចាំ |
| ជំនាញ | 10,000,000 | $29/ខែ | ជាវជាប្រចាំ |
| ជំនួញ | 40,000,000 | $79/ខែ | ជាវជាប្រចាំ |
| ធ្វើមាត្រដ្ឋាន | 125,000,000 | $199/ខែ | ជាវជាប្រចាំ |
ពេលអ្នកលើសដែនកំណត់របស់អ្នក អ្នកនឹងទទួលបាន 429 Too Many Requests ការឆ្លើយតបរហូតដល់ខែបន្ទាប់ ឬអ្នកធ្វើឲ្យប្រសើរ & # 160; ។
ហេដ្ឋារចនាសម្ព័ន្ធពពកធ្វើមាត្រដ្ឋានដោយស្វ័យប្រវត្តិ
TranslateAPI រត់នៅលើឧទាហរណ៍ NVIDIA A100 GPU ដែលបានបម្រុងទុកជាមួយនឹងការធ្វើមាត្រដ្ឋានផ្ដេកដោយស្វ័យប្រវត្តិ។ នៅពេលតម្រូវការកើនឡើងឧទាហរណ៍ GPU បន្ថែមទៀតត្រូវបានចាប់ផ្តើមក្នុងរយៈពេលប៉ុន្មាននាទីដើម្បីរក្សាពេលវេលាឆ្លើយតបលឿន។ នេះមានន័យថា API របស់យើងអាចដោះស្រាយសំណើរួមគ្នាស្ទើរតែគ្មានដែនកំណត់ដោយគ្មានការចុះខ្សោយ - ពីសំណើតែមួយទៅរាប់ពាន់ក្នុងមួយនាទី។