30 lines
699 B
Python
30 lines
699 B
Python
import os
|
|
from typing import Dict
|
|
|
|
from langchain_core.tools import tool
|
|
from rich.console import Console
|
|
from rich.markdown import Markdown
|
|
from rich.panel import Panel
|
|
from tavily import TavilyClient
|
|
|
|
console = Console()
|
|
|
|
|
|
@tool
|
|
def web_search_tavily(query: str) -> Dict:
|
|
"""
|
|
Perform a web search using Tavily API.
|
|
|
|
Args:
|
|
query: The search query string
|
|
|
|
Returns:
|
|
Dict containing search results from Tavily
|
|
"""
|
|
client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])
|
|
console.print(
|
|
Panel(Markdown(query), title="🔍 Searching Tavily", border_style="bright_blue")
|
|
)
|
|
search_result = client.search(query=query)
|
|
return search_result
|