RagChat
RagChat enables interaction between large language models and unstructured data. It addresses challenges such as dynamic content updates, varied data sources, and retrieval accuracy by using an upsert-first architecture, filtering mechanisms, and a combination of knowledge graphs with vector search. It supports multi-user, custom models, and self-hosting to provide operational control.
Features
- Upsert-first design: Supports constant updates.
- Flexible metadata filtering: Information retrieval allows using custom fields.
- Efficient knowledge graph: Graph is built using small models, promoting efficiency and scalability.
- Multiuser support: Knowledge bases can be isolated or shared.
- Language consistency: Prompts and examples use the specified language, improving reliability.
- Async batch processing: Ingestion of multiple documents can be done in parallel with streaming progress updates.
- Pluggable LLMs and Embedding models: Supports the use of custom models or connection to API endpoints; providers are easily swappable.
- Open source & self-hostable: Operation occurs locally in Docker or directly on a machine, ensuring privacy.
Use Cases
- Casual chat sessions with memories
- Technical documentation search
- Chat+file hybrid RAG with citations
- Personal use
- Multi-user setups
Quick start
Docker Compose is required for the easiest setup.
Install RagChat with pip:
pip install ragchat-ai
Recommended local models:
bge-m3for embeddingsqwen3:4borqwen3:8bfor LLM -- Make sure 8k context length is supported.
Configure environment variables:
git clone https://github.com/raul3820/ragchat.git
cd ragchat
cp .env.example .env
Example: Open Webui
Run dependencies with:
docker compose up --build
After startup, the web chat UI is accessible at http://localhost:3001 (refer to .env for port).
Retrieval will be applied to all models. Two flows are presented:
- Casual chat with memories (default)
- Formal RAG with citations (triggered by writing
#in the chat and selecting a file)
For file ingestion use: http://localhost:3001/workspace/knowledge
Example: Lihua benchmark with Python SDK
Run dependencies with:
docker compose up neo4j qdrant --build
Once the DB has started, run the file ingestion with:
python -m examples.lihua.step0_index --full
and the Q&A with
python -m examples.lihua.step1_qa --test recall --limit 5
Contributing
Contributions welcomed! Please see the CONTRIBUTING.md file for details on how to contribute.
- Bug reports (issues)
- Feature suggestions
- Pull requests (inclusion of tests requested)
Roadmap
Performance:
- Quick retrieval
- Hybrid search
- Multi-hop fact search
- Query intent classification
- Recency weighting
- Better reranking
- Structured aggregates
- 3 phase ingestion (bm25, summaries, fact-entities)
- Graph traversal
- Custom tuning
Flows:
- Chat
- File
- Group chat
- Code
- Web search
Integrations:
- Python SDK
- REST API server
- Neo4j
- Qdrant
- Memgraph? (lower priority)
- Docling
- MCP
- Open-Webui (pipelines)
Testing & Evals:
- LiHua benchmark setup
- LiHua benchmark comparison with other libraries
- Integration test
- Increase test coverage
Security:
- Custom fields sanitization
Documentation:
- Readme/Quick start
- Library documentation
- API documentation
Open Source & License
RagChat is MIT-licensed (see LICENSE). Self-hosting and extension are permitted. Certain features may require user-provided LLM/API keys.
Metadata
Release files for ragchat-ai 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ragchat_ai-0.3.1.tar.gz | 64.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ragchat_ai-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 132.4 kB
Release files / ragchat_ai-0.3.1.tar.gz
| Download URL | ragchat_ai-0.3.1.tar.gz |
|---|---|
| Size | 64.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b1296735bc2e29ad0619ff49fbe9d23cbd0228b3b79b52131dbb8fe45f715499
|
|
BLAKE2b-256 checksum How to use checksums |
f62da0ec1b41075ce706f6ff11fa491d9975fc2858559173448b0209ba02ea58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|
Release files / ragchat_ai-0.3.1-py3-none-any.whl
| Download URL | ragchat_ai-0.3.1-py3-none-any.whl |
|---|---|
| Size | 67.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6c9bb737d1bb9ca64a56f2a708d6da75878374a3a6ceb7bcd5cb6551fdb129d9
|
|
BLAKE2b-256 checksum How to use checksums |
cae86bd160c6b649f68153ffc14ce0d9ba44cea7bd9d85d8e9fc56f06695e64a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|