Spaces:
Sleeping
Sleeping
File size: 1,258 Bytes
00dd226 5c082e6 64188e4 00dd226 64188e4 00dd226 64188e4 ed0039a 64188e4 ed0039a 00dd226 64188e4 00dd226 ed0039a 64188e4 5c082e6 64188e4 00dd226 64188e4 00dd226 ed0039a d21c232 |
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 |
import requests
import os
from langchain.tools import Tool
from dotenv import load_dotenv
load_dotenv()
SERPER_API_KEY = os.getenv("SERPER_API_KEY")
SERPER_API_URL = "https://google.serper.dev/search"
def web_search(query: str) -> str:
if not SERPER_API_KEY:
return "[Error: SERPER_API_KEY is not set]"
headers = {"X-API-KEY": SERPER_API_KEY, "Content-Type": "application/json"}
payload = {"q": query, "num": 3}
try:
response = requests.post(SERPER_API_URL, headers=headers, json=payload, timeout=10)
response.raise_for_status()
data = response.json()
if not data.get("organic"):
return "No relevant results found."
results = []
for item in data["organic"]:
snippet = item.get("snippet")
if snippet:
results.append(snippet)
return "\n".join(results[:3]) if results else "No snippet found."
except requests.exceptions.Timeout:
return "[Error: Request timed out.]"
except requests.exceptions.RequestException as e:
return f"[Error: {e}]"
web_search_tool = Tool.from_function(
name="web_search",
description="Search the web for information using Google Search.",
func=web_search
)
|