{"adoption": {"forks": 911, "observed_at": "2026-08-28T04:05:25.079089+00:00", "stars": 1707}, "canonical_url": "https://ross.abutalabs.com/products/cakechat", "card": {"archived": true, "artifact_type": "library", "description": "CakeChat: Emotional Generative Dialog System", "domain": ["artificial-intelligence", "chatbots", "deep-learning"], "enriched": true, "function": ["nlp", "deep-learning", "chatbot", "machine-learning", "llm-training"], "health_score": 10, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["lukalabs/cakechat"], "name": "lukalabs/cakechat", "platform": ["python"], "pushed_at": "2020-05-25T12:05:56+00:00", "repo": "lukalabs/cakechat", "stars": 1707, "tags": ["seq2seq", "dialogue-system", "emotional-chatbot", "keras", "tensorflow", "hred", "unmaintained", "natural-language-processing", "linux", "docker"], "topics": ["conversational-ai", "conversational-agents", "conversational-bots", "dialogue-agents", "dialogue-systems", "dialog-systems", "nlp", "deep-learning", "seq2seq", "seq2seq-chatbot", "seq2seq-model", "keras", "tensorflow"], "urls": [], "use_cases": ["build a chatbot that expresses emotions in its replies", "train a seq2seq dialogue model on my own conversation data", "fine-tune a pre-trained neural conversational model", "run a Telegram bot powered by a neural dialogue system", "condition chatbot responses on a persona or other categorical variable", "serve a trained dialogue model over an HTTP API"], "what_it_is": "CakeChat is a Python backend for building emotional generative chatbots using a hierarchical recurrent encoder-decoder (seq2seq) architecture built on Keras and TensorFlow. It supports conditioning responses on categorical variables such as emotion or persona, and ships with an HTTP server and Telegram bot integration.", "when_to_avoid": ["you need a modern, maintained chatbot - the project is explicitly unmaintained", "you want state-of-the-art dialogue quality - transformer models like DialoGPT are recommended instead", "your stack requires recent TensorFlow/Keras versions - it targets TensorFlow 1.12 and Python 3.5"], "when_to_choose": ["you specifically need an RNN/HRED-based emotional dialogue system in Python", "you want a self-contained chatbot backend with HTTP and Telegram integrations", "you are studying or reproducing older seq2seq conversational model research"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cakechat", "repo": "lukalabs/cakechat", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:25.079089+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:37:27.222604+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "50264a9438d1e5a7fa53402db88b7b0415a0669c99975ef5ae6d9acc8fc2f8a3", "fetched_at": "2026-08-28T04:05:25.079089+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lukalabs/cakechat"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3137, "days_push": 2291, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}