૩૦ મિનિટમાં લોકલ RAG ચેટબોટ બનાવો

મેં મારા લોકલ ચેટબોટમાં ૪૦ પેજની API સ્પેસિફિકેશન અપલોડ કરી. મેં એક ચોક્કસ એન્ડપોઇન્ટ માટેની રેટ લિમિટ વિશે પૂછ્યું.

બોટે ત્રણ સેકન્ડમાં જવાબ આપ્યો. તેણે દસ્તાવેજના ચોક્કસ વિભાગનો ઉલ્લેખ કર્યો.

સૌથી શ્રેષ્ઠ વાત? તેનો ખર્ચ $0 થયો. બધું જ મારા લેપટોપ પર .NET 8, Ollama, અને React નો ઉપયોગ કરીને ચાલે છે. કોઈ પણ ડેટા મારા મશીનમાંથી બહાર જતો નથી.

મોટાભાગના ટ્યુટોરિયલ્સ તમને OpenAI નો ઉપયોગ કરવાનું કહે છે. તે ડેમો માટે કામ કરે છે, પરંતુ વાસ્તવિક કામ માટે તે નિષ્ફળ જાય છે કારણ કે:

  • Privacy: તમે કંપનીનો સંવેદનશીલ ડેટા ક્લાઉડ ટ્રેનિંગ પાઇપલાઇનમાં રાખવા માંગતા નથી.
  • Cost: LLM ને મોટી ફાઇલો મોકલવાથી ખર્ચ ઝડપથી વધે છે.
  • Hallucinations: મોડલ્સ ઘણીવાર લાંબા દસ્તાવેજોનો મધ્ય ભાગ ભૂલી જાય છે.

તેનો ઉકેલ RAG (Retrieval-Augmented Generation) છે. આખું PDF મોકલવાને બદલે, તમે ફક્ત સંબંધિત ચંક્સ (chunks) મોકલો છો.

મેં આ પાઇપલાઇન કેવી રીતે બનાવી તે અહીં છે:

• Text Extraction: મેં PDFs માંથી ટેક્સ્ટ કાઢવા માટે PdfPig નો ઉપયોગ કર્યો. • Chunking: મેં ટેક્સ્ટને ૫૦૦ શબ્દોના ટુકડાઓમાં વિભાજિત કર્યા જેમાં ૫૦ શબ્દોનું ઓવરલેપ (overlap) રાખ્યું. આ ઓવરલેપ એ સુનિશ્ચિત કરે છે કે મોડલ એવા જવાબો ન ચૂકી જાય જે બે ચંક્સ વચ્ચે વહેંચાયેલા હોય. • Embeddings: ટેક્સ્ટને વેક્ટર્સમાં બદલવા માટે મેં Ollama દ્વારા nomic-embed-text મોડલનો ઉપયોગ કર્યો. • Vector Store: શ્રેષ્ઠ મેચ શોધવા માટે મેં cosine similarity નો ઉપયોગ કરીને એક સાદી ઇન-મેમરી લિસ્ટ બનાવી. • Generation: મેં ફક્ત મળેલા ચંક્સના આધારે પ્રશ્નોના જવાબ આપવા માટે llama3.2 નો ઉપયોગ કર્યો.

આ નિર્માણ દરમિયાન મેં શીખેલા ત્રણ પાઠ:

  1. લાંબો timeout વાપરો: લોકલ મોડલ્સને મેમરીમાં લોડ થવામાં સમય લાગે છે. કોલ્ડ સ્ટાર્ટ દરમિયાન ભૂલો ટાળવા માટે મેં મારા HttpClient timeout ને ૫ મિનિટ સેટ કરી.
  2. Prompt engineering મુખ્ય છે: હું મોડલને ફક્ત આપેલા સંદર્ભ (context) નો ઉપયોગ કરીને જ જવાબ આપવા કહું છું. આનાથી હેલ્યુસિનેશનમાં ૮૦% ઘટાડો થાય છે.
  3. Chunking મહત્વનું છે: હું કેરેક્ટર્સને બદલે શબ્દો દ્વારા ચંકિંગ કરું છું. આનાથી સાઈઝ અનુમાનિત રહે છે અને મોડલની મર્યાદામાં રહે છે.

તમે આ આખું સ્ટેક લોકલી ચલાવી શકો છો. તે શૂન્ય ડોલરના બજેટમાં પ્રોફેશનલ-ગ્રેડ ટૂલ છે.

સંપૂર્ણ બિલ્ડ લોગ અને કોડ અહીં જુઓ:

Source: https://dev.to/avinash_zala_1c6f5e7c4af9/build-a-local-rag-chatbot-in-30-minutes-with-net-8-ollama-and-react-55go

Optional learning community: https://t.me/GyaanSetuAi