PyPDF2 transformers langchain openai faiss-cpu tiktoken datasets gradio pydantic