Практычныя прытамулкі: Я створыў 16 систем RAG з нуля — ось што на самай працэ.
Практычныя прытамулкі: Я створыў 16 систем RAG з нуля — ось што на самай працэ: контракты, перакантрольваннія і месцы для коду для команд, якія викорыстоўваюць гэты патэрн.
У гэтым керавані знову ствараецца парадокс ад сыр'ёў да рабочай системы для: «Я створыў 16 систем RAG з нуля — гэта тое, што насправды працюе». Акцэнт ставіцца на практычныя крокі, чыстае перакананне і код, які можна проста падставіць у репазітарый без неабяснення меты. У стадії агульнага відзору неабходна практычна апісацыя вхідных дадзеных, адпаведальнага за крок і крэатарыяў завершэння працы перш чым зменіць код. Аператары должны магчымае перадзваніць крок з вядомай точкі контролю без неабяснення схованага стану. Неабходна адзіночна задокументавацыя успешнаг і варотнаг падходу. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не наступным этапам дапрацоўкі.
Тры проблемы, якія мусіў рашыць RAG
Калі працюеце над стадзіяй RAG «Тры проблемы», спачатку запісайце умовы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список дапамагае заліцьваты змяны ў кодзе. Валіце маленькія, тэставаныя елементы замест вялікіх скрыптав. Калі якісь крок не выйшае, прычына нявыпання павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Перад налаштаваннем запитоў пераканайцеся ў рэкале на фіксаваным наборы пытанняў. Частае змена запитоў рэдка калі-небудзь выправляе слабую эфектыўнасць адзысквання інформаціі.
Without RAG:
User: "What's our refund policy?"
LLM: "I believe you offer a 14-day return..." (guessing)
With RAG:
User: "What's our refund policy?"
→ Step 1: Search internal docs → Finds: "Refunds within 30 days..."
→ Step 2: LLM reads the doc and answers accurately
LLM: "Your refund policy allows returns within 30 days..."
16 шаблонаў RAG (упорачаныя па рэальным уплыву)
Калі працюеце над стадзіяй «16 шаблонаў RAG», спачатку запішыце кантракт: неабходныя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контролю дапамагае залічыць пазнейшыя змены коду. Спрэчвайце гэтую стадзію як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даць назвы артыфактам, задаць критэрыя успеху і не падзеўляйцеся частковым завершэнням без паведамлення. Змяроўваце рэкалі на фіксаванай сэтке запытаў прычым регулювання прамптав. Частае змена прамптав рэдка калі вярнуе слабую эфектыўнасць адзысквання інформаціі.
ТАРГ 1: ПАВІНЕН ЗНАЦЬ
Калі працюеце над стадзіяй TIER 1 MUST KNOW, спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список пераканальвае правдзівасць пазнейшых змян у коде. Запісвайце часы выканання і кост токена або запиту праз функцыональныя рэзультаты. Відразлівасць коста з самага пачатку запобегае неспакоўным рахункам, калі працэс пераходзіць з дэмаверыяна ў спакульнаныя сераўысы. Замерьце рэткі адзыв на фіксаваныя наборы запытанняў прычым рэгулюванні прапазаў. Частыя змены прапазаў рэдка калі-небудзь выправляюць слабыя аспекты адзыву.
Існавае ў практыцы практычна ў кожным праўзводнім системе RAG
Калі працюеце з тым, што выкарыстоўваецца практычна на кожным этапе, спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выходзіць на частым неудачам. Такі список пераконтроўваець дапамагае залічыцца з пазнейшымі змянамі ў кодзе. Зберагаюце настройкі праза код аплікацыі. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць пераконтроль без неабходнасці чытання всей структуры. Перад налаштаваннем запитоў пераканайцеся ў роботы системы на фіксованым наборе запитаў. Частая зміна запитоў рэдка калі вярнуе слабую эфектывнась запошуку.
1. Стандартны RAG — Аднаковая база
Калі працюеце над стадзіяй 1 Standard RAG, спачатку запісайце умовы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Документавайце як шлях успеху, так і шлях вярнення да стану нормы. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў ёсць часткаю продукту, а не пазнейшым дапрацоўкам. Змяржывайце рэкалі на фіксаваным наборы запытанняў прычым падбіру прамптаў. Частае змена прамптаў рэдка калі вярнуе слабую якасць адзысквання інформаціі.
# The core loop in ~10 lines
query_embedding = embed(user_query)
relevant_docs = vector_store.search(query_embedding, top_k=5)
context = "\n".join(relevant_docs)
prompt = f"Answer using this context:\n{context}\n\nQuestion: {user_query}"
answer = llm.generate(prompt)
2. Гібрыдны RAG — Найбольшы прырост якасці
Калі працуеце над стадзіяй 2 Hybrid RAG, спачатку запісайце умовы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список контроля дапамагае заліцварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок неяксамоства, гэта неяксамоство павінна вказваць на адну адпаведную адпаведальнасць, а не на заплутаны ланцюг задач. Замерайце рэкалі на фіксаваным наборе запитаў прычымо да налаштавання прамптаў. Частыя змены прамптаў рэдка калі вядуць да павышэння якасці выкарыстоўвання інформацыі.
User: "React useState hook"
→ Semantic search finds: "state management in React components"
→ BM25 finds: docs with exact string "useState"
→ Hybrid (RRF fusion): gets the best of both
3. Контэкстуальнае выкарыстоўвання інформацыі RAG — Для рэальных размов
Калі працюеце над 3-й стадзіяю Contextual Retrieval RAG, спачатку запісайце контракт: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список перакладзець пазнейшыя змены коду ў правільным напрамку. Спрэцьвуйце да гэтай стадзіяй як да контракту межа даннэмі і перакананымі выходамі. Дайце назву рэзультатам, задацьте критэрыя успеху і не прымайце часткова завершэнне без паведамлення. Змяркуйце рэкал на фіксаванай сэтке запытаў прычым падбір прамптав. Частая змена прамптав рэдка калі вядомае слабыя аспекты процесу выкарыстоўвання даннэй.
User turn 1: "Tell me about the Premium plan"
User turn 2: "How much does it cost?"
Before search, rewrite → "How much does the Premium plan cost?"
Now retrieve → finds the pricing document ✓
TIER 2: COMPETITIVE EDGE
Калі працуеце над стадзіяй TIER 2 COMPETITIVE EDGE, спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список пераканальвае правдзівасць пазнейшых змян у коде. Запісвайце часы выканання і кост токенаў або запытаў праза функцыйнае рэзультат. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмавай версіі ў спяльныя среды. Замерьце рэкалі на фіксаванай сэтке запытаў прычым регулюванні прамптав. Частае змена прамптав рэдка калі-небудзь выправляе слабую систему аднаходжэння інформацыі.
Што адзеляе хорашыя системы ад выдающыхся
Калі працюеце над этапам «Што розлічвае хорашыя системы», спачатку запісайце умовы працы: неабяжлівыя даны, сигнал успеху і тое, што выходзіць на частым неудачам. Такі список дапамагае заліцваліваць будучыя змены коду. Храніце настройкі парадульна ад коду прыемліка. Файлы сераўіса, хранальнікі секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжлівага чытання всей структуры. Перад налаштаваннем запитоў пераканайцеся ў рэверыі на фіксаваным наборе запитаў. Частая змена запитоў рэдка калі вярнвае слабую эфектыўнасць пошуку.
4. Agentic RAG — Найгарячэйшы трэнд у 2025–2026 гадах
Калі працуеце над 4 стадзямі Agentic RAG, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Документавайце як шлях успеху, так і шлях вярнення. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не пазнейшым дапрацоўкам. Змяроўвайце рэкалі на фіксаваным наборе запытанняў прычымо да налаштавання прамптаў. Частае змены прамптаў рэдка калі вярнуюць слабую якасць адзысквання інформаціі.
User: "What was NVDA's stock return last quarter vs its historical average?"
Agentic RAG decides:
→ Use web_search tool for current stock data
→ Use calculator tool for return calculation
→ Use document_retrieval tool for historical reports
→ Synthesize all three into one answer
5. Self-RAG — Калі крытычна важліва правільнасць
Калі працюеце над 5-м этапам Self-RAG For When, спачатку запісайце умовы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае залічыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, невыпання должна паказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Перад налаштаваннем запитоў пераканайцеся ў рэкале на фіксаваным наборы пытанняў. Частае змена запитоў рэдка калі вярнайце слабкую эфектыўнасць выкарыстоўвання інформацыі.
6. HyDE RAG — Мост мовнага фонду
Калі працюеце над 6 стадзямі HyDE RAG, спачатку запісайце контракт: неабяжлівыя вхідныя даны, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список пераконвае ў тым, што пазнейшыя змены коду будуць чыстымі. Спрэчвайце гэтую стадзію як контракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыя успеху і не падзеўляйцеся частковым завершэнням без паведамлення. Змяркуйце рэкалі на фіксаванай сэтке запытаў прычым падлашоўвання прапаза. Частыя змены прапаза рэдка калі вядуць да павышэння якасці адзысквання інформацыі.
User: "Why do things fall down?"
→ LLM generates hypothesis: "Objects fall due to gravitational force..."
→ Search with the hypothesis (technical vocabulary)
→ Find the actual document about gravitational acceleration
→ Answer using the real document
TIER 3: HIGH-IMPACT SPECIALISTS
Калі працюеце над стадзіяй TIER 3 HIGH-IMPACT SPECIALISTS, спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага неяксамоства. Такі список пераканальвае правдзівасць пазнейшых змян у коде. Запісвайце часы выканання і кост токена або запиту праз функцыональныя рэзультаты. Відразлівасць коста з самага пачатку запобегае неспакоўным рахункам, калі працэс пераходзіць з дэмаверыянту ў спакоўныя сераўысы. Замерьце рэткі адзыв на фіксаваны набор запытаў прычым рэгулюванні прамптав. Частае змяненне прамптав рэдка калі-небудзь выправляе слабыя аспекты адзыву.
Шырока выкарыстоўваныя у сваіх сферах
Калі працуеце з таму, якое шырока практыкуецца на ўсіх стадіях, спачатку запішыце кантракт: неабяжныя даны, сігнал успеху і тое, што выходзіць на частым неудачам. Такі список пераканаець у тым, што пазнейшыя змены коду будуць чыстымі. Зберагаеце настройкі праз аплікацыйны код. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжнага чытання всіх дадзеных. Пераканайце рэкал на фіксованым наборе запытанняў прычым регулюванні прамптов. Частае змена прамптов рэдка калі выправляе слабую систему аднаходжання дадзеных.
7. Graph RAG — Для реляцыйнага разумавання
Калі працуеце над 7-м этапам Graph RAG For, спачатку запісайце умовы працы: неабяжлівыя данні, сигнал успеху і тое, што выканаецца у разе частковага невыпання. Такі список контроля дапамагае заліцварыць пазнейшыя змены ў кодзе. Документавайце як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкія перакрыцця та обробка некоректных паведамленняў є частью продукту, а не пазнейшым дапрацоўкам. Зберагайце у кэшы стабільныя інструкцыі системы та схемы інструментаў. Перасылка ідэнтычных паведамленняў є частым выкліком для ресурсаў.
Text: "Dr. Chen collaborated with Dr. Patel on a 2022 study funded by NIH."
Graph nodes: Dr. Chen, Dr. Patel, 2022 study, NIH
Graph edges: COLLABORATED_WITH, FUNDED_BYQuery: "Who funded Dr. Chen's work?" → traverse: Chen → study → NIH
8. Memory-Augmented RAG — ваш бот памятае вас
Калі працюеце над 8-м этапам RAG з падасцем памяці, спачатку запісайце умовы: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшоў, нявыпанне должна паказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач. Перад налаштаваннем запитоў пераканайцеся ў рэгрэсіі на фіксаванай сэтке запытаў. Частае змены запытаў рэдка калі вярнуюць слабую эфектыўнасць выкарыстоўвання інформацыі.
user_profile = memory.get_user_facts(user_id)
recent_context = memory.get_recent_conversations(user_id, k=3)
answer = rag_with_context(query, user_profile, recent_context)
memory.update(user_id, query, answer)
9. Модульны RAG — можна заменіць будзь-яю частку без перапісвання
Калі працюеце над 9-м этапам Modular RAG Swap, спачатку запісайце контракт: неабяжлівыя даннэ, сигнал успеху і тое, што выходзіць у разе частковага невыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Спрэцьвачайце гэты этап як контракт межа даннемі і перакананымі выходамі. Дайце назву артыфактам, задаце критэрыя успеху і не падзеўляйцеся частковым завершэнням без паведамлення. Змяроўваце рэкалі на фіксаванай сэтке запытаў прычым регулювання прамптав. Частае змена прамптав рэдка калі вярнуе слабую систему адзысквання інформаціі.
Standard RAG: [fixed retriever] → [fixed reranker] → [fixed LLM]
Modular RAG: [pluggable retriever] → [pluggable reranker] → [pluggable LLM]
↑ swap anytime ↑ swap anytime ↑ swap anytime
10. RAG спецыяльна для паводзкаў — створана для вашай галузі
Калі працуеце над 10-ю стадзіяй «RAG Built» спецыяльна для адміністрацый, спачатку запісайце угоду: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьваты пазнейшыя змены ў кодзе. Запісвайце час выканання і кост токеноў або запытаў разам з функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя среды. Замерьце рэкалі на фіксаванай сэтке запытаў прычымо да налаштавання прамптов. Частыя змены прамптов рэдка калі вядуць да павышэння якасці адзысквання інформацыі. Калі працуеце над 10-ю стадзіяй «RAG Built» спецыяльна для адміністрацый, спачатку запісайце угоду: неабяжлівыя данні, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьваты пазнейшыя змены ў кодзе. Аддокументавайце як «шчаслівы» так і «вярнучыся» шляхі працы. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных запытаў ёсць частью продукту, а не пазнейшым дапрацоўкам.
11. Расшырэнны RAG — Тры істочнікі, адна адказ
Метод 11 расшырэнага RAG у трох этапах працюе найкраща, калі яго розглядаць як меравальную плошчу. Зберыце адны ідеальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштаб. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Раздзеліце правілы фрагментавання і правілы выкарыстоўвання інфармацыі. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцца паказателі якосці.
Query: "Tell me about the Mars Exploration Program"
→ SQL: "Mars: 1.52 AU from sun, 687-day orbit"
→ Graph: Mars → explored_by → Curiosity Rover, Perseverance
→ Text: "Mars is the fourth planet... known as the Red Planet..."→ Fused Answer: Combines all three for comprehensive, expert-level response
12. Рекурсыўны/багатоэтапны RAG — Для складных запытаў
12-я стадія рекуррэнтных багатыхэтапных процэсаў RAG працуе наякрацей, калі яе спрыяваць як меравальную плошчу. Зафіксавайце адны ідеальны прымер, адзін кейс неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Спрыявайце гэтай стадіі як кантракту межа вхіднымі даннымі і падтвердзенымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаць критэрыя успеху і адмовіцеся ад тыхняй частковай роботы без паведамлення. Раздзеліце правілы часткавага разбівання данных ад правіл ўзяць іх збору. Змена аднаго з іх не должна вымагаць перапісвання другога, калі зменяюцца паказнікі якосці.
Round 1: Retrieve about transistors → learn about miniaturization
Round 2: Retrieve about integrated circuits → learn about computing power
Round 3: Retrieve about GPUs → learn about parallel processing
Round 4: Retrieve about deep learning → learn about compute requirements
Round 5: Synthesize the full chain into a coherent answer
ТАРГ 4: СПЕЦІЯЛІЗаваныя варыянты выкарыстоўвання
Этап «Спецыяльны выкарыстоўванне, ТІЕР 4» работае наякша, калі яго спрыяваць як вимерную паверхню. Зафіксавайце адна ідеальная транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Запісвайце часы выконання і кост токенаў або запытаў па боку ад функцыйнаых рэзультатаў. Візуабельнасць костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя среды. Раздзеляйце правілы часткавага обробкі дадзеных і правілы ўтрымання іх. Змена аднаго з яных не должна прымусіваць перапісванне другога, калі змянююцыся паказнікі якосці.
Неабходнае, калі яго трэба
Канцэнтрыя, калі вам патрэбны роботы на сцэне, найлепа працюе, калі яе спрыявае можна змеры. Запісаць адны ідеальны прыклад, адзін прыклад неудачы і прыметку па адвярненню перш чым расширваць масштабы. Храніце настройкі параду з кодам програмы. Файлы серавэра, базы секретных даных і флагі функций павінны знаходзіцца ў адном месцы, куда аператары можаць аудітаваць іх, не чытаючы весь структураны дадзеныя. Раздзеляйце правілы часткавання дадзэных і правілы ўтрымання іх. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцыся показателі якосці.
13. ODQA RAG — Адпаведзіце на ўсё
13-й этап адаптавання RAG у рамках ODQA працюе наяўней, калі яго розглядаць як вимерную плошчу. Зафіксавайце адна ідеальная транскрыпцыя, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Документавайце як шлях успеху, так і шлях вярнэння да нормальнага стану разам. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не етапамі далейшай наладкі. Раздзеліце правілы частковай обработкі дадзеных ад правіл ўтрымання інформацыі. Змена адных не павинна вымагаць перапісвання іншых, калі змянююцца показнікі якосці.
14. Багатамодальны RAG — текст, зображэнняі і аудыя разам
Этап 14 «Мультымодальныя RAG-тэксты» працюе наўзям лепш, калі яго розглядаць як вимерную паверхню. Зафіксавайце адна ідеальная транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выходзіць, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Раздзеліце правілы фрагментавання і правілы адзыскві. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцца паказнікі якосці.
User (text): "Show me the anatomy of the heart"
→ Retrieves both: text descriptions AND anatomical diagrams
→ Response includes both text explanation and relevant image
15. Стрімінгавы RAG — знанні ў рэальны час
Этап 15 «Streaming RAG Real-Time» працюе найкраща, калі яго розглядаць як вимерную плошчу. Зафіксавце адзін ідеальны прымер, адзін прыклад неудачы і запіс працэў па адвярненню змян пры расшырэнні масштаба. Разглядзайце гэты этап як кантракт межа вхіднымі даннымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падзеўляйцеся частым, непূরным выкананнем задачы. Раздзеліце правілы часткавага абрабатвання данных і правілы ўзяць дакументацыю. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцца паказнікі якосці.
Time 9:00 AM: "What's happening with NVDA?"
→ Retrieves this morning's earnings report
Time 11:30 AM (after news breaks): "What's happening with NVDA?"
→ Retrieves the breaking news from 11:15 AM
16. Federated RAG — прыватнасць на першым месцы, калькі джэрел
16-я стадія Federated RAG Privacy-First працюе наўсёрэдзей, калі яе спрыяваць як меравальную плошчу. Зберагачыце адну ідеальную транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Запісвайце часы выканання і вартасць токеноў або запытак праза функцыйнае рэзультат. Відкрытая візуабілізацыя вартасцей запобегае неспакоўным рахункам, калі процес пераходзіць з дэмовай версіі у спяльныя сераўысы. Раздзеляйце політыку часткавання дадзеных і політыку ўзяць дадзеныя. Змена адной з іх не павінна вымагаць перапісвы другой, калі зменяюцца паказнікі якосці. 16-я стадія Federated RAG Privacy-First працюе наўсёрэдзей, калі яе спрыяваць як меравальную плошчу. Зберагачыце адну ідеальную транскрыпцію, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Дакументавайце як успішны, так і вярнэчы паты. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных запытак є частью продукту, а не елементамі пазнейшай доработкі.
Central Query: "What's the survival rate for treatment X?"
→ Hospital A retriever: returns relevant anonymized snippets
→ Hospital B retriever: returns relevant anonymized snippets
→ Hospital C retriever: returns relevant anonymized snippets
→ Central LLM synthesizes — never saw raw patient recordsResult: HIPAA/GDPR compliant, collaborative AI
Практычны план дзеяння: што ствараць месца па месца
Для практычнага плану дзеяння на кожны ўраг неабходна падазначыць вхідныя даны, адпаведальнага за выкананне крока і критэрыя завершэння пры зміне коду. Аперацыйныя працавнікі должны магчыма ўвайсці крок з вядомай точкі контролю без неабясненняя схованага стану. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выканаецца, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Наводзіце тыя часткі, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аперацыйныя працавнікі не зможуць адразліць галюцинацыю ад працяваннага проблем з індэксаванням.
Month 1: Standard RAG ← Get something working
Month 2: + Hybrid RAG ← Biggest retrieval quality win
Month 3: + Contextual Retrieval ← Multi-turn conversations work now
Month 4: + Self-RAG ← Stop hallucinations
Month 5: + Agentic capabilities ← Tools beyond just search
This covers 80-90% of production RAG needs.
Спалучэнне типаў RAG: практычныя прыклады
Для стадії «Рэальны ўзеўсць типаў Combining RAG» неабходна перад змянай коду адзначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымае перайсці на гэты крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Спрыяйце гэтай стадіі як даговору межаў вхідных даных і перакананых выходных рэзультатаў. Даць назвы артыфактам, апісацыю пераканальных крэтарыяў і не прымаць тыхню частковую роботу. Указваць тыя фрагменты, якія насправдзе ляглі ва основу адпаведнай адказы. Без ціх цитатаў аператары не зможаць розразліць галюцинацыю ад прасоў у індэксаванні.
Короткая інструкцыя: Выберыце свой RAG
Для шырокага адказу: перад змянайом код выберыце свой этап, задаце вхідныя даны, адпаведнага адпаведальніка за крок і критэрыя завершэння. Аперацыёныя працавнікі должны магчымець перайсці на выкананне крока з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выканання і кост токенаў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівае паказанне костаў запобегае неспадзяваным рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя среды. Указвайце тыя часткі тексту, якія фактычна лежалі в основе адказу. Без цых цитатаў аперацыёныя працавнікі не можуць адразліць галюцинацыю ад прасоў у індэксаванні. Для шырокага адказу: перад змянайом код выберыце свой этап, задаце вхідныя даны, адпаведнага адпаведальніка за крок і критэрыя завершэння. Аперацыёныя працавнікі должны магчымець перайсці на выкананне крока з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Аддзейнавайце дакументацыю пра успішны і варыянт вяснавання ситуацыі. Перапрыбуткі, людзкія контрольныя пункты і обработка неканальных паведамленняў ёсць часткай продукту, а не чымось, што дадаецца пазней.
.Пачатак працы за 5 хвілін
Калі працюеце над етапам «Пачатак працы за 5 хвілін», спачатку запішыце умовы контракту: неабяжлівыя даны, сигнал успеху і тое, што выходзіць па частый невыплэн. Такі список контроля дапамагае залишыцца чыстым пад час пазнейшых змян у кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшоў, невыплэн должен вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Перад налаштаваннем запитоў пераканайцеся, як працуе система з фіксаваным наборам запитанняў. Частае змена запитоў рэдка калі вярнайце слабкую эфектыўнасць адзысквання інформаціі.
# Clone the repo
git clone https://github.com/Manjunadh86/RAG-Materials.git
cd RAG-Materials
# Install dependencies
pip install -r requirements.txt# Set your OpenAI API key
export OPENAI_API_KEY="sk-your-key-here"# Run your first RAG system
cd 01-Standard-RAG
python hands_on.py
Што далей
Калі працюеце над стадзіяй «Што далей», спачатку запісайце контракт: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список пераконтроўкаў дапамагае заліцьварыць пазнейшыя змены ў кодзе. Спрыймайце гэтую стадзію як контракт межа данымі і перакананымі выходамі. Дайце назву артыфактам, задаце правілы пераканання успеху і адмовіцеся ад тыхоўага частковага завершэння. Замерайце рівень запамятовання на фіксаваным наборе пытанняў прычым перэналаштаваць запрошэння. Частыя змены запрошэння рэдка калі вядуць да павышэння якасці адзысквання інформацыі.
Чэк-ліст для эксплуатацыі
Стадзія чэк-ліста для эксплуатацыі працюе лепш, калі яе спрыймаюць як мерыябельную плошчу. Запісайце адна ідеальная транскрыпцыя, адзін прыклад нявыпання і прыметку па адкату перш чым расширваць масштаб. Зберагайце настройкі парадульна ад коду прыемліка. Файлы сяродавішча, хранільнікі секрэтных дадзенняў і флагі функций должны знаходзіцца ў аднам месцы, якое аператары можаць пераканаць без неабяжлівага чытання всей структуры.
Раздзеліце політыку часткавання дадзейнаў ад політыки ўзяць іх. Змена адной з яных не павінна прымусваць перапісванне другой, калі зменяюцыся паказнікі якосці.
Дадзейснюйце тэсты на працясці критическага шляху ў системе CI з викорыстаннем фіксатываў, а не рэальных платных API, калі тое дазволяе бюджет.
Документавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, пераказы людзям і обробка некоректных паведамленняў є часткай продукту, а не елементамі пазнейшага доўнелення.
Раздзеліце політыку часткавання дадзейнаў ад політыки ўзяць іх. Змена адной з яых не павінна прымусваць перапісванне другой, калі зменяюцыся паказнікі якосці.
Перш чым пераводзіць стак на новы рэвізію, заморозьце існуючыя версіі, зафіксавайце ідеальны транскрыпт для критическага шляху і паказвайце способы вярнення да пачатковага стану. У спільных средах неабходны ліміты частоты запытоў, пераказы на адпаведнае власніцтва і чыстая структура керування секрэтнымі дадзеннямі. Валіце простую надзяйнасць, а не крэатыўныя разовыя дамастанкі.
Запіска параграфу ba5dd76016c2: не класты ключы прадаўцоў у репазітарыю, задаць максымальны ліміт токена на кожную сесію, а таксама зберагчы транскрыпціі празаўседы ўстановкамі для ацэнкі, каб празьмены моделей застаўаліся порównаннэй.