Inspiration

I've always been told that a key to good communication is the have the intended audience in mind as I was writing. One challenge with this is that I often found that I would be writing for multiple different audiences and needing to make compromises in style. Why should the writer need to make these compromises why can't the reader get the exact content they want. With "Written for me" the paradigm is reversed and reader has control rather than the author.

What it does

For any page a user can simple hit the meatballs menu and select "Written for me". The first time for each user it will provide a list of custom defined reading profiles for the user to choose from. Each subsequent time the page is automatically rewritten to meet the reading profile selected for that user.

How we built it

Using Forge and Chat GPT APIs. Specifically using CustomUI for the UI and resolvers to make the API calls without exposing the GPT API keys on the frontend.

Challenges we ran into

  • The Chat-GPT APIs are slow. I had to use an async queue with polling from the frontend to determine when the results were ready.
  • With GPT-4 I hit rate limits very quickly so switched to the 3.5 model.
  • Forge Fetch API doesn't support streaming so couldn't get streamed results from OpenAI api resulting in slower responses waiting for full content. I had to implement a poor man's streaming which is significantly higher cost as there are many more API calls.

Accomplishments that we're proud of

  • The quality and variety of different writing styles is great and more varied than I expected.
  • This App has a very simple interface making it super approachable for users new to generative AI and opens the door to an exciting new technology.
  • Maintaining images from the original confluence content in the final rewritten content so the results are not a plain text like you get natively in tools like Chat GPT. Generating content async and caching results for fast re-rendering.

What we learned

Crafting prompts is a new craft and subtle differences in prompts can lead to very different quality of results. Different prompts also had significantly different processing times which required some trial and error to optimise.

What's next for Written for me

  • More UI polish.
  • Ongoing improvements to the profile prompts and adding new profiles.

Built With

Share this project:

Updates