function generate(prompt, model, stop_token):
   context = tokenize(prompt)

   repeat:
      probabilities = model(context)
      next_token = sample(probabilities)
      context.append(next_token)
   until next_token == stop_token or length(context) >= length_limit

   return context
