Spaces:
Sleeping
Sleeping
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool | |
import datetime | |
import requests | |
import pytz | |
import yaml | |
from tools.final_answer import FinalAnswerTool | |
from Gradio_UI import GradioUI | |
# Bhagavad Gita API Endpoint | |
BHAGAVAD_GITA_API = "https://bhagavadgitaapi.in/verses" | |
def get_bhagavad_gita_answer(problem: str) -> str: | |
""" | |
A tool that fetches relevant Bhagavad Gita verses based on a user's problem or life question. | |
Args: | |
problem: The problem or concern stated by the user. | |
Returns: | |
A verse from the Bhagavad Gita with its meaning and explanation. | |
""" | |
try: | |
# Send request to Bhagavad Gita API | |
response = requests.get(BHAGAVAD_GITA_API) | |
if response.status_code == 200: | |
verses = response.json() # Get all verses | |
relevant_verse = verses.get("verses")[0] # Fetch first relevant verse | |
verse_text = relevant_verse.get("text", "Verse not available") | |
meaning = relevant_verse.get("translation", "Meaning not found") | |
chapter = relevant_verse.get("chapter", "Unknown") | |
verse_number = relevant_verse.get("verse", "Unknown") | |
return (f"**Bhagavad Gita - Chapter {chapter}, Verse {verse_number}**\n\n" | |
f"📖 *{verse_text}*\n\n" | |
f"🔍 **Meaning:** {meaning}\n\n" | |
f"☸️ **Relevance to your problem:** This verse provides wisdom on how to approach challenges.") | |
else: | |
return "Sorry, I couldn't fetch a relevant verse at the moment. Please try again later." | |
except Exception as e: | |
return f"Error fetching Bhagavad Gita teachings: {str(e)}" | |
# Final Answer Tool | |
final_answer = FinalAnswerTool() | |
# Hugging Face Model | |
model = HfApiModel( | |
max_tokens=2096, | |
temperature=0.5, | |
model_id='Qwen/Qwen2.5-Coder-32B-Instruct', | |
custom_role_conversions=None, | |
) | |
# Import tool from Hugging Face Hub | |
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True) | |
with open("prompts.yaml", 'r') as stream: | |
prompt_templates = yaml.safe_load(stream) | |
# Code Agent Setup | |
agent = CodeAgent( | |
model=model, | |
tools=[final_answer, get_bhagavad_gita_answer], # Added Bhagavad Gita tool | |
max_steps=6, | |
verbosity_level=1, | |
grammar=None, | |
planning_interval=None, | |
name="Bhagavad Gita AI", | |
description="A spiritual guide using Bhagavad Gita teachings to solve life's problems.", | |
prompt_templates=prompt_templates | |
) | |
# Launch Gradio UI | |
GradioUI(agent).launch() | |