Inaugural Pinecone hackathon submission.
Click to see our deployed submission!!!!
It's estimated that in North America bike theft results in more than $500 million in losses each year. It's also estimated that a bike is stolen every 30 seconds and impacts nearly 2 million cyclists1. Bikes, unlike other forms of transportation, don't require a registration number, and as such are easy to re-sell in on-line marketplaces such as eBay, Craigslist, Kijiji, and Facebook1.
The best tools to combat bike theft are proactive, these include locks, alarms, keeping your bike inside, anything that can be done to prevent the theft from happening. Once a bike is stolen, there are several reactive tools and services that exist to help locate and recover the bike. These include bike registries, such as project529 and BikeIndex where stolen bikes can be cross-listed with found bikes, hidden gps trackers, and law enforcement.
None of the current reactive solutions provide a way to more efficiently locate a stolen bike across the wide array of on-line marketplaces. As such, the process of finding a stolen bike relies heavily on manual search and online bike forums, where users can ask other users to "keep an eye out".
1https://project529.com/garage/org_faq/en/fighting%20bike%20theft/background-on-bike-theft/
We want to help fill the gap in stolen bike searchability by creating a bike theft assistant that will help a victim search for their bike across multiple on-line marketplaces using an image of their bike and textual metadata. If the bike is found, the assistant will provide guidance on actions to take, such as alerting the online marketplace that this is a stolen bike or contacting the lister.
This tool differs from current search solutions in that we use vector embeddings of images along with textual metadata to filter and find similar ads listed in online marketplaces based on vector similarity. This is a much more efficient way to find a stolen bike versus keyword search.
Dependency management and environment are handled in devcontainer
- Clone this repository
- Ideally open the codebase in VS Code
- Rename
configs/.env-example
toconfigs/.env
and fill in the secrets - In VS Code run
ctrl+shift+p
to open the command pallete, typeDev Containers: Rebuild and Reopen in Container
- you are now developing in custom container.- All packages will be installed container wide from
requirements.txt
pinned to Python 3.10 - All functions under
src
will be installed as an editable package and available for import anywhere in repo - Keys defined in
configs/.env
will be available container wide fromos.getenv()
- no need toloaddotenv()
in python
- All packages will be installed container wide from
- You can
pip install
directly in the container. When adding new packages before making a commit runpip list --format=freeze > requirements.txt --exclude-editable
Overview of repository codebase
โโโ .devcontainer # Containerized environment management
โโโ app # Frontend application files
โโโ configs # Secrets
โโโ data # Output of batch pipelines
โโโ pipelines # Batch pipelines
โ โโโ data # Get data
โ โโโ index # Create Pinecone index and upsert
โโโ src # Source files installed in editable mode
โโโ .gitignore
โโโ pyproject.toml
โโโ requirements.txt
โโโ setup.cfg
โโโ README.md