Skewlup is a GPT experiment that aims to provide a directory of local resources for cities around the world.
Content for Skewlup is produced with the following workflow:
- A human chooses a topic of interest for a region. For example "Math lessons located in Sao Paulo Brazil".
- A conventional search engine is used to find results for the topic.
- GPT is prompted to confirm that the content of each result matches the intended query. The prompt is also used to filter out indirect results like news articles or "top N" lists. The result must be a direct provider of the resource.
- For the valid results, GPT is prompted to summarize the content, and categorize it using tags. GPT is instructed to answer with a specific JSON structure.
- The summaries, tags and links are stored. A thumbnail is captured for the result, and the results are presented to visitors in an organized directory.
A docker-compose configuration encapsulates the application's dev and prod environments, including postgres and redis dependencies. The application is implemented using next.js and sequelize. A job and worker system is implemented with bullmq. Web content is scraped and captured with puppeteer.
Required OpenAI and Bing API keys and configurations are specified in the .env
file. .env.sample
should be used as a template.
docker compose up
./scripts/docker-compose-dev.sh
./scripts/run.sh init-db
./scripts/run.sh add-place brazil sao-paulo
./scripts/run.sh job-runner brazil sao-paulo math lessons