forked from langchain-ai/react-agent
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtools.py
More file actions
28 lines (18 loc) · 1.04 KB
/
tools.py
File metadata and controls
28 lines (18 loc) · 1.04 KB
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
"""This module provides example tools for web scraping and search functionality.
It includes a basic Tavily search function (as an example)
These tools are intended as free examples to get started. For production use,
consider implementing more robust and specialized tools tailored to your needs.
"""
from typing import Any, Callable, List, Optional, cast
from langchain_tavily import TavilySearch # type: ignore[import-not-found]
from react_agent.configuration import Configuration
async def search(query: str) -> Optional[dict[str, Any]]:
"""Search for general web results.
This function performs a search using the Tavily search engine, which is designed
to provide comprehensive, accurate, and trusted results. It's particularly useful
for answering questions about current events.
"""
configuration = Configuration.from_context()
wrapped = TavilySearch(max_results=configuration.max_search_results)
return cast(dict[str, Any], await wrapped.ainvoke({"query": query}))
TOOLS: List[Callable[..., Any]] = [search]