Hi everyone, I built Semantra over the past four weeks to showcase the power of semantic search and share the experience. I strived to make a general purpose tool so that others could easily spin up their own semantic search engines over their own content.<p>Semantra is a Python CLI that analyzes specified documents (text/pdf files), embeds them in chunks of text, and launches a local web server to interactively query them by semantic meaning. It is highly configurable and offers different embedding models, from Hugging Face transformers model (e.g. ones from SentenceTransformers) to OpenAI's embedding model (text-ada-embeddings-002).<p>The web app allows iteratively refining queries via tagging and adding/subtracting additional queries, allowing for very expressive and refined search experiences. It also presents "explanations" for search results by highlighting sub-regions within the results that most closely match the query.<p>Take it for a spin! `pipx install semantra`<p>---<p>Detailed instructions, tutorial, guide, and concept documentation at the repo: <a href="https://github.com/freedmand/semantra">https://github.com/freedmand/semantra</a><p>Twitter thread with demo videos/content: <a href="https://twitter.com/dylfreed/status/1650268405881085952" rel="nofollow">https://twitter.com/dylfreed/status/1650268405881085952</a>