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