collin.town
projects.

/

contact.
HW 2022

HW 2022 - wikiNow

What is wikiNow

wikiNow is an application that can generate entire wikiHow articles to answer any question! A user simply has to enter a query and the tool will generate a step-by-step article with images that provides a detailed answer tailored to their exact needs. wikiNow enables users to find information more efficiently and to have a better understanding of the steps involved.

How it Was Built

wikiNow was built using a combination of co:here’s natural language processing and Stable Diffusion (Latent Diffusion Modelling). We trained our models on a large dataset of existing wikiHow articles and used this data to generate new articles and images that are specific to the user’s query. The back-end was built using Flask and the front-end was created using Next.js.

Challenges Building wikiNow

One of the biggest challenges we faced was engineering the prompts that would generate the articles. We had to experiment with a lot of different methods before we found something that worked well with multi-layer prompts. Another challenge was creating a user interface that was both easy to use and looked good. We wanted to make sure that the user would be able to find the information they need without being overwhelmed by the amount of text on the screen.

The challenge that I was most proud of solving was trying to figure out how to properly deal with Flask concurrency and long-running network requests. For an average wiki page creation, the backend required ~20 co:here generate calls. In order to make sure the wiki page returns in a reasonable time, the team and I spent a considerable amount of time developing asynchronous functions and multi-threading routines to speed up the process.

Through this work, we were able to create a threading implementation of the generate functions so that multiple calls to the co:here API can be made at the same time without creating race conditions or issues with memory safety.

What We Learned

One of the biggest challenges we faced was engineering the prompts that would generate the articles. We had to experiment with a lot of different methods before we found something that worked well with multi-layer prompts. Another challenge was creating a user interface that was both easy to use and looked good. We wanted to make sure that the user would be able to find the information they need without being overwhelmed by the amount of text on the screen.

Properly dealing with Flask concurrency and long-running network requests was another large challenge. For an average wiki page creation, we require ~20 co:here generate calls. In order to make sure the wiki page returns in a reasonable time, we spent a considerable amount of time developing asynchronous functions and multi-threading routines to speed up the process.

Awards

Our design won “Best use of Prompt Engineering” presented by co:here which was a great honour as we worked very hard on this project.

End Product

How to Play League of Legends?

How to Play League of Legends

How to Jump High on Trampoline?

How to Jump High on Trampoline

Where can you find the project?

The project can be found here on Devpost along with the other contributors. The code can be found here on GitHub.