File size: 1,678 Bytes
2057855
 
d6c76ba
2057855
 
 
 
 
 
 
 
 
 
d6c76ba
 
 
 
 
 
 
 
 
 
 
2057855
 
d6c76ba
2057855
 
 
0925637
febe12b
d6c76ba
 
eab78ac
 
d6c76ba
 
 
 
 
 
 
eab78ac
d6c76ba
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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)