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

Langchain-Chatchat (পূর্বে Langchain-ChatGLM) হলো একটি ওপেন-সোর্স, অফলাইন ডিপ্লয়মেন্ট-যোগ্য RAG (Retrieval-Augmented Generation) এবং Agent অ্যাপ্লিকেশন প্রজেক্ট, যা Langchain ফ্রেমওয়ার্ক এবং ChatGLM, Qwen, Llama-এর মতো বড় ভাষা মডেলগুলোর ওপর ভিত্তি করে তৈরি। এর লক্ষ্য হলো চীনা দৃশ্যপট এবং ওপেন-সোর্স মডেলগুলোর জন্য বান্ধব এবং সম্পূর্ণ অফলাইনে চালানো যায় এমন একটি নলেজ বেস প্রশ্নোত্তর সমাধান তৈরি করা। মূল নীতি প্রবাহটি হলো: ফাইল লোড করা, টেক্সট পড়া, টেক্সট বিভাজন, টেক্সট ভেক্টরাইজেশন, প্রশ্ন ভেক্টরাইজেশন, ভেক্টর ডেটাবেসে সবচেয়ে সাদৃশ্যপূর্ণ top k টেক্সট মিলানো, মিলিত টেক্সটকে কনটেক্সট হিসেবে প্রশ্নের সাথে prompt-এ যোগ করা এবং উত্তর তৈরির জন্য LLM-এ জমা দেওয়া। প্রজেক্টটি মাইক্রোটনিং বা ট্রেনিং নিয়ে জড়িত নয়, তবে মাইক্রোটনিং-এর মাধ্যমে পারফরম্যান্স অপ্টিমাইজ করা সম্ভব। 0.3.x সংস্করণের ফিচারগুলো হলো: LLM চ্যাট, নলেজ বেস চ্যাট, সার্চ ইঞ্জিন চ্যাট, ফাইল চ্যাট (File RAG হিসেবে একীভূত, BM25+KNN সহ বিভিন্ন রিট্রিভাল পদ্ধতি সাপোর্ট করে), ডেটাবেস চ্যাট, মাল্টিমোডাল ইমেজ চ্যাট, ARXIV লিটারেচার চ্যাট, Wolfram চ্যাট, টেক্সট-টু-ইমেজ, লোকাল নলেজ বেস ম্যানেজমেন্ট এবং WebUI। মূল ফিচারগুলো Agent দ্বারা বাস্তবায়িত হয়, ব্যবহারকারীরা ম্যানুয়ালি টুল কলিং-ও করতে পারেন, যা অটোমেটিক টুল কলিং, শুধুমাত্র টুল প্যারামিটার পার্সিং, ম্যানুয়াল প্যারামিটার ফিলিং ইত্যাদি বিভিন্ন মোড সাপোর্ট করে। মডেল সংযোগের ক্ষেত্রে, 0.3.x সংস্করণ আর সরাসরি লোকাল পাথ থেকে মডেল লোড করে না, বরং প্রধান মডেল ইনফারেন্স ফ্রেমওয়ার্কগুলোর মাধ্যমে সংযোগ স্থাপন করে, যার মধ্যে Xinference, LocalAI, Ollama, FastChat এবং অনলাইন API ফ্রেমওয়ার্ক One API (OpenAI, Azure OpenAI, Anthropic Claude, Zhipu Qingyan, Baichuan ইত্যাদি সাপোর্ট করে) অন্তর্ভুক্ত। সকল মডেল সংযোগ OpenAI SDK-এর সাথে সামঞ্জস্যপূর্ণ। ডিপ্লয়মেন্ট পদ্ধতিগুলো হলো: pip ইনস্টলেশন (pip install langchain-chatchat -U), সোর্স কোড ইনস্টলেশন/ডেভেলপমেন্ট ডিপ্লয়মেন্ট এবং Docker ডিপ্লয়মেন্ট। ব্যবহারের প্রক্রিয়াটি হলো: মডেল ইনফারেন্স ফ্রেমওয়ার্ক চালু করে মডেল লোড করা, chatchat init চালানো কনফিগারেশন ও ডেটা ডিরেক্টরি ইনিশিয়ালাইজ করার জন্য, model_settings.yaml ইত্যাদি কনফিগারেশন ফাইল পরিবর্তন করা, chatchat kb -r চালানো নলেজ বেস ইনিশিয়ালাইজ করার জন্য এবং chatchat start -a চালানো প্রজেক্ট শুরু করার জন্য। প্রজেক্টটি Python 3.8-3.11 সাপোর্ট করে এবং Windows, macOS, Linux-এ চালানো যায়, হার্ডওয়্যার সাপোর্টের মধ্যে CPU, GPU, NPU, MPS অন্তর্ভুক্ত। প্রজেক্টের কোড Apache-2.0 লাইসেন্স অনুসরণ করে। মাইলফলকগুলো হলো: ২০২৩ সালের এপ্রিলে 0.1.0 রিলিজ, ২০২৩ সালের আগস্টে নাম পরিবর্তন ও 0.2.0 রিলিজ, ২০২৩ সালের ডিসেম্বরে ২০K-এর বেশি স্টার অর্জন এবং ২০২৪ সালের জুনে 0.3.0 নতুন আর্কিটেকচার রিলিজ।