Spaces:
Sleeping
Sleeping
Update orchestrator/gemini.py
Browse files- orchestrator/gemini.py +3 -15
orchestrator/gemini.py
CHANGED
|
@@ -1,20 +1,14 @@
|
|
| 1 |
import os
|
| 2 |
import streamlit as st
|
| 3 |
|
| 4 |
-
# Try to import the Gemini client
|
| 5 |
try:
|
| 6 |
import google.generativeai as genai
|
| 7 |
except ImportError:
|
| 8 |
genai = None
|
| 9 |
|
| 10 |
def get_gemini_api_key():
|
| 11 |
-
"""
|
| 12 |
-
Return Gemini API key from Streamlit secrets or environment variable.
|
| 13 |
-
"""
|
| 14 |
-
# Try Streamlit Secrets (recommended on Spaces)
|
| 15 |
if hasattr(st.secrets, "GEMINI_API_KEY"):
|
| 16 |
return st.secrets["GEMINI_API_KEY"]
|
| 17 |
-
# Fallback to environment variable
|
| 18 |
return os.getenv("GEMINI_API_KEY")
|
| 19 |
|
| 20 |
def ensure_genai():
|
|
@@ -34,13 +28,12 @@ def gemini_generate(prompt, model="gemini-1.5-pro"):
|
|
| 34 |
genai.configure(api_key=api_key)
|
| 35 |
model_obj = genai.GenerativeModel(model)
|
| 36 |
response = model_obj.generate_content(prompt)
|
| 37 |
-
# Try to return the 'text' property (for Gemini's Python client), fallback to string
|
| 38 |
return response.text if hasattr(response, "text") else str(response)
|
| 39 |
|
| 40 |
def gemini_generate_code(system_instruction, user_prompt, model="gemini-1.5-pro"):
|
| 41 |
"""
|
| 42 |
-
Use Gemini for code generation
|
| 43 |
-
|
| 44 |
"""
|
| 45 |
ensure_genai()
|
| 46 |
api_key = get_gemini_api_key()
|
|
@@ -48,11 +41,6 @@ def gemini_generate_code(system_instruction, user_prompt, model="gemini-1.5-pro"
|
|
| 48 |
raise RuntimeError("Gemini API key not set in Streamlit secrets or environment variable.")
|
| 49 |
genai.configure(api_key=api_key)
|
| 50 |
model_obj = genai.GenerativeModel(model)
|
| 51 |
-
|
| 52 |
-
prompt = [
|
| 53 |
-
{"role": "system", "parts": [system_instruction]},
|
| 54 |
-
{"role": "user", "parts": [user_prompt]},
|
| 55 |
-
]
|
| 56 |
response = model_obj.generate_content(prompt)
|
| 57 |
-
# Try to return the 'text' property (for Gemini's Python client), fallback to string
|
| 58 |
return response.text if hasattr(response, "text") else str(response)
|
|
|
|
| 1 |
import os
|
| 2 |
import streamlit as st
|
| 3 |
|
|
|
|
| 4 |
try:
|
| 5 |
import google.generativeai as genai
|
| 6 |
except ImportError:
|
| 7 |
genai = None
|
| 8 |
|
| 9 |
def get_gemini_api_key():
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
if hasattr(st.secrets, "GEMINI_API_KEY"):
|
| 11 |
return st.secrets["GEMINI_API_KEY"]
|
|
|
|
| 12 |
return os.getenv("GEMINI_API_KEY")
|
| 13 |
|
| 14 |
def ensure_genai():
|
|
|
|
| 28 |
genai.configure(api_key=api_key)
|
| 29 |
model_obj = genai.GenerativeModel(model)
|
| 30 |
response = model_obj.generate_content(prompt)
|
|
|
|
| 31 |
return response.text if hasattr(response, "text") else str(response)
|
| 32 |
|
| 33 |
def gemini_generate_code(system_instruction, user_prompt, model="gemini-1.5-pro"):
|
| 34 |
"""
|
| 35 |
+
Use Gemini for code generation (NO explicit system/user roles allowed in public API).
|
| 36 |
+
Concatenates system_instruction + user_prompt into a single prompt string.
|
| 37 |
"""
|
| 38 |
ensure_genai()
|
| 39 |
api_key = get_gemini_api_key()
|
|
|
|
| 41 |
raise RuntimeError("Gemini API key not set in Streamlit secrets or environment variable.")
|
| 42 |
genai.configure(api_key=api_key)
|
| 43 |
model_obj = genai.GenerativeModel(model)
|
| 44 |
+
prompt = f"{system_instruction.strip()}\n\n{user_prompt.strip()}"
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
response = model_obj.generate_content(prompt)
|
|
|
|
| 46 |
return response.text if hasattr(response, "text") else str(response)
|