লাভ:
- একটি এন্ড-টু-এন্ড এন্টারপ্রাইজ RAG সহকারীর উপাদান এবং ডেটা প্রবাহ ডিজাইন করা
- মাল্টি-সোর্স ডেটা (উইকি, টিকিট, পিডিএফ, ডাটাবেস) একক সহকারীতে একত্রিত করা
- স্কেলেবিলিটি, ক্যাশিং এবং লেটেন্সির জন্য আর্কিটেকচারাল সিদ্ধান্ত নিন
পূর্ববর্তী ইউনিটগুলিতে, আমরা একে একে অংশগুলি শিখেছি: এমবেডিং, ভেক্টর ডাটাবেস, চঙ্কিং, পুনরুদ্ধার। এখন আসুন এইগুলিকে একত্রিত করি এবং আপনার নিজের কোম্পানির ডেটার সাথে কথা বলে এমন একজন সহকারীর এন্ড-টু-এন্ড আর্কিটেকচার তৈরি করি। লক্ষ্য হল একজন কর্মচারীকে জিজ্ঞাসা করা, "আমাদের ছুটি নীতি কী?" একটি সিস্টেম যেখানে লোকেরা প্রশ্ন জিজ্ঞাসা করতে পারে, উত্তরগুলি প্রকৃত অভ্যন্তরীণ নথি, উদ্ধৃতি এবং একাধিক ডেটা উত্সের উপর ভিত্তি করে। এই ইউনিট পুরো আর্কিটেকচার, ডেটা প্রবাহ এবং উত্পাদন স্তরের সিদ্ধান্তগুলি প্রক্রিয়া করে।
এন্ড-টু-এন্ড উপাদান
একটি কর্পোরেট RAG সহকারী দুটি পৃথক লাইন নিয়ে গঠিত। ইনডেক্সিং লাইন (অফলাইন) ডেটা প্রস্তুত করে; ক্যোয়ারী লাইন (অনলাইন) প্রশ্নের উত্তর দেয়।
ইনডেক্সিং লাইন উপাদান:
- সংযোগকারী: সংযোগকারীরা যেগুলি উৎস থেকে ডেটা সংগ্রহ করে — উইকি, টিকিট সিস্টেম, ফাইল স্টোর, ডাটাবেস, ইমেল।
- সাধারণীকরণ: বিভিন্ন ফরম্যাটকে (পিডিএফ, এইচটিএমএল, ডিওসিএক্স) টেক্সট পরিষ্কারে রূপান্তর করা; হেডার/ফুটার পরিষ্কার করা।
- চাঙ্কিং + মেটাডেটা: চঙ্কিং এবং ট্যাগিং (উৎস, তারিখ, কর্তৃপক্ষ)।
- এমবেডিং + লোডিং: ভেক্টর ডাটাবেসে ভেক্টর এবং মেটাডেটা লেখা।
ক্যোয়ারী পাইপলাইন উপাদান:
- প্রশ্ন প্রিপ্রসেসিং: পুনর্লিখন, বিকেন্দ্রীকরণ।
- পুনরুদ্ধার: হাইব্রিড অনুসন্ধান + মেটাডেটা ফিল্টার + পুনরায় র্যাঙ্কিং।
- প্রম্পট তৈরি: টেমপ্লেটে প্রসঙ্গ + প্রশ্ন + নির্দেশাবলী স্থাপন করা।
- প্রজন্ম: মডেল + উত্স থেকে গ্রাউন্ডেড (প্রসঙ্গিক) উত্তর।
- পোস্ট-প্রসেসিং: উদ্ধৃতি বিন্যাস, নিরাপত্তা পরীক্ষা, লগিং।
টিপ: ক্যোয়ারী লাইন থেকে ইনডেক্সিং লাইনকে শারীরিকভাবে আলাদা করুন। সূচীকরণ ধীর এবং পর্যায়ক্রমিক (রাতারাতি ব্যাচে চলে); তদন্তের লাইন হালকা এবং অবিলম্বে হওয়া উচিত। ব্যবহারকারী অপেক্ষা করার সময় দুটি লাইন মিশ্রিত করা ভারী প্রক্রিয়াকরণকে বাধ্য করে।
ডেটা ফ্লো ভিজ্যুয়ালাইজ করা
[ইনডেক্সিং - অফলাইন]সম্পদ → নর্মালাইজ করুন → চাঙ্ক+মেটাডেটা → এম্বেড → ভেক্টর ডিবি (উইকি, টিকিট, পিডিএফ, ডিবি)[QUERY - অনলাইন]ব্যবহারকারীর প্রশ্ন → প্রাক-প্রক্রিয়াকরণ → পুনরুদ্ধার (হাইব্রিড+ফিল্টার+রির্যাঙ্ক) → প্রম্পট (প্রসঙ্গ+প্রশ্ন+নির্দেশনা → ব্যবহার করুন → উত্তর+ নির্দেশ)
মাল্টি-সোর্স ডেটা একত্রিত করা
বাস্তব কোম্পানিগুলিতে, উত্তর এক জায়গায় থামে না। "কীভাবে একজন গ্রাহককে ফেরত প্রদান করবেন?" প্রশ্নের উত্তরটি সহায়তা নিবন্ধে (প্রক্রিয়া), টিকিটের ইতিহাসে (বাস্তব উদাহরণ) এবং নীতি PDF (নিয়ম) উভয় ক্ষেত্রেই পাওয়া যাবে। সহকারীর উচিত তাদের সকলকে একটি পুলে অনুসন্ধান করা।
গুরুত্বপূর্ণ পয়েন্ট: একটি একক ভেক্টর স্টোরে সংস্থানগুলিকে একত্রিত করার সময়, প্রতিটি শার্ডকে অবশ্যই `সোর্স_ট্যুর` মেটাডেটা বহন করতে হবে। সুতরাং আপনি সেগুলিকে অনুসন্ধান করতে পারেন এবং প্রয়োজনে সেগুলিকে ফিল্টার করতে পারেন, যেমন "শুধুমাত্র অফিসিয়াল নীতিগুলি আনুন"। এছাড়াও, বিভিন্ন উত্সের নির্ভরযোগ্যতার বিভিন্ন স্তর রয়েছে: অফিসিয়াল নীতি > সহায়তা নিবন্ধ > একজন কর্মচারীর টিকিটের নোট। আপনি রি-র্যাঙ্কিং বা প্রম্পটে এই অগ্রাধিকারটি নির্দিষ্ট করতে পারেন।
উৎস
বিষয়বস্তুর প্রকার
বিশ্বাস
আপডেট ফ্রিকোয়েন্সি
নীতি PDF
সরকারী নিয়ম
উচ্চ
মাসিক
সাহায্য নিবন্ধ
পদ্ধতি
মাঝারি উচ্চ
সাপ্তাহিক
টিকিটের ইতিহাস
বাস্তব নমুনা
মাঝারি
ক্রমাগত
উইকি
মিশ্র/বর্তমান নোট
পরিবর্তনশীল
ক্রমাগত
স্কেলেবিলিটি, ক্যাশে এবং লেটেন্সি
তিনটি ইস্যু উৎপাদনে স্ট্যান্ড আউট. লেটেন্সি: ব্যবহারকারী 2 সেকেন্ডের বেশি অপেক্ষা করলে অভিজ্ঞতার অবনতি হয়। সমাধান: উত্তরটি স্ট্রিমিং আকারে প্রদর্শন করুন — মডেলটি লেখার সাথে সাথে এটি পর্দায় ঢেলে দেওয়া হয়। ক্যাশে: প্রায়শই জিজ্ঞাসিত প্রশ্ন এবং পুনরাবৃত্তিমূলক প্রসঙ্গে, ক্যাশে গতি বাড়ায় এবং খরচ কমায়। স্কেল: ব্যবহারকারী বাড়ার সাথে সাথে অনুভূমিকভাবে পুনরুদ্ধার এবং মডেল কলগুলি স্কেল করতে সক্ষম হওয়া প্রয়োজন।
খরচের দিক থেকে বিধির নিয়ম: সবচেয়ে ব্যয়বহুল পদক্ষেপ হল সাধারণত বড় মডেলে যাওয়া টোকেনের সংখ্যা। অতএব, পুনরায় র্যাঙ্কিংয়ের মাধ্যমে প্রসঙ্গটিকে 4টি ভাল অংশে কমিয়ে দিলে মান এবং খরচ উভয়ই উন্নত হয়। সাধারণ শ্রেণীবিভাগ বা রাউটিং-এর জন্য একটি ছোট/দ্রুত মডেল এবং চূড়ান্ত উত্তরের জন্য আরও শক্তিশালী মডেল (যেমন claude-opus-4-8) ব্যবহার করা একটি সাধারণ নকশা।
সতর্কতা: "এটি একবার করুন, ভুলে যান" হিসাবে ইন্ডেক্সিং সেট আপ করবেন না। নথি পরিবর্তন, মুছে ফেলা, যোগ করা হয়. একটি পুনঃসূচীকরণ কৌশল স্থাপন করুন: পরিবর্তিত নথি সনাক্ত করুন এবং শুধুমাত্র সেগুলি পুনরায় প্রক্রিয়া করুন৷ বাসি সূচক একটি উত্তর তৈরি করে যা বর্তমান বলে মনে হয় কিন্তু ভুল।
দুর্বল স্থাপত্য / শক্তিশালী স্থাপত্য
দুর্বল (একক স্ক্রিপ্ট, সবকিছু মিশ্রিত):
যখন ব্যবহারকারী জিজ্ঞাসা করে: সেই মুহূর্তে নথিগুলি পড়ুন, তাদের টুকরো টুকরো করে এম্বেড করুন, তাদের অনুসন্ধান করুন, উত্তর দিন। # সমস্যা: প্রতিটি প্রশ্নের জন্য সমস্ত সূচী পুনরাবৃত্তি করা হয়; বিলম্বের সেকেন্ড, # কোন উৎস পৃথকীকরণ, কোন ফিল্টার, কোন রিফ্রেশ.
শক্তিশালী (বিভক্ত পাইপ + মেটাডেটা + ক্যাশে + স্ট্রিমিং):
সূচীকরণ: ব্যাচ রাতে চলে, পরিবর্তিত নথি রিফ্রেশ করে। ক্যোয়ারী: লাইটওয়েট লাইন — প্রাক-প্রসেসিং → হাইব্রিড পুনরুদ্ধার + ফিল্টার → রিরাঙ্ক → প্রম্পট → মডেল (স্ট্রিমিং) → উদ্ধৃতি → লগ। প্রায়শই জিজ্ঞাসিত প্রশ্ন এবং উৎস ক্যাশ করা হয়.
তিনটি মিনি কেস
কেস 1 — বিভ্রান্ত লাইন, ভারী বিলম্ব। একটি স্টার্টআপ একটি স্ক্রিপ্ট লিখেছিল যা প্রতিটি প্রশ্নের সাথে পিডিএফ পুনরায় প্রক্রিয়া করে; প্রতিটি উত্তর গড়ে 11 সেকেন্ড সময় নেয়। যখন ইন্ডেক্সিং লাইনটি আলাদা করা হয়েছিল এবং ডেটা পূর্বে ভেক্টর স্টোরে স্থানান্তরিত হয়েছিল, তখন ক্যোয়ারী সময় 1.3 সেকেন্ডে কমে যায় এবং স্ট্রিমিংয়ের সাথে, "প্রথম শব্দ" 400 ms এ উপস্থিত হয়।
কেস 2 — অনেক সম্পদ, ভুল অগ্রাধিকার। একজন সহায়তা সহকারী পলিসি পিডিএফ এবং পুরানো টিকিট নোটের সমান ওজন দিয়েছেন; মডেলটি কখনও কখনও সরকারী নিয়ম হিসাবে দুই বছর আগে থেকে একজন কর্মচারীর ভুল রেটিং উপস্থাপন করে। সোর্স_ট্যুর মেটাডেটা এবং "বিরোধের ক্ষেত্রে সরকারী নীতি বিবেচনা করুন" নির্দেশাবলী প্রম্পটে যোগ করা হলে, মিথ্যা-অগ্রাধিকার ত্রুটিগুলি 89% কমে গেছে।
কেস 3 - বাসি সূচক। একজন এইচআর সহকারী একটি সূচকের সাথে কাজ করছিলেন যা 3 মাস ধরে আপডেট করা হয়নি; ছুটির নীতিমালা বদল হলেও সহকারী বলছিলেন পুরনো দিনের কথা। যখন দৈনিক রিফ্রেশ ইনস্টল করা হয়েছিল, যা পরিবর্তিত ফাইলগুলি সনাক্ত করে, বর্তমান-প্রতিক্রিয়ার হার 70% থেকে 99% বৃদ্ধি পেয়েছে৷
সাধারণ ভুল
- ইন্ডেক্সিং এবং ক্যোয়ারী লাইন মিশ্রিত করা: ব্যবহারকারী অপেক্ষা করার সময় ভারী প্রক্রিয়াকরণ করা হয়; বিলম্ব বিস্ফোরিত হয়।
- মেটাডেটাতে সোর্স টাইপ না রাখা: কোন অগ্রাধিকার এবং ফিল্টারিং নেই; অবিশ্বস্ত উৎসটি অফিসিয়াল বলে মনে হচ্ছে।
- একটি রিফ্রেশ কৌশল প্রতিষ্ঠা না করা: সূচকটি বাসি হয়ে যায়; বর্তমান প্রদর্শিত ভুল উত্তর উত্পাদিত হয়.
- স্ট্রিমিং এড়িয়ে যান: ব্যবহারকারী একটি ফাঁকা পর্দার দিকে তাকায়; অনুভূত বিলম্ব উচ্চ হয়ে ওঠে.
- প্রতিটি ধাপে সবচেয়ে বড় মডেল ব্যবহার করা: খরচ অপ্রয়োজনীয়ভাবে বৃদ্ধি পায়; ছোট মডেলে স্টিয়ারিং ছেড়ে দিন।
সংক্ষেপে
- কর্পোরেট RAG সহকারী দুটি পৃথক লাইন নিয়ে গঠিত: অফলাইন ইনডেক্সিং এবং অনলাইন ক্যোয়ারী; তাদের শারীরিকভাবে আলাদা করুন।
- ইন্ডেক্সিং = সংযোগকারী + স্বাভাবিককরণ + খণ্ড/মেটাডেটা + এম্বেড/আপলোড; প্রশ্ন = প্রাক-প্রক্রিয়া + পুনরুদ্ধার + প্রম্পট + জেনারেট + পোস্ট-প্রসেস।
- মাল্টি-সোর্স ডেটা একটি একক সংগ্রহস্থলে একত্রিত করা হয়, কিন্তু source_type মেটাডেটা এবং বিশ্বাসের অগ্রাধিকার সংরক্ষণ করা হয়।
- বিলম্বের জন্য স্ট্রিমিং এবং ক্যাশে, প্রসঙ্গ থ্রোটলিং এবং খরচের জন্য মডেল নির্বাচন গুরুত্বপূর্ণ।
- পুনঃসূচীকরণ ছাড়া, সূচকটি বাসি হয়ে যায়; নিয়মিত পরিবর্তন নথি পুনরায় প্রক্রিয়া করুন.
আবেদন টাস্ক
আপনার নিজের দলের জন্য একজন সহকারীর একটি স্থাপত্য চিত্র আঁকুন। (1) কমপক্ষে তিনটি বাস্তব ডেটা উত্স সনাক্ত করুন এবং প্রতিটির জন্য একটি সংযোগকারীর প্রয়োজন, আপডেট ফ্রিকোয়েন্সি এবং বিশ্বাসের স্তর লিখুন। (2) একটি বক্স-তীর চিত্রের সাহায্যে পৃথকভাবে সূচীকরণ এবং ক্যোয়ারী লাইন আঁকুন। (3) "আমি কোথায় এই সহকারীতে বিলম্ব এবং খরচ কমাতে পারি?" প্রশ্নে অন্তত দুটি সুনির্দিষ্ট সিদ্ধান্ত লিখুন। (4) আপনার রিফ্রেশ কৌশলটি এক বাক্যে বর্ণনা করুন: কোন সংস্থানগুলি পুনরায় তালিকাভুক্ত করা হবে এবং কতবার?
চেকলিস্ট
- [ ] আমি আলাদাভাবে এবং সঠিক উপাদান দিয়ে ইন্ডেক্সিং এবং ক্যোয়ারী লাইন আঁকতে পারি।
- [ ] আমি source_type এবং বিশ্বাসের অগ্রাধিকারের সাথে মাল্টি-সোর্স ডেটা একত্রিত করতে পারি।
- আমি বিলম্বের জন্য স্ট্রিমিং/ক্যাশে সিদ্ধান্ত নিতে পারি এবং খরচের জন্য মডেল নির্বাচন করতে পারি।
- [ ] আমি জানি কেন একটি পুনঃসূচীকরণ কৌশল অপরিহার্য।
- [ ] আমি মনে রাখি যে আমার স্থাপত্যের সবচেয়ে ব্যয়বহুল পদক্ষেপটি সাধারণত টোকেন যা বড় মডেলে যায়৷