Chatbot / src /tools /websearch.py
pratikcsv's picture
added chatbot with web search functionality
3bc934b
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.tools import tool
import os
class WebSearchTool:
def __init__(self, api_key: str):
self.api_key = api_key
if not api_key:
raise ValueError("Tavily API key is required for web search functionality")
# Set the API key as environment variable for TavilySearchResults
os.environ["TAVILY_API_KEY"] = api_key
self.search_tool = TavilySearchResults(
max_results=5
)
def search_web(self, query: str) -> str:
"""Search the web for current information about the given query."""
try:
results = self.search_tool.invoke(query)
if not results:
return "No search results found."
formatted_results = []
for result in results:
if isinstance(result, dict):
title = result.get('title', 'N/A')
content = result.get('content', 'N/A')
url = result.get('url', 'N/A')
formatted_results.append(f"Title: {title}\nContent: {content}\nURL: {url}\n")
else:
formatted_results.append(str(result))
return "\n".join(formatted_results)
except Exception as e:
return f"Error searching the web: {str(e)}"
def get_tool(self):
return self.search_tool