पाठ 18 / 25
n8n में RAG Pipeline
Loaders, splitters, embeddings और vector store के साथ ingestion व query workflows बनाएँ।
दो workflows
RAG (retrieval-augmented generation) आपके दस्तावेज़ों से उत्तर देता है। इसके दो flows हैं। Ingestion (दस्तावेज़ बदलने पर चलाएँ): files लोड करें, उन्हें chunks में बाँटें, chunks को embeddings में बदलें, और vector store में रखें (n8n Qdrant, Pinecone, Supabase जैसे विकल्प और परीक्षण के लिए in-memory store समर्थित करता है)। Query: agent को vector store tool के रूप में मिलता है, वह सवाल के लिए सबसे अच्छे chunks लाता है और उनसे उत्तर देता है।
दोनों flows साथ-साथ
दोनों तरफ़ वही embedding model उपयोग होना चाहिए, वरना vectors मेल नहीं खाएँगे।
INGEST Trigger -> Load file -> Split text (500-1000 chars, ~10% overlap)
-> Embeddings (model X) -> Vector store: insert
QUERY Chat trigger -> AI Agent
|- Chat model
|- Memory
\- Tool: Vector store (retrieve, Embeddings: model X)Agent से स्रोत देने और कमी मानने को कहें
System message में अपेक्षा रखें कि उत्तर स्रोत chunk का उद्धरण या नाम दें और retrieval कुछ प्रासंगिक न लाए तो "मुझे दस्तावेज़ों में यह नहीं मिला" कहें। Retrieved text डेटा है, निर्देश नहीं।
त्वरित जाँच: Ingestion और query में वही embedding model क्यों होना चाहिए?
- अलग models के vectors की तुलना नहीं हो सकती
- यह सिर्फ़ disk जगह बचाता है
- n8n दो models मना करता है
- यह सिर्फ़ नामकरण का नियम है
Answer
अलग models के vectors की तुलना नहीं हो सकती — Similarity search तभी चलती है जब दोनों तरफ़ एक ही vector space हो।