इस प्रोजेक्ट के बारे में

# Iris Iris एक LLM-प्रथम, स्रोत-अज्ञेय संदेश प्रणाली है जिसे कई प्लेटफार्मों—Telegram, SMS, Email, WhatsApp, Instagram और अन्य—से संदेशों को एकल, क्वेरी-योग्य API में एकीकृत करने के लिए डिज़ाइन किया गया है। यह स्व-होस्टेबल, MIT-लाइसेंस प्राप्त और Rust में निर्मित है। ## मुख्य विशेषताएँ - **एकीकृत मॉडल**: सभी संदेशों को सुसंगत `Message`, `Thread` और `Contact` संरचनाओं में सामान्यीकृत करता है। - **स्रोत-अज्ञेय क्वेरीज़**: उनके मूल को जाने बिना सभी स्रोतों में क्वेरी करें (जैसे, "सभी अपठित थ्रेड")। - **LLM-प्रथम डिज़ाइन**: MCP समर्थन, संरचित JSON और क्षमता विज्ञापन के साथ एजेंट उपभोग के लिए अनुकूलित। - **कोड जनरेशन**: CLI, HTTP और MCP सतहें एकल API परिभाषा से उत्पन्न होती हैं, जिससे स्थिरता सुनिश्चित होती है। - **स्व-होस्टेबल**: कोई क्लाउड निर्भरता नहीं; जहाँ Rust चलता है वहाँ चलता है। - **विस्तार योग्य**: नया प्रदाता जोड़ने के लिए एकल ट्रेट लागू करना आवश्यक है। ## त्वरित प्रारंभ ```bash cargo build cargo run -- threads cargo run -- messages <thread-id> cargo run -- contacts cargo run -- serve ``` ## Docker के साथ स्व-होस्टिंग प्रकाशित इमेजें `ghcr.io/techgodhq/iris:<version>` (या `:latest`) पर उपलब्ध हैं। इंटरनेट-सुलभ तैनाती के लिए `IRIS_API_TOKEN` को उच्च-एन्ट्रॉपी गुप्त मान पर सेट करें; `GET /health` को छोड़कर सभी HTTP एंडपॉइंट्स को Bearer टोकन प्रमाणीकरण की आवश्यकता होती है। टोकन के बिना, सर्वर सार्वजनिक या वाइल्डकार्ड बाइंड पते को अस्वीकार कर देता है। उदाहरण: ```bash docker run --rm \ --name iris \ --publish 127.0.0.1:9876:9876 \ --volume iris-data:/data \ --env IRIS_ENABLED_PROVIDERS=telegram \ --env IRIS_TELEGRAM_BOT_TOKEN="${IRIS_TELEGRAM_BOT_TOKEN}" \ ghcr.io/techgodhq/iris:latest ``` ## कॉन्फ़िगरेशन Iris TOML फ़ाइलों, मूल पर्यावरण चर, या दोनों का समर्थन करता है। पर्यावरण मान TOML को ओवरराइड करते हैं, जो डिफ़ॉल्ट को ओवरराइड करता है। मुख्य चर में `IRIS_ENABLED_PROVIDERS`, `IRIS_TELEGRAM_BOT_TOKEN` और विभिन्न `IRIS_EMAIL_*` सेटिंग्स शामिल हैं। प्रदाता प्रकार के कई उदाहरण समर्थित हैं (जैसे, `email.ops-codefold`), स्वतंत्र कॉन्फ़िगरेशन और पर्यावरण चर नामकरण परंपराओं के साथ। ## वास्तुकला Iris क्रेट्स के साथ एक वर्कस्पेस के रूप में संरचित है: - `iris-core`: डोमेन मॉडल और `MessageProvider` ट्रेट (शून्य I/O निर्भरताएँ) - `iris-providers`: प्रदाता कार्यान्वयन (Telegram, SMS, Email, आदि) - `iris-server`: Axum HTTP सर्वर (REST API) - `iris-cli`: कमांड-लाइन इंटरफ़ेस (clap) - `iris-mcp`: MCP सर्वर सतह - `iris-codegen`: CLI/HTTP/MCP को सिंक में रखने के लिए कोड जनरेशन ## प्रदाता जोड़ना 1. `iris-providers/src/` में एक मॉड्यूल बनाएँ। 2. `MessageProvider` ट्रेट लागू करें। 3. इसे सर्वर/CLI स्टार्टअप में पंजीकृत करें। ## विकास ```bash cargo build --all-targets cargo test --all-targets cargo clippy --all-targets -- -D warnings cargo fmt --all -- --check ``` प्री-कमिट हुक lefthook के माध्यम से कॉन्फ़िगर किए गए हैं। ## लाइसेंस MIT