Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -226,41 +226,64 @@ final_answer = FinalAnswerTool()
|
|
| 226 |
# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
|
| 227 |
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
|
| 228 |
|
| 229 |
-
model = HfApiModel(
|
| 230 |
-
max_tokens=2096,
|
| 231 |
-
temperature=0.5,
|
| 232 |
-
model_id='sarvamai/sarvam-m',# it is possible that this model may be overloaded
|
| 233 |
-
)
|
| 234 |
-
|
| 235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 236 |
|
| 237 |
-
|
| 238 |
-
|
|
|
|
|
|
|
|
|
|
| 239 |
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
get_horoscope,
|
| 248 |
get_date_panchang,
|
| 249 |
get_holidays,
|
| 250 |
get_panchang_field,
|
| 251 |
get_festivals_today,
|
| 252 |
get_current_time_in_timezone,
|
| 253 |
my_custom_tool,
|
| 254 |
-
image_generation_tool
|
| 255 |
-
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 264 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 265 |
|
| 266 |
-
|
|
|
|
|
|
| 226 |
# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
|
| 227 |
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
|
| 228 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 229 |
|
| 230 |
+
# Define Models
|
| 231 |
+
primary_model = HfApiModel(
|
| 232 |
+
max_tokens=2096,
|
| 233 |
+
temperature=0.5,
|
| 234 |
+
model_id='sarvamai/sarvam-m', # Primary model, possibly overloaded
|
| 235 |
+
)
|
| 236 |
|
| 237 |
+
backup_model = HfApiModel(
|
| 238 |
+
max_tokens=2096,
|
| 239 |
+
temperature=0.5,
|
| 240 |
+
model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud', # Backup model
|
| 241 |
+
)
|
| 242 |
|
| 243 |
+
# Function to Build an Agent with Any Model
|
| 244 |
+
def build_agent(model_to_use):
|
| 245 |
+
return CodeAgent(
|
| 246 |
+
model=model_to_use,
|
| 247 |
+
tools=[
|
| 248 |
+
final_answer,
|
| 249 |
+
get_horoscope,
|
|
|
|
| 250 |
get_date_panchang,
|
| 251 |
get_holidays,
|
| 252 |
get_panchang_field,
|
| 253 |
get_festivals_today,
|
| 254 |
get_current_time_in_timezone,
|
| 255 |
my_custom_tool,
|
| 256 |
+
image_generation_tool
|
| 257 |
+
],
|
| 258 |
+
max_steps=6,
|
| 259 |
+
verbosity_level=1,
|
| 260 |
+
grammar=None,
|
| 261 |
+
planning_interval=None,
|
| 262 |
+
name=None,
|
| 263 |
+
description=None,
|
| 264 |
+
prompt_templates=prompt_templates
|
| 265 |
+
)
|
| 266 |
+
|
| 267 |
+
# Instantiate Primary Agent
|
| 268 |
+
agent = build_agent(primary_model)
|
| 269 |
+
|
| 270 |
+
# Fallback-Handled Runner Function
|
| 271 |
+
def agent_runner(user_input):
|
| 272 |
+
try:
|
| 273 |
+
result = agent.run(user_input)
|
| 274 |
+
if result is None or result.strip() == "":
|
| 275 |
+
raise ValueError("Primary model returned empty response.")
|
| 276 |
+
return result
|
| 277 |
+
except Exception as e:
|
| 278 |
+
print(f"Primary model failed: {e}")
|
| 279 |
+
print("Switching to backup model...")
|
| 280 |
|
| 281 |
+
backup_agent = build_agent(backup_model)
|
| 282 |
+
try:
|
| 283 |
+
result = backup_agent.run(user_input)
|
| 284 |
+
return result or "Backup model also failed."
|
| 285 |
+
except Exception as e2:
|
| 286 |
+
return f"Backup model failed as well: {e2}"
|
| 287 |
|
| 288 |
+
# Launch Gradio with Fallback Logic
|
| 289 |
+
GradioUI(agent_runner).launch()
|