import os import streamlit as st try: import google.generativeai as genai except ImportError: genai = None def get_gemini_api_key(): if hasattr(st.secrets, "GEMINI_API_KEY"): return st.secrets["GEMINI_API_KEY"] return os.getenv("GEMINI_API_KEY") def ensure_genai(): if genai is None: raise ImportError( "google-generativeai is not installed. Please add it to requirements.txt and re-deploy." ) def gemini_generate(prompt, model="gemini-1.5-pro"): """ Simple Gemini text completion for Q&A or summarization. """ ensure_genai() api_key = get_gemini_api_key() if not api_key: raise RuntimeError("Gemini API key not set in Streamlit secrets or environment variable.") genai.configure(api_key=api_key) model_obj = genai.GenerativeModel(model) response = model_obj.generate_content(prompt) return response.text if hasattr(response, "text") else str(response) def gemini_generate_code(system_instruction, user_prompt, model="gemini-1.5-pro"): """ Use Gemini for code generation (NO explicit system/user roles allowed in public API). Concatenates system_instruction + user_prompt into a single prompt string. """ ensure_genai() api_key = get_gemini_api_key() if not api_key: raise RuntimeError("Gemini API key not set in Streamlit secrets or environment variable.") genai.configure(api_key=api_key) model_obj = genai.GenerativeModel(model) prompt = f"{system_instruction.strip()}\n\n{user_prompt.strip()}" response = model_obj.generate_content(prompt) return response.text if hasattr(response, "text") else str(response)