पाठ 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 हो।