← all repositories
lukalabs/cakechat

A chatbot that fakes feelings, frozen in 2019

CakeChat let you dial emotions into RNN responses—before its own authors told everyone to use Transformers instead.

★1.7k stars Python Chat AssistantsLanguage Models
cakechat
Not currently ranked — collecting fresh signals.
star history

What it does CakeChat is a Keras/TensorFlow backend for generative chatbots that can condition replies on categorical labels like emotion or persona ID. It uses a Hierarchical Recurrent Encoder-Decoder (HRED) with GRU cells, trained on ~50M Twitter dialogs labeled for five emotions: neutral, joy, anger, sadness, fear. You can run it via Docker, serve it over HTTP, or wire it into a Telegram bot.

The interesting bit The authors themselves put a deprecation notice at the very top: Transformer-based models work better, go use DialoGPT instead. That honesty is almost refreshing. The emotional conditioning is the actual hook—you can force “joy” or “anger” into the decoder, which was a genuine research direction before large-scale instruction tuning made it look quaint.

Key highlights

  • HRED architecture handles 3 utterances of dialog context (speaker_1, speaker_2, speaker_1)
  • Decoder conditioning on arbitrary categorical variables—emotions, personas, whatever you label
  • Four generation modes: sampling, beamsearch, plus reranked variants using log-likelihood or MMI criteria
  • CuDNNGRU for ~25% inference speedup
  • Pre-trained model available via python tools/fetch.py, though training from scratch needs ~50MB+ data and days of GPU time

Caveats

  • Explicitly unmaintained; pinned to Python 3.5.2, TensorFlow 1.12.2, Keras 2.2.4
  • Training dataset cannot be redistributed due to Twitter’s privacy policy
  • The authors recommend against using this in production

Verdict Worth a look if you’re studying the emotional-dialog literature or need a concrete HRED implementation to dissect. Everyone else should follow the authors’ own advice and head to a modern Transformer-based alternative.

Frequently asked

What is lukalabs/cakechat?
CakeChat let you dial emotions into RNN responses—before its own authors told everyone to use Transformers instead.
Is cakechat open source?
Yes — lukalabs/cakechat is open source, released under the Apache-2.0 license.
What language is cakechat written in?
lukalabs/cakechat is primarily written in Python.
How popular is cakechat?
lukalabs/cakechat has 1.7k stars on GitHub.
Where can I find cakechat?
lukalabs/cakechat is on GitHub at https://github.com/lukalabs/cakechat.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.