വിവർത്തന ക്യൂ: ബാച്ച് പ്രോസസ്സിംഗ് സിസ്റ്റം

AI API ഉപയോഗം മെച്ചപ്പെടുത്തുന്നതിനായി ഞങ്ങൾ വിവർത്തനങ്ങൾ എങ്ങനെ ക്യൂ ചെയ്യുകയും ബാച്ച്-പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു എന്ന് ഈ ലേഖനം വിശദീകരിക്കുന്നു.

പ്രശ്നം: ഓൺ-ഡിമാൻഡ് വിവർത്തനം ചെലവേറിയതാണ്

ഓൺ-ഡിമാൻഡ് ഉള്ളടക്കം വിവർത്തനം ചെയ്യുന്നതിൽ പ്രശ്നങ്ങളുണ്ട്:

  • വേഗത കുറവ്: ഓരോ വിവർത്തനത്തിനും 1-2 സെക്കൻഡ് എടുക്കും

  • ചെലവേറിയത്: ഓരോ അഭ്യർത്ഥനയ്ക്കും API ചെലവുകൾ

  • ആവർത്തനം: ഒരേ ടെക്സ്റ്റ് ഒന്നിലധികം തവണ വിവർത്തനം ചെയ്യുന്നു

  • ബ്ലോക്കിംഗ്: ഉപയോക്താവ് വിവർത്തനത്തിനായി കാത്തിരിക്കുന്നു

ഞങ്ങൾക്ക് ഒരു മികച്ച സമീപനം ആവശ്യമാണ്.

പരിഹാരം: ക്യൂവും ബാച്ചും

ക്യൂ: വിവർത്തന അഭ്യർത്ഥനകൾ ശേഖരിക്കുക

ബാച്ച്: ഒന്നിലധികം വിവർത്തനങ്ങൾ ഒരുമിച്ച് പ്രോസസ്സ് ചെയ്യുക

കാഷെ: വീണ്ടും ഉപയോഗിക്കുന്നതിനായി ഫലങ്ങൾ സംഭരിക്കുക

ഷെഡ്യൂൾ: ക്യൂ നിയമിതമായി പ്രോസസ്സ് ചെയ്യുക (റിയൽ-ടൈം അല്ല)

ക്യൂ ഘടന

ക്യൂ ഫയൽ

സ്ഥാനം: ഡിസ്കിലെ JSON ഫയൽ

ഫോർമാറ്റ്: വിവർത്തന അഭ്യർത്ഥനകളുടെ അറേ

ഫീൽഡുകൾ:

  • text: വിവർത്തനം ചെയ്യേണ്ട ഇംഗ്ലീഷ് ടെക്സ്റ്റ്

  • target_lang: ഭാഷാ കോഡ് (hi, de, fr, മുതലായവ)

  • context: ടെക്സ്റ്റ് എവിടെ പ്രത്യക്ഷപ്പെടുന്നു (product, query, article)

  • priority: High/normal/low

ക്യൂവിലേക്ക് ചേർക്കൽ

ഒരു വിവർത്തനം കാണാത്തപ്പോൾ:

queue_translation(text, target_lang, context="product")

ഡീഡൂപ്ലിക്കേഷൻ: ഇതിനകം ക്യൂവിൽ ഉണ്ടോ എന്ന് പരിശോധിക്കുക

വാലിഡേഷൻ: അസാധുവായ മൂല്യങ്ങൾ നിരസിക്കുക

ബാച്ച് പ്രോസസ്സിംഗ്

സ്ക്രിപ്റ്റ്

സ്ഥാനം: scripts/web/process_translation_queue.py

ഷെഡ്യൂൾ: cron വഴി ഓരോ 6 മണിക്കൂറിലും പ്രവർത്തിക്കുന്നു

ലോക്ക് ഫയൽ: ഒരേസമയം പ്രവർത്തനങ്ങൾ തടയുന്നു

പ്രോസസ്സ് ഫ്ലോ

1. ക്യൂ ലോഡ് ചെയ്യുക: എല്ലാ പെൻഡിംഗ് അഭ്യർത്ഥനകളും വായിക്കുക

2. ഭാഷ അനുസരിച്ച് ഗ്രൂപ്പ് ചെയ്യുക: ഒരേ ഭാഷയിലുള്ള അഭ്യർത്ഥനകൾ ബാച്ച് ചെയ്യുക

3. ഡീഡൂപ്ലിക്കേറ്റ് ചെയ്യുക: ബാച്ചിനുള്ളിലെ ഡ്യൂപ്ലിക്കേറ്റുകൾ നീക്കുക

4. കാഷെ പരിശോധിക്കുക: ഇതിനകം വിവർത്തനം ചെയ്ത ടെക്സ്റ്റുകൾ ഒഴിവാക്കുക

5. ബാച്ച് വിവർത്തനം ചെയ്യുക: DeepSeek API-ലേക്ക് അയയ്ക്കുക

6. ഫലങ്ങൾ പാഴ്സ് ചെയ്യുക: പ്രതികരണത്തിൽ നിന്ന് വിവർത്തനങ്ങൾ വേർതിരിച്ചെടുക്കുക

