nickhansel / rabbit-hole

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rabbit Hole 🐇

I was going down the YouTube rabbit hole one night and thought to myself that I always find myself going down rabbit holes of interesting information and thoroughly enjoying it. So I made Rabbit Hole, an AI based search engine using the Metaphor API that works just like Google or any other search engine where you enter a query and are prompted with results from the internet, but now you are able to find similar web pages based on which pages you find most interesting. Don't feel like reading a whole web page? Don't worry, Rabbit Hole uses NLP (PyTorch and transformers) to summarize the webpage so you can save time. See how far you go down the rabbit hole!

Screen-Recording-2023-09-30-at-2 28 19-PM

Tech

Frontend:

  • NextJS
  • Typescript
  • TailwindCSS

Backend:

  • Python
  • Flask
  • Transformers
  • Pytorch

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

Ensure you have the following installed on your local machine and have setup a Metaphor account

Installation

  1. Clone the repository:
git  clone  https://github.com/nickhansel/rabbit-hole.git

cd  rabbit-hole
  1. Set up the environment:
make  setup

Usage

NOTE: These commands only work on UNIX machines because of how the ports are handled. If you have a Windows machine you can do:

  1. cd backend && pip install -r requirements.txt
  2. python3 app.py
  3. cd ../frontend && npm install
  4. npm run dev
  1. To run the backend using Python:
make  run-backend-py  METAPHOR_KEY=your_api_key
  1. Or to run the backend using Python3:
make  run-backend-py3  METAPHOR_KEY=your_api_key
  1. To run the frontend:
make  run-frontend
  1. To run both the backend (with Python) and frontend with a single command:
make  all-py  METAPHOR_KEY=your_api_key
  1. Or to run both the backend (with Python3) and frontend with a single command:
make  all-py3  METAPHOR_KEY=your_value

Stopping the services

  1. To stop the backend:
make  stop-backend
  1. To stop the frontend:
make  stop-frontend

Authors

  • Nick Hansel

About


Languages

Language:TypeScript 74.1%Language:Python 17.3%Language:Makefile 6.5%Language:JavaScript 1.7%Language:CSS 0.4%