প্রকল্প সম্পর্কে

# Iris Iris একটি LLM-প্রথম, উৎস-নিরপেক্ষ মেসেজিং সিস্টেম যা একাধিক প্ল্যাটফর্ম—টেলিগ্রাম, এসএমএস, ইমেইল, হোয়াটসঅ্যাপ, ইনস্টাগ্রাম এবং অন্যান্য—থেকে বার্তাগুলিকে একটি একক, কোয়েরিযোগ্য 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`: প্রদানকারী বাস্তবায়ন (টেলিগ্রাম, এসএমএস, ইমেইল, ইত্যাদি) - `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