File size: 2,593 Bytes
ef02f0c
9b5b26a
 
 
c19d193
6aae614
9b5b26a
 
ef02f0c
 
9b5b26a
 
ef02f0c
 
 
9b5b26a
ef02f0c
 
 
9b5b26a
 
ef02f0c
 
 
 
 
 
 
 
 
 
8c01ffb
ef02f0c
 
 
 
 
 
 
 
8c01ffb
ef02f0c
6aae614
ae7a494
ef02f0c
e121372
ef02f0c
 
 
 
13d500a
8c01ffb
ef02f0c
9b5b26a
8c01ffb
861422e
 
ef02f0c
 
8c01ffb
8fe992b
ef02f0c
8c01ffb
 
 
 
ef02f0c
 
861422e
8fe992b
 
ef02f0c
 
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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"

@tool
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()