From b0079a73fa0878ccf8cd54f2f9fd23bb93261138 Mon Sep 17 00:00:00 2001 From: Tavily PR Agent Date: Sun, 22 Mar 2026 22:52:53 +0000 Subject: [PATCH] feat: add Tavily as search provider option in legacy web_search skill --- _legacy/skills/web_search.py | 27 +++++++++++++++++++++++++-- requirements.txt | 1 + 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/_legacy/skills/web_search.py b/_legacy/skills/web_search.py index 7d93eb2..d959bab 100644 --- a/_legacy/skills/web_search.py +++ b/_legacy/skills/web_search.py @@ -1,18 +1,35 @@ import logging import asyncio import io +import os import re from telegram.ext import ContextTypes import config -def perform_web_search(query): +def _perform_tavily_search(query): + from tavily import TavilyClient + try: + client = TavilyClient() + response = client.search(query=query, max_results=5, search_depth="basic") + results = response.get("results", []) + if not results: + return "No results found." + + summary = "" + for r in results: + summary += f"- [{r['title']}]({r['url']}): {r.get('content', '')}\n" + return summary + except Exception as e: + return f"Error performing search: {e}" + +def _perform_ddgs_search(query): from ddgs import DDGS try: results = DDGS().text(query, max_results=5) if not results: return "No results found." - + summary = "" for r in results: summary += f"- [{r['title']}]({r['href']}): {r['body']}\n" @@ -20,6 +37,12 @@ def perform_web_search(query): except Exception as e: return f"Error performing search: {e}" +def perform_web_search(query): + provider = os.environ.get("SEARCH_PROVIDER", "duckduckgo").lower() + if provider == "tavily": + return _perform_tavily_search(query) + return _perform_ddgs_search(query) + def get_youtube_video_id(url): # Patterns: youtube.com/watch?v=ID, youtu.be/ID, youtube.com/embed/ID patterns = [ diff --git a/requirements.txt b/requirements.txt index a1dec54..21a9c1a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -27,6 +27,7 @@ pyyaml dateparser pytz ddgs +tavily-python youtube-transcript-api python-dateutil playwright