langchain openai streamlit_option_menu pypdf rank_bm25 faiss-cpu tiktoken scikit-learn sentence_transformers