Skip to content

FEATURE REQUEST: Migrate from Tavily Search to DuckDuckGo Search #82

Description

@smokeyScraper

Is your feature request related to a problem?

  • Yes, it is related to a problem

Describe the feature you'd like

🌟 Feature Description

Migrate the web search functionality from Tavily Search to DuckDuckGo Search.

🔍 Problem Statement

The current implementation of the web search feature relies on the Tavily Search API. This feature is utilized in the handle_web_search_node to perform web searches. The TavilySearchTool class in backend/app/agents/devrel/tools/search_tool.py directly interacts with the Tavily API. The dependency on Tavily is also specified in the project's dependencies. This migration is intended to replace Tavily Search with DuckDuckGo Search as the primary web search provider.

🎯 Expected Outcome

Upon completion, the project will use DuckDuckGo Search for all web search queries. The langchain-tavily and tavily-python dependencies will be removed from the project, and a new dependency for a DuckDuckGo search library will be added. The handle_web_search_node and the search tool will be updated to use the new DuckDuckGo search functionality.

📷 Screenshots and Design Ideas

N/A (This is a backend implementation change with no direct UI impact).

📋 Additional Context

The following files will be impacted by this change:

  • backend/app/agents/devrel/tools/search_tool.py: The TavilySearchTool class will need to be replaced with a new class for DuckDuckGo search.
  • backend/app/agents/devrel/nodes/handle_web_search_node.py: The handle_web_search_node will need to be updated to use the new DuckDuckGo search tool.
  • pyproject.toml: The langchain-tavily and tavily-python dependencies will be removed and a new dependency for DuckDuckGo search will be added.
  • backend/app/core/config.py: The tavily_api_key setting will be removed and a new setting for the DuckDuckGo API key may need to be added.

Record

  • I agree to follow this project's Code of Conduct
  • I want to work on implementing this feature

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions