المسترجعات والضغط السياقي
حوّل مخزن المتجهات إلى مسترجع قابل للضبط، وتحكّم في عدد المستندات المُعادة، واستخدم الضغط السياقي لإزالة النص غير ذي الصلة قبل وصوله إلى LLM.
المسترجعات والضغط السياقي درس مجاني في AI Agents with LangChain & Autonomous Workflows على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents with LangChain & Autonomous Workflows، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents with LangChain & Autonomous Workflows 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
From Vector Store to Retriever
A vector store knows how to search, but agents talk to a retriever — a thin interface with one job: given a query, return relevant documents.
Any vector store exposes as_retriever() to produce one.
retriever = vectorstore.as_retriever()
docs = retriever.invoke('How do I reset my password?')Controlling k
The k parameter sets how many documents to return. Too few misses context; too many wastes tokens and adds noise.
retriever = vectorstore.as_retriever(
search_kwargs={'k': 4}
)Similarity Score Thresholds
Instead of a fixed count, you can return only documents above a relevance score. This avoids forcing irrelevant chunks when nothing good matches.
retriever = vectorstore.as_retriever(
search_type='similarity_score_threshold',
search_kwargs={'score_threshold': 0.7}
)Maximal Marginal Relevance
MMR balances relevance with diversity, avoiding near-duplicate chunks. It is great when documents repeat similar text.
retriever = vectorstore.as_retriever(
search_type='mmr',
search_kwargs={'k': 4, 'fetch_k': 20}
)Metadata Filtering
Documents carry metadata (source, date, category). You can filter retrieval to a subset, e.g. only the current product version.
retriever = vectorstore.as_retriever(
search_kwargs={'filter': {'version': 'v2'}}
)The Noise Problem
Even relevant chunks often contain unrelated sentences. Sending that noise to the LLM dilutes the answer and burns tokens.
Contextual compression shrinks each retrieved document to only the parts that matter for the query.
ContextualCompressionRetriever
This wrapper sits in front of a base retriever and post-processes its results with a compressor.
from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import LLMChainExtractor
compressor = LLMChainExtractor.from_llm(llm)
compression_retriever = ContextualCompressionRetriever(
base_compressor=compressor,
base_retriever=retriever
)How Extraction Works
LLMChainExtractor asks the LLM to pull only the sentences from each document that are relevant to the query, discarding the rest before it reaches the final prompt.
docs = compression_retriever.invoke(
'What is the refund window?'
)Cheaper Filters
LLM extraction costs tokens. EmbeddingsFilter is a faster, cheaper alternative that drops documents below a similarity threshold using embeddings only — no extra LLM call.
from langchain.retrievers.document_compressors import EmbeddingsFilter
compressor = EmbeddingsFilter(
embeddings=embeddings,
similarity_threshold=0.76
)Chaining Compressors
Combine steps in a DocumentCompressorPipeline: first a cheap embeddings filter, then LLM extraction on what survives. This keeps quality high while controlling cost.
from langchain.retrievers.document_compressors import DocumentCompressorPipeline
pipeline = DocumentCompressorPipeline(
transformers=[embeddings_filter, extractor]
)Plugging Into RAG
Because a compression retriever has the same interface as any retriever, you swap it into your RAG chain without changing the rest of the pipeline. Cleaner context usually means better, cheaper answers.
Quick Check
Test your retriever knowledge.
Recap
You learned to tune and refine retrieval:
- Convert a store with
as_retriever()and tunek - Use score thresholds, MMR, and metadata filters
- Contextual compression removes noisy text
EmbeddingsFilteris a cheap alternative to LLM extraction- Chain compressors for quality plus efficiency
Better retrieval is often the biggest lever for RAG quality.
الأسئلة الشائعة
هل درس «المسترجعات والضغط السياقي» مجاني؟
نعم — نص درس «المسترجعات والضغط السياقي» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents with LangChain & Autonomous Workflows، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents with LangChain & Autonomous Workflows 4 دروس في المجموع.
ماذا ستتعلم في «المسترجعات والضغط السياقي»؟
حوّل مخزن المتجهات إلى مسترجع قابل للضبط، وتحكّم في عدد المستندات المُعادة، واستخدم الضغط السياقي لإزالة النص غير ذي الصلة قبل وصوله إلى LLM. تتمرن على AI Agents with LangChain & Autonomous Workflows مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Agents with LangChain & Autonomous Workflows؟
لا تُشترط خبرة سابقة. AI Agents with LangChain & Autonomous Workflows على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «المسترجعات والضغط السياقي»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Agents with LangChain & Autonomous Workflows هذا؟
نعم. كل درس في AI Agents with LangChain & Autonomous Workflows يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- شرح محمّلات المستندات
- مقسّمات النصوص والتضمينات
- مخازن المتجهات للاسترجاع
- المسترجعات والضغط السياقي