Roam Moon Cloud

Dịch vụ AI

Cách tích hợp dịch bằng AI

Gửi văn bản và nhận về bản dịch giữa 2 trong số 100 ngôn ngữ được hỗ trợ, tính phí theo lượng văn bản bạn gửi.

Nội dung request

Gửi phần thân request dạng JSON:

TrườngÝ nghĩa
texttext là bắt buộc. Tối đa 10.000 ký tự (giao diện test trên trang riêng giới hạn chặt hơn, ở mức 1.000).
sourceLanguagesourceLanguage là tùy chọn, một trong 100 mã ngôn ngữ bên dưới. Nếu bỏ trống, mặc định là "en" chứ không tự động phát hiện.
targetLanguagetargetLanguage là bắt buộc, một trong 100 mã ngôn ngữ bên dưới.

Ví dụ

curl -X POST https://core.roammoon.com/v1/ai/translation/translate \
  -H "X-API-Key: rm_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello, world!", "sourceLanguage": "en", "targetLanguage": "vi"}'

Kết quả trả về

Trả về văn bản đã dịch cùng với số credit thực sự bị trừ:

JSON
{
  "translatedText": "Xin chào, thế giới!",
  "sourceLanguage": "en",
  "targetLanguage": "vi",
  "characterCount": 13,
  "creditsCharged": 1
}

Các trường quan trọng

TrườngÝ nghĩa
translatedTextVăn bản đã được dịch.
characterCountĐộ dài văn bản bạn đã gửi.
creditsChargedChi phí thực tế của lệnh gọi này: ceil(characterCount / 100), tối thiểu 1.

Tính phí

Khác với các dịch vụ AI khác trên nền tảng, dịch vụ này tính phí theo dung lượng thay vì mức cố định mỗi lần gọi: 1 credit cho mỗi 100 ký tự văn bản đầu vào, làm tròn lên, tối thiểu 1 credit. Một request 10.000 ký tự tốn tối đa 100 credit. Chỉ trừ credit khi dịch thành công, mọi trường hợp thất bại đều được hoàn lại.

Chính sách tính phí là charge-on-success: credit được giữ chỗ khi tiếp nhận request và chỉ thực sự trừ khi xử lý thành công. Thất bại thì hoàn lại.

Ngôn ngữ được hỗ trợ

Cả sourceLanguage và targetLanguage đều chấp nhận bất kỳ mã nào trong 100 mã sau.

Ngôn ngữNgôn ngữ
AfrikaansafGandalg
AmharicamLingalaln
ArabicarLaolo
AsturianastLithuanianlt
AzerbaijaniazLatvianlv
BashkirbaMalagasymg
BelarusianbeMacedonianmk
BulgarianbgMalayalamml
BengalibnMongolianmn
BretonbrMarathimr
BosnianbsMalayms
CatalancaBurmesemy
CebuanocebNepaline
CzechcsDutchnl
WelshcyNorwegianno
DanishdaNorthern Sothons
GermandeOccitanoc
GreekelOriyaor
EnglishenPunjabipa
SpanishesPolishpl
EstonianetPashtops
PersianfaPortuguesept
FulahffRomanianro
FinnishfiRussianru
FrenchfrSindhisd
Western FrisianfySinhalasi
IrishgaSlovaksk
Scottish GaelicgdSloveniansl
GalicianglSomaliso
GujaratiguAlbaniansq
HausahaSerbiansr
HebrewheSwatiss
HindihiSundanesesu
CroatianhrSwedishsv
Haitian CreolehtSwahilisw
HungarianhuTamilta
ArmenianhyThaith
IndonesianidTagalogtl
IgboigTswanatn
IlokoiloTurkishtr
IcelandicisUkrainianuk
ItalianitUrduur
JapanesejaUzbekuz
JavanesejvVietnamesevi
GeorgiankaWolofwo
KazakhkkXhosaxh
KhmerkmYiddishyi
KannadaknYorubayo
KoreankoChinesezh
LuxembourgishlbZuluzu

Mẹo để có kết quả tốt

  • Đặt sourceLanguage rõ ràng bất cứ khi nào văn bản của bạn không phải tiếng Anh. Để trống không có nghĩa là tự phát hiện, nó mặc định là tiếng Anh.
  • Câu ngắn, đúng ngữ pháp dịch đáng tin cậy hơn đoạn văn dài lẫn nhiều ngôn ngữ, tiếng lóng, hoặc định dạng phức tạp.
  • Đây là dịch máy, không phải người kiểm duyệt. Với nội dung xuất bản, pháp lý, hoặc liên quan an toàn, hãy nhờ người thông thạo ngôn ngữ đó kiểm tra lại trước khi dùng.

Lỗi

Mọi lỗi đều dùng chung một cấu trúc. Hãy xử lý theo trường code, không phải theo message, vì message có thể thay đổi.

JSON
{
  "error": {
    "code": "TEXT_TOO_LONG",
    "message": "The \"text\" field must be 10000 characters or fewer."
  }
}
HTTPMã lỗiNên làm gì
401API_KEY_REQUIREDThiếu header X-API-Key.
401API_KEY_INVALIDKey sai, đã bị vô hiệu hóa hoặc hết hạn. Kiểm tra lại hoặc tạo key mới.
403API_KEY_FORBIDDENKey không có quyền dùng dịch vụ này.
400INVALID_TRANSLATION_REQUESTTrường "text" bị thiếu hoặc rỗng. Không bị trừ credit.
400TEXT_TOO_LONGVăn bản vượt quá 10.000 ký tự. Hãy rút ngắn hoặc chia thành nhiều lệnh gọi.
400UNSUPPORTED_LANGUAGEsourceLanguage hoặc targetLanguage không nằm trong danh sách mã được hỗ trợ.
402CREDIT_LIMIT_EXCEEDEDHết credit trong chu kỳ. Nâng gói hoặc chờ sang chu kỳ mới.
415JSON_BODY_REQUIREDContent-Type phải là application/json.
429RATE_LIMIT_EXCEEDEDVượt giới hạn request mỗi phút.
502TRANSLATION_UPSTREAM_ERRORMô hình dịch không xử lý được request. Có thể thử lại.

Thử lại an toàn

502 có thể thử lại, dùng exponential backoff. Các lỗi khác trả về cùng kết quả khi thử lại. Chỉ lần dịch thành công mới bị trừ phí, nên thử lại sau khi thất bại không tốn thêm gì. Ngoại lệ là timeout mạng: nếu lần gọi đầu thực ra đã thành công, lần thử lại sẽ tính phí như một lệnh gọi thứ hai.