7. കാഷെയിൽ സേവ് ചെയ്യുക: phrase tables-ൽ സംഭരിക്കുക

8. ക്യൂ ക്ലിയർ ചെയ്യുക: പ്രോസസ്സ് ചെയ്ത അഭ്യർത്ഥനകൾ നീക്കുക

ബാച്ച് വിവർത്തനം

API കോൾ

മോഡൽ: DeepSeek-V3 (Together.ai വഴി)

സിസ്റ്റം പ്രോംപ്റ്റ്: കാഷെ ചെയ്തത് (ഭാഷയിലെ എല്ലാ ബാച്ചുകൾക്കും ഒന്നുതന്നെ)

യൂസർ പ്രോംപ്റ്റ്: വേരിയബിൾ (ബാച്ച്-നിർദ്ദിഷ്ടം)

ഫോർമാറ്റ്: അക്കമിട്ട പട്ടിക

ഉദാഹരണം:

Translate these 10 texts:
1. Mini PC
2. Thin Client
3. Compact Desktop
...

പ്രതികരണം:

1. मिनी पीसी
2. थिन क्लाइंट
3. കോംപാക്ട് ഡെസ്ക്ടോപ്പ്
...

പാഴ്സിംഗ്

വരി നമ്പർ അനുസരിച്ച് വിവർത്തനങ്ങൾ വേർതിരിച്ചെടുക്കുക:

  • നമ്പർ പ്രിഫിക്സ് നീക്കുക (1., 2., മുതലായവ)

  • സ്ഥാനം അനുസരിച്ച് യഥാർത്ഥ ടെക്സ്റ്റുകളുമായി പൊരുത്തപ്പെടുത്തുക

  • എണ്ണം പൊരുത്തപ്പെടുന്നുണ്ടോ എന്ന് പരിശോധിക്കുക

എറർ ഹാൻഡ്ലിംഗ്

API പരാജയം: fallback API ഉപയോഗിച്ച് വീണ്ടും ശ്രമിക്കുക

പാഴ്സ് പരാജയം: യഥാർത്ഥ ടെക്സ്റ്റുകൾ തിരികെ നൽകുക

ഭാഗിക വിജയം: വിജയകരമായ വിവർത്തനങ്ങൾ സേവ് ചെയ്യുക, പരാജയങ്ങൾ വീണ്ടും ക്യൂ ചെയ്യുക

കാഷിംഗ് തന്ത്രം

Phrase Tables

സ്ഥാനം: ഓരോ ഭാഷയ്ക്കും JSON ഫയലുകൾ

ഫോർമാറ്റ്: {"English": "Translation"}

ലോഡിംഗ്: സ്റ്റാർട്ടപ്പിൽ ഒരിക്കൽ ലോഡ് ചെയ്യുന്നു

നേട്ടം: വേഗത്തിലുള്ള ലുക്കപ്പുകൾ, API കോളുകൾ ഇല്ല

കാഷെ ഹിറ്റ് റേറ്റ്

ആദ്യ റൺ: കുറവ് (എല്ലാം പുതിയത്)

തുടർന്നുള്ള റണ്ണുകൾ: ഉയർന്നത് (മിക്ക ടെക്സ്റ്റുകളും കാഷെ ചെയ്തത്)

നേട്ടം: കുറഞ്ഞ API ചെലവുകൾ

സംരക്ഷണ നിയമങ്ങൾ

വിവർത്തന സമയത്ത്, ഞങ്ങൾ സംരക്ഷിക്കുന്നു:

ബ്രാൻഡ് നാമങ്ങൾ: Thinvent®, Intel®, AMD®

HTML ടാഗുകൾ: <p>, <br>, <strong>

URL-കൾ: https://www.thinvent.in

SKU-കൾ: Treo-N100-8-256

അക്കങ്ങൾ: 8GB, 256GB, 4 cores

നടപ്പാക്കൽ: സിസ്റ്റം പ്രോംപ്റ്റിലെ Regex പാറ്റേണുകൾ

ഭാഷാ കണ്ടെത്തൽ

വിവർത്തനം ചെയ്യുന്നതിന് മുമ്പ്, ഇതിനകം വിവർത്തനം ചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുക:

രീതി: ക്യാരക്ടർ സെറ്റ് വിശകലനം

ഹിന്ദി: ദേവനാഗരി ലിപി

ചൈനീസ്: CJK ക്യാരക്ടറുകൾ

അറബിക്: അറബിക് ലിപി

നേട്ടം: അനാവശ്യ വിവർത്തനങ്ങൾ ഒഴിവാക്കുക

പ്രയോറിറ്റി ഹാൻഡ്ലിംഗ്

ഉയർന്ന പ്രയോറിറ്റി: ഉൽപ്പന്ന നാമങ്ങൾ, സവിശേഷതകൾ (ആദ്യം പ്രോസസ്സ് ചെയ്യുക)

