gradio pandas openai loguru promptic tenacity PyMuPDF