This is my feature addition to Allycat - a Chatbot talking to websites.
I added GraphRAG functionality which is a normal RAG pproach in AI where the R path includes a Knowledge Graph.
This builds off Neo4j as the Graph Database, the Neo4j GraphRAG Python Package, a GUI (chatbot interface), and python with a few utilities including beautifulsoup for the web scraping.
My addition is the following 4 files:
1_crawl_site_bs4.py (beautoful soup custom scraper)
2b_process_html_bs4.py
3a_save_to_graph_db.py
4_query_graph.py
With these files and a running neo4j database you can crawl and query any website and talk to your website with the added benefits of additional context and reduced hallucinations, which graph technology and graph databases provide.
Next Steps: Finish Jupiter notebook versions of the workflow Add additional detailed comments
AllyCat is full stack, open source chatbot that uses GenAI LLMs to answer questions about your website. It is simple by design and will run on your laptop or server.
AllyCat is purposefully simple so it can be used by developers to learn how RAG-based GenAI works. Yet it is powerful enough to use with your website, You may also extend it for your own purposes.
AllyCat uses your choice of LLM and vector database to implement a chatbot written in Python using RAG architecture. AllyCat also includes web scraping tools that extract data from your website (or any website).
- Chatbot with interface to answer questions with text scraped from a website
- Default website: thealliance.ai
- Includes web crawling & scraping, text extraction, data/HTML processing, conversion to markdown
- Current: Data Prep Kit Connector, Docling
- Processing Chunking, vector embedding creation, saving to vector database
- Current: Llama Index, Granite Embedding Model
- Supports multiple LLMs
- Supports multiple vector databases and knowledge graph integration
- Current: Milvus, Weaviate, Neo4j GraphRAG
- End User and New Contributor Friendly
There are two ways to run Allycat.
A great option for a quick evaluation.
See running AllyCat using docker
Choose this option if you want to tweak AllyCat to fit your needs. For example, experimenting with embedding models or LLMs.
See running AllyCat natively
See running allycat
See deployment guide
Originally AllianceChat, we shortened it to AllyCat when we learned chat means cat in French. Who doesn't love cats?!

