প্রকল্প সম্পর্কে
AIForge হলো একটি নেটিভ C++23 টার্মিনাল AI ক্লায়েন্ট যা একটি প্রোভাইডার-নিউট্রাল রানটাইম কার্নেলের চারপাশে ডিজাইন করা হয়েছে। এটি Venice (venice-cpp এর মাধ্যমে) এর মাধ্যমে স্ট্রিমিং ইন্টারঅ্যাকশন, ওয়ান-শট এবং পাইপ-ভিত্তিক AI ওয়ার্কফ্লো এবং পারসিস্টেন্ট, রেজুমেবল চ্যাট সেশন সমর্থন করে। এর ইন্টারঅ্যাক্টিভ Chat ইন্টারফেসটি শক্তিশালী টার্মিনাল রেন্ডারিংয়ের জন্য TermForge-এর উপর ভিত্তি করে তৈরি করা হয়েছে।
মূল বৈশিষ্ট্যগুলোর মধ্যে রয়েছে:
- **প্রোভাইডার-নিউট্রাল কার্নেল**: কোর লজিক AI প্রোভাইডার থেকে আলাদা করা হয়েছে, যা ডিউরেবল, রিপ্লেবল রান এবং প্রজেকশন সক্ষম করে।
- **ডিউরেবল সেশন**: সেশন স্টেট, ইভেন্ট এবং ট্রান্সক্রিপ্ট SQLite ব্যবহার করে পারসিস্টেন্টভাবে সংরক্ষণ করা হয়; সেশনগুলো পুনরায় শুরু বা চালিয়ে যাওয়া সম্ভব।
- **রিপ্লেবল টাস্ক প্ল্যানিং**: এটি স্ট্রাকচার্ড `ask_user` টুল ব্যবহার, প্ল্যান রিভিশন, টাস্ক গ্রাফ এবং কনফ্লিক্ট অ্যানালাইসিস ও রিপোজিটরি-ব্যাকড ব্যাকলগ ট্র্যাকিং সহ এক্স্যাক্ট-রিভিশন সিদ্ধান্ত সমর্থন করে।
- **ফাইল-ব্যাকড পারসোনা**: XDG কনফিগ-এর `.md` বা `.txt` ফাইল থেকে সিস্টেম ইনস্ট্রাকশন লোড করা হয়; যা কন্টেন্ট হ্যাশিং এবং অ্যাটমিক আপডেটের মাধ্যমে সুরক্ষিতভাবে ম্যানেজ করা হয়।
- **মডেল ডিসকভারি এবং সিলেকশন**: সক্ষমতা, মূল্য এবং কনটেক্সট সাইজসহ উপলব্ধ মডেলগুলোর তালিকা প্রদান করে; CLI বা ইন্টারঅ্যাক্টিভ `/model` কমান্ডের মাধ্যমে ফিল্টারিং এবং সিলেকশনের সুযোগ দেয়।
- **ট্রানজিয়েন্ট ক্যারেক্টার সিলেকশন**: কোর কনফিগারেশন পরিবর্তন না করেই রানটাইমে প্রোভাইডার-স্পেসিফিক ক্যারেক্টার নির্বাচন করা যায়।
- **লোকাল অডিও সাপোর্ট (Linux)**: ALSA (RtAudio) এর মাধ্যমে ক্যাপচার এবং প্লেব্যাক, যা সুরক্ষিতভাবে হ্যান্ডেল করা হয় এবং AI মডেলের কাছে এক্সপোজ করা হয় না।
- **ইমেজ হ্যান্ডলিং**: কন্টেন্ট-অ্যাড্রেসড স্টোরেজ এবং ভ্যালিডেশনের মাধ্যমে ইমেজ জেনারেট, ভিউ এবং এক্সপোর্ট করা যায় (RasterForge এর মাধ্যমে PNG, JPEG, WebP)।
- **বাউন্ডেড এক্সিকিউশন**: নিরাপত্তা বৃদ্ধির জন্য পলিসি-গেটেড প্রসেস এক্সিকিউশন, ইনপুট/আউটপুট সাইজ লিমিট এবং ক্যাপাবিলিটি রেস্ট্রিকশন।
- **ব্যবহার এবং খরচ নিয়ন্ত্রণ**: প্রতি সেশনের টোকেন ব্যবহার এবং আর্থিক খরচ ট্র্যাক করে; কনফিগারযোগ্য স্পেন্ড সিলিং প্রয়োগ করে।
- **স্ল্যাশ কমান্ড সিস্টেম**: হেল্প, কমপ্লিশন এবং অ্যাভেইলেবিলিটি চেকসহ একটি ইউনিফাইড, এক্সটেনসিবল কমান্ড রেজিস্ট্রি।
- **স্ট্যাটিক অ্যানালাইসিস এবং স্টাইল**: ডকুমেন্ট করা পলিসি সহ এনফোর্সড কোড ফরম্যাটিং (clang-format 20) এবং স্ট্যাটিক অ্যানালাইসিস (clang-tidy 20)।
এটি CMake (3.28+) এর মাধ্যমে GCC 13+ অথবা Clang 17+ দিয়ে বিল্ড করা হয় এবং কোর ফাংশনালিটির জন্য TermForge, venice-cpp এবং RasterForge-এর উপর নির্ভরশীল। SQLite ডিউরেবল সেশন স্টোরেজ প্রদান করে। টেস্ট এবং লিন্টিং বিল্ড সিস্টেমের সাথে ইন্টিগ্রেটেড।
এর আর্কিটেকচার নিরাপত্তা, ডিটারমিনিজম এবং অডিটেবিলিটির উপর গুরুত্ব দেয়, যেখানে আর্কিটেকচারাল সিদ্ধান্তগুলো ADRs (Architecture Decision Records) এবং ডিজাইন ডকুমেন্ট দ্বারা পরিচালিত হয়। উল্লেখযোগ্য সীমাবদ্ধতার মধ্যে রয়েছে UTF-8 ভ্যালিডেশন, কন্টেন্ট-অ্যাড্রেসড আর্টিফ্যাক্ট এবং অনিরাপদ ইনপুট বা সিমলিংকের কঠোর প্রত্যাখ্যান।
এটি হেডলেস (CLI) এবং ইন্টারঅ্যাক্টিভ TUI উভয় মোডে চলে। টার্মিনালে কোনো আর্গুমেন্ট ছাড়াই লঞ্চ করলে এটি ইন্টারঅ্যাক্টিভ Chat ওয়ার্কস্পেস খোলে। ডিফ রিভিউ, কোড অ্যানালাইসিস এবং অটোমেশনের জন্য এটি stdin পাইপলাইনিং সমর্থন করে।
এটি BSD 3-clause লাইসেন্সের অধীনে প্রকাশিত।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.