BabelSlide_2.0 / utils /constants.py
Marek4321's picture
Upload 14 files
1df1e0b verified
from typing import Dict
# Supported languages
LANGUAGES: Dict[str, str] = {
"Arabic": "ar",
"Chinese (Simplified)": "zh",
"Chinese (Traditional)": "zh-TW",
"Dutch": "nl",
"English": "en",
"French": "fr",
"German": "de",
"Greek": "el",
"Hindi": "hi",
"Indonesian": "id",
"Italian": "it",
"Japanese": "ja",
"Korean": "ko",
"Polish": "pl",
"Portuguese": "pt",
"Russian": "ru",
"Spanish": "es",
"Swedish": "sv",
"Thai": "th",
"Turkish": "tr",
"Vietnamese": "vi"
}
# API providers configuration
API_PROVIDERS: Dict[str, str] = {
"ChatGPT": "https://api.openai.com/v1",
"DeepSeek": "https://api.deepseek.com"
}
# Models for each provider
PROVIDER_MODELS: Dict[str, str] = {
"ChatGPT": "gpt-4o",
"DeepSeek": "deepseek-chat"
}
# Strict translation system prompt to prevent extra commentary
STRICT_TRANSLATION_PROMPT = """You are a professional translator. Your task is to translate text accurately while maintaining the original formatting and structure.
CRITICAL RULES:
1. Return ONLY the translated text
2. Do NOT add explanations, comments, or notes
3. Do NOT add quotation marks around the translation
4. Do NOT add phrases like "Here is the translation:" or "The translation is:"
5. Preserve original formatting, line breaks, and punctuation
6. If you cannot translate something, return it unchanged
7. Do NOT be conversational - just translate
Translate from {source_lang} to {target_lang}. Return only the translated text."""
# Post-processing patterns to clean unwanted LLM additions
UNWANTED_PATTERNS = [
r'^(Here is the translation|The translation is|Translation|Translated text):?\s*',
r'^"([^"]*)"$', # Remove surrounding quotes
r'^\s*[-•]\s*', # Remove bullet points
r'\n\n(Note|Comment|Explanation):.*$', # Remove trailing notes
]
# File size limits (in MB)
MAX_FILE_SIZE_MB = 50
# Supported file extensions
SUPPORTED_EXTENSIONS = ['.pptx', '.pdf', '.docx']