/app/tool: A new tool for Bing search #385
Open
+176
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Title: Add BingSearch Tool for Web Search Functionality
Description:
This PR introduces a new
BingSearch
class to the project, enabling asynchronous Bing search capabilities as part of theBaseTool
ecosystem. The tool allows users to perform web searches on Bing and retrieve a list of relevant URLs based on a given query.Features:
BaseTool
interface withname
,description
, andparameters
for consistency.requests
andBeautifulSoup
to scrape Bing search results.asyncio.run_in_executor
.num_results
, defaulting to 10).Motivation:
This addition expands the project's search capabilities beyond existing tools (e.g., Google Search) by integrating Bing, providing an alternative source for web data. It’s particularly useful for users needing diverse search results or when other search APIs are unavailable.
Implementation:
requests.Session
for persistent HTTP connections._search_sync
method performs the synchronous search logic, wrapped inexecute
for async support.<ol id="b_results">
and<li class="b_algo">
structure.Usage Example: