A medical chatbot that runs on your WeChat account
A Chinese medical diagnosis QA system wired into WeChat via itchat, built on Neo4j and BERT for intent recognition.

What it does This is a knowledge-graph-powered question-answering system for medical diagnosis. It uses Neo4j to store disease knowledge, BERT (via bert4keras) for intent recognition, and BiLSTM-CRF for named entity recognition. The whole thing is glued together with Flask and exposed through WeChat using itchat, so you chat with it like a friend.
The interesting bit The author explicitly calls this a “minimum demo version” — context is stored in JSON files instead of Redis, and there’s no entity linking, so you must type disease names exactly as they appear in the dictionary. The honesty is refreshing; most repos would pretend otherwise.
Key highlights
- Intent recognition uses a BERT-based model (weights hosted on Baidu Pan, ~GB-sized download)
- NER handled by BiLSTM-CRF; disease entities must match exactly — no fuzzy matching
- Knowledge base runs on Neo4j 4.2.2 with py2neo
- WeChat integration via itchat requires an old enough account to support web WeChat
- TensorFlow 1.14 and Keras 2.3.1 — decidedly retro stack
Caveats
- No entity linking means “diabetes” must be typed precisely; synonyms or misspellings fail
- Context persistence is JSON-file-based, not real-time
- Several dependencies are pinned to versions with known security issues (Flask 1.1.1, TensorFlow 1.14)
- Setup involves manual Baidu Pan downloads, path tweaks, and bat-file orchestration
Verdict Good for Chinese NLP learners who want a concrete, video-documented KBQA pipeline to dissect. Skip if you need production reliability or modern dependency hygiene; the author admits it’s a teaching demo, not a deployment-ready system.