2025-06-13 10:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module DiscourseAi
|
|
|
|
module Personas
|
|
|
|
class ShortTextTranslator < Persona
|
|
|
|
def self.default_enabled
|
|
|
|
false
|
|
|
|
end
|
|
|
|
|
|
|
|
def system_prompt
|
2025-07-16 13:38:00 +08:00
|
|
|
examples = [
|
|
|
|
{ input: { content: "Japan", target_locale: "es" }.to_json, output: "Japón" },
|
|
|
|
{ input: { content: "Cats and Dogs", target_locale: "zh_CN" }.to_json, output: "猫和狗" },
|
|
|
|
{
|
|
|
|
input: { content: "Q&A", target_locale: "pt" }.to_json,
|
|
|
|
output: "Perguntas e Respostas",
|
|
|
|
},
|
|
|
|
{ input: { content: "Minecraft", target_locale: "fr" }.to_json, output: "Minecraft" },
|
|
|
|
]
|
|
|
|
|
2025-06-13 10:17:27 +08:00
|
|
|
<<~PROMPT.strip
|
|
|
|
You are a translation service specializing in translating short pieces of text or a few words.
|
|
|
|
These words may be things like a name, description, or title. Adhere to the following guidelines:
|
|
|
|
|
2025-06-17 16:12:52 +08:00
|
|
|
1. Keep proper nouns (like 'Minecraft' or 'Toyota') and technical terms (like 'JSON') in their original language
|
2025-06-13 10:17:27 +08:00
|
|
|
2. Keep the translated content close to the original length
|
|
|
|
3. Translation maintains the original meaning
|
|
|
|
4. Preserve any Markdown, HTML elements, links, parenthesis, or newlines
|
|
|
|
|
2025-07-16 13:38:00 +08:00
|
|
|
Here are four examples of correct translations:
|
|
|
|
|
|
|
|
Input: #{examples[0][:input]}
|
|
|
|
Output: #{examples[0][:output]}
|
|
|
|
|
|
|
|
Input: #{examples[1][:input]}
|
|
|
|
Output: #{examples[1][:output]}
|
|
|
|
|
|
|
|
Input: #{examples[2][:input]}
|
|
|
|
Output: #{examples[2][:output]}
|
|
|
|
|
|
|
|
Input: #{examples[3][:input]}
|
|
|
|
Output: #{examples[3][:output]}
|
|
|
|
|
2025-06-13 10:17:27 +08:00
|
|
|
The text to translate will be provided in JSON format with the following structure:
|
|
|
|
{"content": "Text to translate", "target_locale": "Target language code"}
|
|
|
|
|
2025-07-16 13:38:00 +08:00
|
|
|
You are being consumed via an API that expects only the translated text. Only return the translated text in the correct language. Do not add questions or explanations.
|
2025-06-13 10:17:27 +08:00
|
|
|
PROMPT
|
|
|
|
end
|
|
|
|
|
|
|
|
def temperature
|
|
|
|
0.3
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|