dlaima commited on
Commit
04dd10e
·
verified ·
1 Parent(s): 9b7f7e3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -20
app.py CHANGED
@@ -19,28 +19,32 @@ DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
19
 
20
  # Gemini model wrapper (lightweight, no smolagents.model.base)
21
  class GeminiFlashModel:
22
- def __init__(self, model_name="gemini-1.5-flash", api_key=None):
23
- self.model_name = model_name
24
- self.api_key = api_key or os.getenv("GEMINI_API_KEY")
25
- if not self.api_key:
26
- raise ValueError("GEMINI_API_KEY is not set.")
27
- genai.configure(api_key=self.api_key)
28
- self.model = genai.GenerativeModel(model_name)
29
 
30
  def generate(self, messages, stop_sequences=None, **kwargs):
31
- if isinstance(messages, list):
32
- if not any(m["role"] == "system" for m in messages):
33
- messages = [{"role": "system", "content": SYSTEM_PROMPT}] + messages
34
- else:
35
- raise TypeError("Expected 'messages' to be a list of dicts.")
36
-
37
- prompt = "\n".join(f"{m['role'].capitalize()}: {m['content']}" for m in messages)
38
-
39
- try:
40
- response = self.model.generate_content(prompt)
41
- return {"content": response.text.strip()} # ✅ Return a dict with 'content'
42
- except Exception as e:
43
- return {"content": f"GENERATION ERROR: {e}"} # ✅ Error message also in 'content'
 
 
 
 
 
 
44
 
45
 
46
  # Agent using Gemini
 
19
 
20
  # Gemini model wrapper (lightweight, no smolagents.model.base)
21
  class GeminiFlashModel:
22
+ def __init__(self, model_id="gemini-1.5-flash", api_key=None):
23
+ import google.generativeai as genai
24
+ genai.configure(api_key=api_key or os.getenv("GOOGLE_API_KEY"))
25
+ self.model = genai.GenerativeModel(model_id)
26
+ self.system_prompt = SYSTEM_PROMPT
 
 
27
 
28
  def generate(self, messages, stop_sequences=None, **kwargs):
29
+ # Validate and prepend system prompt
30
+ if not isinstance(messages, list) or not all(isinstance(m, dict) for m in messages):
31
+ raise TypeError("Expected 'messages' to be a list of dicts")
32
+
33
+ if not any(m.get("role") == "system" for m in messages):
34
+ messages = [{"role": "system", "content": self.system_prompt}] + messages
35
+
36
+ # ✅ Construct prompt string (you may improve formatting here)
37
+ prompt = ""
38
+ for m in messages:
39
+ role = m["role"].capitalize()
40
+ content = m["content"]
41
+ prompt += f"{role}: {content}\n"
42
+
43
+ try:
44
+ response = self.model.generate_content(prompt)
45
+ return {"content": response.text.strip()} # ✅ SmolAgent expects this format
46
+ except Exception as e:
47
+ return {"content": f"GENERATION ERROR: {e}"}
48
 
49
 
50
  # Agent using Gemini