LogosAI / process /interpretation.py
IvanMiao's picture
fix: ruff lint&format
79a1ae4
from google import genai
from google.genai import types
from process.sys_prompt import GENERAL_PROMPT, NEWS_PROMPT, PHILO_PROMPT
NARRATIVE_PROMPT = ""
POEM_PROMPT = ""
def get_interpretation(
genre: str, api_key: str, text: str, learn_language: str, prof_language: str
) -> str:
if not api_key:
return "Error: Gemini API Key not found."
if not text:
return "Error: text not found."
try:
client = genai.Client(api_key=api_key)
except Exception as e:
return f"ERROR: {str(e)}"
lang_map = {
"AR": "Arabic",
"DE": "German",
"ES": "Spanish",
"EN": "English",
"FR": "French",
"IT": "Italian",
"JA": "Japanese",
"RU": "Russian",
"ZH": "Chinese",
}
learn_lang = lang_map.get(learn_language.upper(), "English")
prof_lang = lang_map.get(prof_language.upper(), "English")
genres = {
"general": GENERAL_PROMPT,
"news": NEWS_PROMPT,
"narrative": NARRATIVE_PROMPT,
"poem": POEM_PROMPT,
"philosophy": PHILO_PROMPT,
}
if genre.lower() in ["general", "news", "philosophy"]:
sys_prompt = (
genres[genre.lower()]
.replace("[LEARN_LANGUAGE]", learn_lang)
.replace("[PROF_LANGUAGE]", prof_lang)
)
response = client.models.generate_content(
model="gemini-2.5-pro",
config=types.GenerateContentConfig(
system_instruction=sys_prompt,
temperature=0.3,
),
contents=[text],
)
return response.text