API құжаттамасы
Біздің қарапайым REST API көмегімен қолданбаларға күшті аудармаларды енгізіңіз.
Бастау
TranslateAPI мәтіндерді 180- ден астам тілге аудару үшін қарапайым REST интерфейсін ұсынады. Барлық API аяқтау нүктелері JSON жауаптарын қайтарады.
https://api.translateapi.ai/api/v1/
Жедел бастау
Бірінші аудармаңызды сұраңыз:
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 кілті арқылы аутентификациялау. Сіз өзіңіздің басқару панелі.
Айдар аутентификациясы (Жәрдемдесу)
Authorization: Bearer ta_your_api_key_here
Сұраныстың параметрі
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Мәтінді аудару
Мәтінді бір ғана тілге аудару.
POST https://api.translateapi.ai/api/v1/translate/
Сұраныстың мазмұны
| Параметрлер | Түрі | Негізгі | Сипаттамасы |
|---|---|---|---|
text |
string | Иә | Аударатын мәтін (максимум 50 000 таңба) |
target_language |
string | Иә* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Жоқ | Source language code. Default: "auto" (auto-detect) |
* Пайдалану target_language (string) бір тіл үшін немесе target_languages Бірнеше ретті үшін (жұп) дегенді қолданыңыз. Көріңіз Көп мақсатты аудару.
Жауап
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Көп мақсатты аудару
Бір сұраныспен мәтіндерді бірнеше тілге аудару. Бір тілдегі аудармамен бірдей аяқтау нүктесін қолданады.
POST https://api.translateapi.ai/api/v1/translate/
Сұраныстың мазмұны
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Қолдану target_languages (жұп) орнына target_language Бірнеше мақсаттар үшін (string).
Жауап
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Дестелік аударма
Бірнеше мәтіндерді бір мезгілде асинхронды өңдеу арқылы аудару. Дестесін жіберіп, нәтижесін сұраңыз.
POST https://api.translateapi.ai/api/v1/translate/batch/
1- қадам: Дестені жіберу
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/"
}
2- қадам: нәтижелерді сұрау
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)
Жауап (жұмыс күтуде - кезекте, графикалық процессорды күтуде)
{
"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
}
}
Барысын шын уақытта қадағалау
Әрбір сауалнаманың жауабында орындалу барысы көрсетілген өрістер бар, сондықтан топпен не болып жатқанын бақылап отыра аласыз:
| Өріс | Сипаттамасы |
|---|---|
status |
Ағымдағы тапсырманың күйі: pending (кезегі, GPU жұмысшысын күтуде), processing (активті аудару), completed, failed |
processed_texts |
Қазірге дейін орындалған жеке аудармалар саны. Әрбір мәтін аударылған сайын жаңартылып отырады. |
total_texts |
Бұл дестедегі аудармалардың жалпы саны (мәтіндер × тілдер). |
progress_percentage |
Аяқталу пайызы (0- 100). processed_ texts / total_ texts бойынша есептеледі. |
queue_position |
Күй- жайы "күткен" (1 = келесі кезекте) болса, кезегіңіздегі орныңыз. Жасалған немесе аяқталған болса, нөлге тең. Бұл күту уақытын есептеп, пайдаланушыларға кезектің күй- жайын көрсету үшін қолданылады. |
processing_time |
Жалпы өңдеу уақыты секундта (жұмыс аяқталғаннан кейін қолжетімді). |
status мынау "pending", GPU жұмысшылары басқа дестелермен айналысып жатыр. Тексеріңіз queue_position Сіздің алдында қанша тапсырма бар екенін көру үшін (1 = Сіз келесі). Тапсырмаңыз автоматты түрде басталады - әрекет қажет емес, тек сұрау жүргізіп тұрыңыз.
Үлкен жүктемелер үшін ең жақсы тәжірибелер
- Бір тапсырма үшін бір тіл жіберілсін. Бұл әрбір тапсырманы жылдам етіп, орындалуын қадағалауды жеңілдетеді.
- 50- 100 мәтіннен тұратын дестелерді сақтаңыз. Кішірек дестелер тезірек аяқталады және орындалу барысын жиірек жаңартады.
- Бір мезгілде максимум 2 тапсырманы орындау. Графикалық процессор параллельді түрде 2 тапсырманы орындайды - қосымша тапсырмалар кезекке тұрып тезірек басталмайды.
- Күту уақыты аяқталғанда, жаңа тапсырма пакетін жіберудің орнына сол job_ id үшін қайта сұрау. Бастапқы тапсырма әлі де графикалық процессорда өңделуі мүмкін.
- Әрбір 3- 5 секунд сайын сұрақ қою. Көп сұрақ қою өңдеуді жылдамдатпайды.
Көп тілді десте
Бірнеше мәтіндерді бір мезгілде бірнеше тілге аудару:
{
"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, екеуі де емес.
job_id. Тоқша GET /api/v1/jobs/{job_id}/ дейін status мынау "completed", содан кейін оқу result_data аудармалар үшін. Use progress_percentage орындалуын бақылау үшін.
Құжатты аудару
Бүкіл құжаттарды пішімдеуін сақтай отырып аудару. Бірнеше файл пішімдерін қолдайды.
POST https://api.translateapi.ai/api/v1/translate/document/
Сұраныс (көпбөлік/пішін-деректер)
| Параметрлер | Түрі | Негізгі | Сипаттамасы |
|---|---|---|---|
file |
file | Иә | Аударатын құжат (макс. 10Мб) |
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 % 1 файлы.
Жауап
{
"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 |
Аудару жаңылысы (error_ message тексеру) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Құжаттың аудармасының күй- жайын тексеру немесе жүктеп алу URL- сілтемесін алу.
Жауап
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Тілді анықтау
Тілді анықтау әрбір аударма сұранысына ендіріледі. Set source_language to "auto" (немесе оны жіберіп алыңыз) және анықталған тіл жауап ретінде қайтарылады.
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 Жауаптағы бұл өріс автобайқау қолданылғанда анықталған тілді көрсетеді.
Қолданатын тілдер
Қолдау табатын тілдер тізімі.
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 сіздің тіл жұбы үшін ең жақсы үлгіні автоматты түрде таңдайды. Сіз тіл жұбы параметрін келтіре аласыз engine параметрі:
| Тетігі | Сипаттамасы |
|---|---|
"auto" |
Әдетті. Алдымен HuggingFace қолданылады, содан кейін MADLAD- 400 қолданылады |
"huggingface" |
HuggingFace/MarianMT-ті мәжбүрлеу (ең жылдам, 50+ тіл) |
"madlad" |
Force MADLAD-400 (400+ тілдер) |
Қателерді өңдеу
API сәтті немесе сәтсіздікті көрсету үшін стандартты HTTP күй- жай кодтарын қолданады.
| Код | Сипаттамасы |
|---|---|
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 келесі айына дейін немесе жаңартуыңызға дейін жауап бермейді.
Автоматты масштабталатын бұлт инфрақұрылымы
TranslateAPI автоматты көлденең масштабтауымен арнайы NVIDIA A100 графикалық процессорының экземплярларында жұмыс істейді. Талап артқанда, қосымша графикалық процессордың экземплярлары минуттар ішінде жегіліп, жауап беру уақытын тездетеді. Бұл біздің API- ның бір мезгілде шексіз сұраныстарды қабылдай алатындығын білдіреді - минутына бір сұраныстан мыңдаған сұраныстарға дейін.