Add dual model support: M2M100 and NLLB-200
- Added optional 'model' parameter to translation request (default: m2m100)
- M2M100: 105 languages, Apache 2.0 License (commercial OK)
- NLLB-200: 200 languages, CC-BY-NC 4.0 License (non-commercial only)
- Updated /api/translate endpoint to accept model selection
- Updated /api/supported-languages to show languages per model
- Added comprehensive language name mappings for all NLLB-200 languages
- Both models can be used independently with automatic model loading
- Model information includes license and commercial use status
Example usage:
- Default (M2M100): {"text": "Hello", "source_lang": "en", "target_lang": "ko"}
- NLLB-200: {"text": "Hello", "source_lang": "en", "target_lang": "ko", "model": "nllb200"}
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
from pydantic import BaseModel, Field, field_validator
|
||||
from typing import Optional
|
||||
from typing import Optional, Literal
|
||||
|
||||
|
||||
class TranslationRequest(BaseModel):
|
||||
@ -7,6 +7,10 @@ class TranslationRequest(BaseModel):
|
||||
text: str = Field(..., description="Text to translate", min_length=1, max_length=5000)
|
||||
source_lang: str = Field(..., description="Source language code (e.g., 'en', 'ms', 'bn', etc.)", min_length=2, max_length=5)
|
||||
target_lang: str = Field(..., description="Target language code (e.g., 'en', 'ms', 'bn', etc.)", min_length=2, max_length=5)
|
||||
model: Literal["m2m100", "nllb200"] = Field(
|
||||
default="m2m100",
|
||||
description="Translation model to use: 'm2m100' (105 langs, Apache 2.0, commercial OK) or 'nllb200' (200 langs, CC-BY-NC, non-commercial only)"
|
||||
)
|
||||
|
||||
@field_validator('source_lang', 'target_lang')
|
||||
@classmethod
|
||||
@ -19,7 +23,8 @@ class TranslationRequest(BaseModel):
|
||||
"example": {
|
||||
"text": "Selamat pagi, apa khabar?",
|
||||
"source_lang": "ms",
|
||||
"target_lang": "en"
|
||||
"target_lang": "en",
|
||||
"model": "m2m100"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user