langchain-multi-agents / agents /weather_agent.py
Sharath1036's picture
added sys to detect folders
04b1d6c
import os
import sys
from langchain_community.utilities import OpenWeatherMapAPIWrapper
from dotenv import load_dotenv
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.agents import AgentType, Tool, initialize_agent
class WeatherAgent:
def __init__(self):
self._load_environment()
self.weather_tool = self._initialize_weather_tool()
self.llm = self._initialize_llm()
self.tools = self._initialize_tools()
self.agent = self._initialize_agent()
def _load_environment(self):
load_dotenv(override=True)
os.environ["GOOGLE_API_KEY"] = os.getenv("GOOGLE_API_KEY")
os.environ["OPENWEATHERMAP_API_KEY"] = os.getenv("OPENWEATHERMAP_API_KEY")
os.environ["LANGSMITH_TRACING"]= "true"
os.environ["LANGSMITH_API_KEY"] = os.getenv("LANGSMITH_API_KEY")
def _initialize_weather_tool(self):
return OpenWeatherMapAPIWrapper()
def _initialize_llm(self):
return ChatGoogleGenerativeAI(
model="gemini-2.5-flash",
api_key=os.getenv("GOOGLE_API_KEY"),
temperature=0.0,
)
def _initialize_tools(self):
return [
Tool(
name="weather",
func=self.weather_tool.run,
description="Use this tool to get the current weather in a specified location."
)
]
def _initialize_agent(self):
return initialize_agent(
self.tools,
self.llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
)
def ask(self, location: str):
prompt = f"What's the weather like in {location}?"
print("Asking:", prompt)
result = self.agent.run(prompt)
print("Result:", result)
return result
if __name__ == "__main__":
print("Starting Weather Agent...")
weather_agent = WeatherAgent()
print("Agent initialized.")
location = "Avignon" # Example location
response = weather_agent.ask(location)
print("Response:", response)