Sirchmunk: From raw data to self-evolving real-time intelligence.
Project description
Sirchmunk: Raw data to self-evolving intelligence, real-time.
Quick Start · Key Features · Web UI · How it Works · FAQ
🔍 Agentic Search • 🧠 Knowledge Clustering • 📊 Monte Carlo Evidence Sampling
⚡ Indexless Retrieval • 🔄 Self-Evolving Knowledge Base • 💬 Real-time Chat
🌰 Why “Sirchmunk”?
Intelligence pipelines built upon vector-based retrieval can be rigid and brittle. They rely on static vector embeddings that are expensive to compute, blind to real-time changes, and detached from the raw context. We introduce Sirchmunk to usher in a more agile paradigm, where data is no longer treated as a snapshot, and insights can evolve together with the data.
✨ Key Features
1. Embedding-Free: Data in its Purest Form
Sirchmunk works directly with raw data -- bypassing the heavy overhead of squeezing your rich files into fixed-dimensional vectors.
- Instant Search: Eliminating complex pre-processing pipelines in hours long indexing; just drop your files and search immediately.
- Full Fidelity: Zero information loss —- stay true to your data without vector approximation.
2. Self-Evolving: A Living Index
Data is a stream, not a snapshot. Sirchmunk is dynamic by design, while vector DB can become obsolete the moment your data changes.
- Context-Aware: Evolves in real-time with your data context.
- LLM-Powered Autonomy: Designed for Agents that perceive data as it lives, utilizing token-efficient reasoning that triggers LLM inference only when necessary to maximize intelligence while minimizing cost.
3. Intelligence at Scale: Real-Time & Massive
Sirchmunk bridges massive local repositories and the web with high-scale throughput and real-time awareness.
It serves as a unified intelligent hub for AI agents, delivering deep insights across vast datasets at the speed of thought.
Traditional RAG vs. Sirchmunk
| Dimension | Traditional RAG | ✨Sirchmunk |
|---|---|---|
| 💰 Setup Cost | High Overhead (VectorDB, GraphDB, Complex Document Parser...) |
✅ Zero Infrastructure Direct-to-data retrieval without vector silos |
| 🕒 Data Freshness | Stale (Batch Re-indexing) |
✅ Instant & Dynamic Self-evolving index that reflects live changes |
| 📈 Scalability | Linear Cost Growth |
✅ Extremely low RAM/CPU consumption Native Elastic Support, efficiently handles large-scale datasets |
| 🎯 Accuracy | Approximate Vector Matches |
✅ Deterministic & Contextual Hybrid logic ensuring semantic precision |
| ⚙️ Workflow | Complex ETL Pipelines |
✅ Drop-and-Search Zero-config integration for rapid deployment |
Demonstration
Access files directly to start chatting
🎉 News
- 🎉🎉 Jan 22, 2026: Introducing Sirchmunk: Initial Release v0.0.1 Now Available!
🚀 Quick Start
Prerequisites
- Python 3.10+
- LLM API Key (OpenAI-compatible endpoint, local or remote)
- Node.js 18+ (Optional, for web interface)
Installation
# Create virtual environment (recommended)
conda create -n sirchmunk python=3.13 -y && conda activate sirchmunk
pip install sirchmunk
# Or via UV:
uv pip install sirchmunk
# Alternatively, install from source:
git clone https://github.com/modelscope/sirchmunk.git && cd sirchmunk
pip install -e .
Python SDK Usage
import asyncio
from sirchmunk import AgenticSearch
from sirchmunk.llm import OpenAIChat
llm = OpenAIChat(
api_key="your-api-key",
base_url="your-base-url", # e.g., https://api.openai.com/v1
model="your-model-name" # e.g., gpt-4o
)
async def main():
agent_search = AgenticSearch(llm=llm)
result: str = await agent_search.search(
query="How does transformer attention work?",
search_paths=["/path/to/documents"],
)
print(result)
asyncio.run(main())
⚠️ Notes:
- Upon initialization, AgenticSearch automatically checks if ripgrep-all and ripgrep are installed. If they are missing, it will attempt to install them automatically. If the automatic installation fails, please install them manually.
- Replace
"your-api-key","your-base-url","your-model-name"and/path/to/documentswith your actual values.
🖥️ Web UI
The web UI is built for fast, transparent workflows: chat, knowledge analytics, and system monitoring in one place.
Home — Chat with streaming logs, file-based RAG, and session management.
Monitor — System health, chat activity, knowledge analytics, and LLM usage.
Installation
git clone https://github.com/modelscope/sirchmunk.git && cd sirchmunk
pip install ".[web]"
npm install --prefix web
- Note: Node.js 18+ is required for the web interface.
Running the Web UI
# Start frontend and backend
python scripts/start_web.py
# Stop frontend and backend
python scripts/stop_web.py
Access the web UI at (By default):
- Backend APIs: http://localhost:8584/docs
- Frontend: http://localhost:8585
Configuration:
- Access
Settings→Envrionment Variablesto configure LLM API, and other parameters.
🏗️ How it Works
Sirchmunk Framework
Core Components
| Component | Description |
|---|---|
| AgenticSearch | Search orchestrator with LLM-enhanced retrieval capabilities |
| KnowledgeBase | Transforms raw results into structured knowledge clusters with evidences |
| EvidenceProcessor | Evidence processing based on the MonteCarlo Importance Sampling |
| GrepRetriever | High-performance indexless file search with parallel processing |
| OpenAIChat | Unified LLM interface supporting streaming and usage tracking |
| MonitorTracker | Real-time system and application metrics collection |
Data Storage
All persistent data is stored in the configured WORK_PATH (default: ~/.sirchmunk/):
{WORK_PATH}/
├── .cache/
├── history/ # Chat session history (DuckDB)
│ └── chat_history.db
├── knowledge/ # Knowledge clusters (Parquet)
│ └── knowledge_clusters.parquet
└── settings/ # User settings (DuckDB)
└── settings.db
❓ FAQ
How is this different from traditional RAG systems?
Sirchmunk takes an indexless approach:
- No pre-indexing: Direct file search without vector database setup
- Self-evolving: Knowledge clusters evolve based on search patterns
- Multi-level retrieval: Adaptive keyword granularity for better recall
- Evidence-based: Monte Carlo sampling for precise content extraction
What LLM providers are supported?
Any OpenAI-compatible API endpoint, including (but not limited too):
- OpenAI (GPT-4, GPT-4o, GPT-3.5)
- Local models served via Ollama, llama.cpp, vLLM, SGLang etc.
- Claude via API proxy
How do I add documents to search?
Simply specify the path in your search query:
result = await search.search(
query="Your question",
search_paths=["/path/to/folder", "/path/to/file.pdf"]
)
No pre-processing or indexing required!
Where are knowledge clusters stored?
Knowledge clusters are persisted in Parquet format at:
{WORK_PATH}/.cache/knowledge/knowledge_clusters.parquet
You can query them using DuckDB or the KnowledgeManager API.
How do I monitor LLM token usage?
- Web Dashboard: Visit the Monitor page for real-time statistics
- API:
GET /api/v1/monitor/llmreturns usage metrics - Code: Access
search.llm_usagesafter search completion
📋 Roadmap
- Text-retrieval from raw files
- Knowledge structuring & persistence
- Real-time chat with RAG
- Web UI support
- Web search integration
- Multi-modal support (images, videos)
- Distributed search across nodes
- Knowledge visualization and deep analytics
- More file type support
🤝 Contributing
We welcome contributions !
📄 License
This project is licensed under the Apache License 2.0.
ModelScope · ⭐ Star us · 🐛 Report a bug · 💬 Discussions
✨ Sirchmunk: Raw data to self-evolving intelligence, real-time.
❤️ Thanks for Visiting ✨ Sirchmunk !
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sirchmunk-0.0.1.post1.tar.gz.
File metadata
- Download URL: sirchmunk-0.0.1.post1.tar.gz
- Upload date:
- Size: 86.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d3cb555a4676e9e7bc7f46580854d80e2bf693e5571bc848d30b19a34a753db
|
|
| MD5 |
0205ca3d20283e0c29967f751242ec5c
|
|
| BLAKE2b-256 |
80bc4e26550bbf00ce9d749c909affcf65e0a45bda191f9412f779148886d2d0
|
File details
Details for the file sirchmunk-0.0.1.post1-py3-none-any.whl.
File metadata
- Download URL: sirchmunk-0.0.1.post1-py3-none-any.whl
- Upload date:
- Size: 92.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bafd0aa59a70f813215e3c927ec6c7b1e7da43a5f6cfa8801439059e8787079f
|
|
| MD5 |
1f23de0d2b4ee878f3c2032133c43a5f
|
|
| BLAKE2b-256 |
a64f8a67c98caf8f294646fac0bf4d6593cabc2f196be6370fbae021cad8f488
|