Skip to main content

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-m3 for embeddings
  • qwen3:4b or qwen3:8b for 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)

Source distribution for ragchat-ai 0.3.1
File Size Uploaded
ragchat_ai-0.3.1.tar.gz 64.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ragchat-ai 0.3.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page