Spaces:
Paused
Paused
| import importlib.util | |
| import os | |
| VALID_RETRIEVERS = [ | |
| "arxiv", | |
| "bing", | |
| "custom", | |
| "duckduckgo", | |
| "exa", | |
| "google", | |
| "searchapi", | |
| "searx", | |
| "semantic_scholar", | |
| "serpapi", | |
| "serper", | |
| "tavily", | |
| "pubmed_central", | |
| ] | |
| def check_pkg(pkg: str) -> None: | |
| if not importlib.util.find_spec(pkg): | |
| pkg_kebab = pkg.replace("_", "-") | |
| raise ImportError( | |
| f"Unable to import {pkg_kebab}. Please install with " | |
| f"`pip install -U {pkg_kebab}`" | |
| ) | |
| # Get a list of all retriever names to be used as validators for supported retrievers | |
| def get_all_retriever_names() -> list: | |
| try: | |
| current_dir = os.path.dirname(__file__) | |
| all_items = os.listdir(current_dir) | |
| # Filter out only the directories, excluding __pycache__ | |
| retrievers = [item for item in all_items if os.path.isdir(os.path.join(current_dir, item))] | |
| except Exception as e: | |
| print(f"Error in get_all_retriever_names: {e}") | |
| retrievers = VALID_RETRIEVERS | |
| return retrievers | |