-
Notifications
You must be signed in to change notification settings - Fork 2.2k
feat: add searxng search tool support, support unified results format, add readme #260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for the SearXNG search tool with a unified JSON results format while updating configuration, search tool integration, and documentation in multiple languages.
- Introduces custom wrappers and result handlers for SearXNG.
- Updates the search tool selector and configuration to include SearXNG.
- Adds detailed documentation for SearXNG in various README files and updates the environment example.
Reviewed Changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
src/tools/searxng_search/searxng_search_api_wrapper.py | Implements custom synchronous and asynchronous wrappers for SearXNG with unified JSON formatting. |
src/tools/search.py | Integrates the new SearXNG search tool into the tool selector and adds a main test block. |
src/graph/nodes.py | Applies SearXNG as an option when the selected search engine is SearXNG. |
src/config/tools.py | Adds the SEARXNG entry to the search engine enum. |
README_* files | Updates multilingual documentation to include setup and usage instructions for SearXNG. |
.env.example | Adds an example environment variable for the SearXNG API URL. |
Comments suppressed due to low confidence (1)
src/graph/nodes.py:73
- [nitpick] Using 'format' as a parameter name can be confusing as it shadows a built-in function. Consider renaming it to something clearer like 'output_format'.
format=json,
print(json.dumps(results, indent=2, ensure_ascii=False)) | ||
results = LoggedDuckDuckGoSearch( | ||
name="web_search", max_results=3, output_format="list" | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The variable 'results' is used in the print statement before it is assigned. Reorder the statements to assign 'results' before printing.
print(json.dumps(results, indent=2, ensure_ascii=False)) | |
results = LoggedDuckDuckGoSearch( | |
name="web_search", max_results=3, output_format="list" | |
) | |
results = LoggedDuckDuckGoSearch( | |
name="web_search", max_results=3, output_format="list" | |
) | |
print(json.dumps(results, indent=2, ensure_ascii=False)) |
Copilot uses AI. Check for mistakes.
#253 has been merged so it's likely that this PR is redundant. |
Result Format Standardization
Compatibility Matrix