Showing writeup.ai - write faster with ai. [django, open-sourced]

https://writeup.ai - Write Fast. Uses AI models to write entire paragraphs.

Sheepishly looking for some feedback for an open-sourced (free) project to push me to learn more about machine-learning. It uses DRF and communicates to the frontend written in React. Communicates via websockets to reduce the latency for streaming messages. ML runs too slow for a post request, so websockets makes updates the frontend “real-time”.

  • Using Django Channels to communicate via websockets (so async for some parts)
  • Started with Django Cookiecutter
  • CircleCI Integration
  • Docker-Compose for Builds
  • Python 3.6
  • Uses black for linting
  • Hosted on Google Cloud for backend
  • Netlify hosts frontend.
  • Probably a bit on the overengineered side.

Thanks! I take savage feedback too! Sorry the app isn’t great at mobile …

GitHub

Are you explicitly asking for feedback - if so, what kind? We’re probably going to make a “things made with Django” topic and I’ll move this over there if it’s just “hey, I made a thing!” :slight_smile:

Probably looking for UX feedback if anyone had it; I’m worried that it suffers too much from the curse of knowledge from me tinkering at it.

In regards to the moving of that topic - yeah, that makes sense! I definitely tried looked for that “topic” first lol … (PS: Huge fan of your OSS work).

Hey Jeff,

I loved playing with this for a bit. There are some quite funny results though with some editing one could get some half-decent text out.

Here’s the cheap blog post I tried writing - just the first line is my prompt. It got into a loop around “Get to know your problem” first, which actually feels a bit rhetorical. Then at the end it got into a complete loop with the truism that solve your problem, you need to find a solution :joy:

I think loops are quite common for these models from what I’ve read before. Perhaps you could detect such similarity and inject “extra randomness” to get different prompts out from the model?

Are you suffering from a problem that you can't solve?

Here's how to solve it.

1. Get out of your comfort zone

When you're out of your comfort zone, you're not going to do anything to solve your problem.

2. Get to know your problem

You're not going to solve your problem by reading a book.

3. Get to know your problem

You're not going to solve your problem by watching a movie.

4. Get to know your problem

You're not going to solve your problem by reading a newspaper.

5. Get to know your problem

You're not going to solve your problem by playing a video game.

6. Get to know your problem

You're not going to solve your problem by talking on the phone.

7. Find a solution

If you're going to solve your problem, you need to find a solution.

8. Find a solution

If you're going to solve your problem, you need to find a solution.

9. Find a solution

If you're going to ...

Haha, thanks! Yeah, it’s definitely one of the problems that some of these models face … the model probabilities start repeating back the same thing and looks whacky. The “top_k” is when it returns the top X possibilities, but the problem has been sometimes the top_x probabilities are duplicates (which is not great). I’m going to see if I can default to top_nucleus strategies (which is the new “hot” thing in ML) to try to reduce this.

For a simple check, I’m going to try to add a check for the encoded phrase someone enters in and see if I can do a quick for loop to reduce the amount of duplication that’s happening. Hopefully doesn’t slow down anything.

1 Like

Just played with it and generated another from this first line prompt:

Three things that I love about Django:

1. The world is a beautiful place.
2. The people are awesome.
3. The story is not that complicated.
4. It is a lot of fun. 

I agree with all the points, and you can’t argue with a bonus point!

1 Like

Hi @jeffshek,

I have been writing a Json-RPC websocket wrapper for django-channels.
Maybe that could be of some interest for you? It would help make it properly async!

Cheers,
Fab