Spaces:
Paused
Paused
File size: 1,774 Bytes
efeddde | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import os
import logging
from app.reverse_search.serpapi_provider import SerpApiGoogleLensProvider
from app.reverse_search.bing_provider import AzureBingVisualSearchProvider
from app.reverse_search.tineye_provider import TinEyeProvider
from app.reverse_search.free_scraper_provider import FreeWebScraperProvider
def get_providers():
"""
Instantiates and returns a list of configured providers.
Order determines fallback priority.
"""
providers = []
# 0. Free Web Scraper (if enabled)
if os.getenv("USE_FREE_SCRAPER", "").lower() == "true":
try:
providers.append(FreeWebScraperProvider())
logging.info("Enabled completely FREE web scraper as primary provider.")
except Exception as e:
logging.warning(f"Failed to initialize FreeWebScraperProvider: {e}")
# 1. SerpApi
if os.getenv("SERPAPI_API_KEY"):
try:
providers.append(SerpApiGoogleLensProvider())
except Exception as e:
logging.warning(f"Failed to initialize SerpApiGoogleLensProvider: {e}")
# 2. Bing Visual Search
if os.getenv("BING_SEARCH_API_KEY"):
try:
providers.append(AzureBingVisualSearchProvider())
except Exception as e:
logging.warning(f"Failed to initialize AzureBingVisualSearchProvider: {e}")
# 3. TinEye
if os.getenv("TINEYE_API_KEY"):
try:
providers.append(TinEyeProvider())
except Exception as e:
logging.warning(f"Failed to initialize TinEyeProvider: {e}")
if not providers:
logging.warning("No reverse image search providers are configured! Please configure API keys in .env.")
return providers
|