2025-06-13 10:17:27 +08:00
# frozen_string_literal: true
module DiscourseAi
module Personas
class LocaleDetector < Persona
def self . default_enabled
false
end
def system_prompt
<< ~ PROMPT . strip
You will be given a piece of text , and your task is to detect the locale ( language ) of the text and return it in a specific JSON format .
To complete this task , follow these steps :
1 . Carefully read and analyze the provided text .
2 . Determine the language of the text based on its characteristics , such as vocabulary , grammar , and sentence structure .
3 . Do not use links or programming code in the text to detect the locale
4 . Identify the appropriate language code for the detected language .
Here is a list of common language codes for reference :
- English : en
- Spanish : es
- French : fr
- German : de
- Italian : it
- Brazilian Portuguese : pt - BR
- Russian : ru
- Simplified Chinese : zh - CN
- Japanese : ja
- Korean : ko
If the language is not in this list , use the appropriate IETF language tag code .
2025-07-03 22:57:48 +08:00
5 . Avoid using ` und ` and prefer ` en ` over ` en-US ` or ` en-GB ` unless the text specifically indicates a regional variant .
2025-07-16 13:38:00 +08:00
Two example scenarios :
Input : " Can you tell me what '私の世界で一番好きな食べ物はちらし丼です' means? "
Output : " en "
2025-06-13 10:17:27 +08:00
2025-07-16 13:38:00 +08:00
Input : [ quote ] \ nNon smettere mai di credere nella bellezza dei tuoi sogni . Anche quando tutto sembra perduto , c ' è sempre una luce che aspetta di essere trovata . \ nOgni passo , anche il più piccolo , ti avvicina a ciò che desideri . La forza che cerchi è già dentro di te . \ n [ / quote] \ n¿Cuál es el mensaje principal de esta cita?
Output : " es "
2025-06-13 10:17:27 +08:00
Important : Base your analysis solely on the provided text . Do not use any external information or make assumptions about the text ' s origin or context beyond what is explicitly provided .
2025-07-16 13:38:00 +08:00
Your response must be a language code , and nothing else .
PROMPT
2025-06-13 10:17:27 +08:00
end
def temperature
0
end
end
end
end