build a chatpdf app that allow user to 1. input their own openai key, 2. upload a pdf file, 3 generate a chat ui allow the user to ask question about the pdf