Welcome to a clean, simple, and elegant webpage

#テレグラムなら無料で適当なBOTを立ち上げるだけで翻訳を介して会話できる。
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from langdetect import detect
import torch
from telegram import Update
from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
from langdetect import detect

# モデルロード
model_name = "facebook/nllb-200-distilled-600M"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name).to("cuda")

# 言語コードマップ
lang_map = {
    "ja": "jpn_Jpan",
    "th": "tha_Thai"
}

async def translate(update, context):
    text = update.message.text.strip()
    try:
        src_lang = detect(text)
        if src_lang not in lang_map:
            await update.message.reply_text("日本語かタイ語で入力してください。")
            return
        tgt_lang = "th" if src_lang == "ja" else "ja"

        tokenizer.src_lang = lang_map[src_lang]
        encoded = tokenizer(text, return_tensors="pt").to("cuda")
        generated = model.generate(**encoded, forced_bos_token_id=tokenizer.lang_code_to_id[lang_map[tgt_lang]])
        result = tokenizer.batch_decode(generated, skip_special_tokens=True)[0]
        await update.message.reply_text(result)

    except Exception as e:
        await update.message.reply_text(f"翻訳エラー: {e}")
        
app = ApplicationBuilder().token("TELEGRAM_BOT_TOKEN").build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, translate))
app.run_polling()