സാധാരണ പ്രയോറിറ്റി: വിവരണങ്ങൾ, ലേഖനങ്ങൾ (രണ്ടാമതായി പ്രോസസ്സ് ചെയ്യുക)

കുറഞ്ഞ പ്രയോറിറ്റി: പഴയ ഉള്ളടക്കം, അപൂർവ്വമായി കാണുന്നത് (അവസാനം പ്രോസസ്സ് ചെയ്യുക)

നേട്ടം: പ്രധാന ഉള്ളടക്കം ആദ്യം വിവർത്തനം ചെയ്യുന്നു

ഷെഡ്യൂളിംഗ്

Cron Job

ആവൃത്തി: ഓരോ 6 മണിക്കൂറിലും

കമാൻഡ്: python3 scripts/web/process_translation_queue.py

ലോക്ക് ഫയൽ: /tmp/process_translation_queue.lock

നേട്ടം: സ്വയമേധയാ പ്രോസസ്സിംഗ്, മാനുവൽ ഇടപെടൽ ഇല്ല

പ്രതിവാര ടാസ്ക്കുകൾ

ലേഖനങ്ങൾ: പുതിയ ലേഖനങ്ങൾ പ്രതിവാരം വിവർത്തനം ചെയ്യുക

Babel strings: ടെംപ്ലേറ്റ് വിവർത്തനങ്ങൾ പ്രതിവാരം അപ്ഡേറ്റ് ചെയ്യുക

സ്ക്രിപ്റ്റ്: scripts/web/translate_articles_weekly.sh

മോണിറ്ററിംഗ്

ക്യൂ വലുപ്പം

പെൻഡിംഗ് അഭ്യർത്ഥനകൾ ട്രാക്ക് ചെയ്യുക:

  • മൊത്തം അഭ്യർത്ഥനകൾ

  • ഓരോ ഭാഷയിലെയും അഭ്യർത്ഥനകൾ

  • ഏറ്റവും പഴയ അഭ്യർത്ഥനയുടെ പ്രായം

അലേർട്ട്: ക്യൂ വളരെ വലുതായാൽ

വിവർത്തന സ്ഥിതിവിവരക്കണക്കുകൾ

പ്രോസസ്സിംഗ് ട്രാക്ക് ചെയ്യുക:

  • ഓരോ ബാച്ചിലെയും വിവർത്തനങ്ങൾ

  • API വിജയ നിരക്ക്

  • കാഷെ ഹിറ്റ് റേറ്റ്

  • പ്രോസസ്സിംഗ് സമയം

ചെലവ് ട്രാക്കിംഗ്

API ഉപയോഗം നിരീക്ഷിക്കുക:

  • പ്രതിദിന അഭ്യർത്ഥനകൾ

  • ഓരോ അഭ്യർത്ഥനയിലെയും ടോക്കണുകൾ

  • ഓരോ ഭാഷയിലെയും ചെലവ്

റഫറൻസുകൾ

ബന്ധപ്പെട്ട ലേഖനങ്ങൾ

സംഗ്രഹം

വിവർത്തന ക്യൂ കാര്യക്ഷമമായ ബാച്ച് പ്രോസസ്സിംഗ് പ്രാപ്തമാക്കുന്നു:

ക്യൂ:

  • വിവർത്തന അഭ്യർത്ഥനകൾ ശേഖരിക്കുക

  • ബാച്ചിനുള്ളിൽ ഡീഡൂപ്ലിക്കേറ്റ് ചെയ്യുക

  • പ്രയോറിറ്റി ഹാൻഡ്ലിംഗ്

  • വാലിഡേഷനും ഫിൽട്ടറിംഗും

ബാച്ച് പ്രോസസ്സിംഗ്:

  • ഭാഷ അനുസരിച്ച് ഗ്രൂപ്പ് ചെയ്യുക

  • DeepSeek API-ലേക്ക് അയയ്ക്കുക

  • അക്കമിട്ട പ്രതികരണങ്ങൾ പാഴ്സ് ചെയ്യുക

  • Phrase tables-ൽ സേവ് ചെയ്യുക

കാഷിംഗ്:

  • വിവർത്തനം ചെയ്യുന്നതിന് മുമ്പ് കാഷെ പരിശോധിക്കുക

  • ഉയർന്ന കാഷെ ഹിറ്റ് റേറ്റ്

  • കുറഞ്ഞ API ചെലവുകൾ

ഷെഡ്യൂളിംഗ്:

  • cron വഴി ഓരോ 6 മണിക്കൂറിലും

  • ലോക്ക് ഫയൽ ഒരേസമയം പ്രവർത്തനങ്ങൾ തടയുന്നു

  • പ്രതിവാര ലേഖന വിവർത്തനങ്ങൾ

സംരക്ഷണം:

  • ബ്രാൻഡ് നാമങ്ങൾ

  • HTML ടാഗുകൾ

  • URL-കളും SKU-കളും

ഈ സമീപനം ബാച്ചിംഗും കാഷിംഗും വഴി API ചെലവുകൾ കുറയ്ക്കുകയും വിവർത്തന ഗുണനിലവാരം മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു.


← Back to Documentation Index