2023-02-16 22:45:47 -08:00
|
|
|
"""dad_jokes reader"""
|
|
|
|
|
|
|
|
from typing import List
|
|
|
|
|
2023-02-24 23:39:32 -08:00
|
|
|
import requests
|
2023-02-20 21:46:58 -08:00
|
|
|
from llama_index.readers.base import BaseReader
|
|
|
|
from llama_index.readers.schema.base import Document
|
2023-02-16 22:45:47 -08:00
|
|
|
|
2023-02-24 23:39:32 -08:00
|
|
|
|
2023-02-16 22:45:47 -08:00
|
|
|
class DadJokesReader(BaseReader):
|
|
|
|
"""Dad jokes reader.
|
|
|
|
|
|
|
|
Reads a random dad joke.
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
def _get_random_dad_joke(self):
|
2023-02-24 23:39:32 -08:00
|
|
|
response = requests.get(
|
|
|
|
"https://icanhazdadjoke.com/", headers={"Accept": "application/json"}
|
|
|
|
)
|
2023-02-16 22:45:47 -08:00
|
|
|
response.raise_for_status()
|
|
|
|
json_data = response.json()
|
|
|
|
return json_data["joke"]
|
|
|
|
|
|
|
|
def load_data(self) -> List[Document]:
|
|
|
|
"""Return a random dad joke.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
None.
|
|
|
|
|
|
|
|
"""
|
2023-02-24 23:39:32 -08:00
|
|
|
return [Document(self._get_random_dad_joke())]
|