Shreyas094's picture
Upload 528 files
372531f verified
from typing import Any, Dict, List, Optional
import requests
import os
class CustomRetriever:
"""
Custom API Retriever
"""
def __init__(self, query: str):
self.endpoint = os.getenv('RETRIEVER_ENDPOINT')
if not self.endpoint:
raise ValueError("RETRIEVER_ENDPOINT environment variable not set")
self.params = self._populate_params()
self.query = query
def _populate_params(self) -> Dict[str, Any]:
"""
Populates parameters from environment variables prefixed with 'RETRIEVER_ARG_'
"""
return {
key[len('RETRIEVER_ARG_'):].lower(): value
for key, value in os.environ.items()
if key.startswith('RETRIEVER_ARG_')
}
def search(self, max_results: int = 5) -> Optional[List[Dict[str, Any]]]:
"""
Performs the search using the custom retriever endpoint.
:param max_results: Maximum number of results to return (not currently used)
:return: JSON response in the format:
[
{
"url": "http://example.com/page1",
"raw_content": "Content of page 1"
},
{
"url": "http://example.com/page2",
"raw_content": "Content of page 2"
}
]
"""
try:
response = requests.get(self.endpoint, params={**self.params, 'query': self.query})
response.raise_for_status()
return response.json()
except requests.RequestException as e:
print(f"Failed to retrieve search results: {e}")
return None