Самостоятельное формирование запросов и цитирование источников
Развивайте RAG с помощью механизмов извлечения, которые превращают естественный язык в фильтры метаданных, и ответов с указанием источников, чтобы пользователи могли им доверять и проверять их.
«Самостоятельное формирование запросов и цитирование источников» — бесплатный урок LLM Apps in Production (RAG + Vector DB + Caching) на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения LLM Apps in Production (RAG + Vector DB + Caching), и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс LLM Apps in Production (RAG + Vector DB + Caching) содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
When Questions Carry Filters
Users ask things like give me 2023 reports about pricing. That sentence contains a filter (year 2023) and a semantic query (pricing).
A self-querying retriever automatically separates the two.
How Self-Querying Works
An LLM reads the question and emits a structured query: the semantic search string plus a metadata filter. The retriever then applies both to the vector store.
Describing Your Metadata
You tell the retriever what fields exist so it knows what it can filter on.
from langchain.chains.query_constructor.schema import AttributeInfo
fields = [
AttributeInfo(name='year', description='Publication year', type='integer'),
AttributeInfo(name='topic', description='Document topic', type='string')
]Building the Retriever
Combine the LLM, the store, a content description, and the field info into a self-query retriever.
from langchain.retrievers.self_query.base import SelfQueryRetriever
retriever = SelfQueryRetriever.from_llm(
llm, vectorstore,
'Company reports', fields
)Seeing It in Action
Now a natural-language question is split into a filter and a search automatically — no manual filter code.
docs = retriever.invoke(
'pricing reports from 2023'
)Why Citations Matter
In production, users must be able to verify answers. Unsourced answers are hard to trust and hide hallucinations. Citations link each claim back to its document.
Carrying Source Metadata
Citations rely on each chunk storing where it came from — file name, page, or URL — in its metadata. Set this at load time.
doc.metadata['source'] = 'policy.pdf#p3'Prompting for Citations
Number the context chunks and ask the model to cite the numbers it used. This is simple and reliable.
ctx = '\n'.join(
f'[{i}] {d.page_content}'
for i, d in enumerate(docs)
)
# 'Cite sources like [1] after each claim.'Mapping Numbers to Sources
After generation, map the cited numbers back to real source metadata so the UI can show clickable references.
sources = {i: d.metadata['source']
for i, d in enumerate(docs)}Verifying Citations
Models sometimes cite wrong or nonexistent sources. A safety check confirms each cited chunk actually supports the claim, flagging unsupported statements.
Putting It Together
Self-querying gets the right documents using filters in the question; citations make the resulting answer transparent. Together they raise both precision and trust in advanced RAG.
Quick Check
Test your advanced RAG knowledge.
Recap
You learned two advanced RAG techniques:
- Self-querying turns natural language into metadata filters plus a semantic query
- Describe your fields so the LLM knows what to filter
- Citations link claims to sources for trust
- Carry source metadata, prompt for citations, and verify them
Filtering and citing together make RAG both precise and trustworthy.
Часто задаваемые вопросы
Урок «Самостоятельное формирование запросов и цитирование источников» бесплатный?
Да — полный текст урока «Самостоятельное формирование запросов и цитирование источников» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс LLM Apps in Production (RAG + Vector DB + Caching), подпишись на CoddyKit PRO. Курс LLM Apps in Production (RAG + Vector DB + Caching) содержит 4 уроков всего.
Чему я научусь в уроке «Самостоятельное формирование запросов и цитирование источников»?
Развивайте RAG с помощью механизмов извлечения, которые превращают естественный язык в фильтры метаданных, и ответов с указанием источников, чтобы пользователи могли им доверять и проверять их. Ты практикуешь LLM Apps in Production (RAG + Vector DB + Caching) с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать LLM Apps in Production (RAG + Vector DB + Caching)?
Предыдущий опыт не требуется. LLM Apps in Production (RAG + Vector DB + Caching) на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Самостоятельное формирование запросов и цитирование источников»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке LLM Apps in Production (RAG + Vector DB + Caching)?
Да. Каждый урок LLM Apps in Production (RAG + Vector DB + Caching) включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Переписывание запросов и повторное ранжирование
- Многоэтапные и агентные шаблоны RAG
- Работа со сложными структурами документов
- Самостоятельное формирование запросов и цитирование источников