Spaces:
Sleeping
Sleeping
| 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) | |