
A Sentence-BERT search engine that understands what you mean, not what you typed. Search 2,152 LLM prompts by meaning, with a Flask UI, charts, and a REST API. Full source code included.
Python | Flask | Sentence-BERT | scikit-learn | Jupyter Notebook | JavaScript
Prompt libraries like awesome-chatgpt-prompts have quietly turned into giant spreadsheets. Thousands of rows, no structure, and a search box that only matches exact words. Type "detect fake news" into a normal keyword search and a prompt literally titled "Factcheck" will never show up, even though it's exactly what you wanted.
PromptSense fixes that with semantic search. Every one of the 2,152 prompts in llm_prompts.csv gets converted into a 384-dimensional vector using Sentence-BERT (all-MiniLM-L6-v2). When you type a query, your sentence gets converted into a vector too, and cosine similarity ranks the entire corpus by how close the meanings are. Not the spellings. The meanings.
The whole thing ships as two halves that talk to each other: a Jupyter notebook that does the data analysis, trains the recommender, plots the embedding space, and saves the model artifacts to disk, plus a Flask app that loads those artifacts once at startup and serves a dark-themed search interface, a chart gallery, and a JSON API.
You type a sentence. It gives you back the prompts that mean the same thing, ranked with a percentage score next to each one.
That's the whole idea. The interesting part is how. Behind the search box, app.py loads a pre-computed NumPy array of embeddings (model/prompt_embeddings.npy) into memory. Your query hits POST /api/recommend, gets encoded by the same Sentence-BERT model that encoded the dataset, and scikit-learn computes cosine similarity against all 2,152 vectors at once. Sorted, sliced to your top-N, sent back as JSON. Takes under 100ms once the model is warm.
The frontend then animates similarity bars, lets you filter by prompt type, and copies any prompt to your clipboard in one click. It looks like a real product because it kind of is one.
Three stages, and you should be able to explain all three in your viva:
.npy file so you never recompute it.elapsed_ms field you can point at.POST /api/recommend that takes {"query": "...", "top_n": 5} and returns ranked JSON. Test it with curl in front of your panel./api/recommend endpoint is designed to be called by something else. A VS Code extension that suggests prompt templates based on the file you have open is a genuinely reasonable extension of this.Add any of these professional upgrades to save time and impress your evaluators.
Personal session with an expert developer
We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).
1-hour live session to explain logic, flow, database design, and key features.
Want to know exactly how the setup works? Review our detailed step-by-step process before scheduling your session.
Fully customized to match your college format, guidelines, and submission standards.
Need feature changes, UI updates, or new features added?
Charges vary based on complexity.
We'll review your request and provide a clear quote before starting work.
Reviews