| 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 |
|
|