Enterprise Advanced RAG · Старошчына 5 з 5
Практычныя нарады па Enterprise Advanced RAG · Старонка 5 з 5: контракты, пераконтрольваннія і слоты для коду для команд, якіе викорыстоўваюць гэты патэрн.
У гэтым керавану практычным крокам перакладзена вся дорага ад сыр'ёў да рабочай системы для: . Акцэнт ставіцца на крокі, якія можна выконваць, чыстае перакананне ў правільнасці дзействаў, а таксама на код, які можна проста дадаць у репазітарый без падозроў пра мету яго викорыстоўвання. У стадіі агляду неабходна з'явіць вхідныя даны, адпаведальнага за крок і критэрыя завершэння пры перадзмене коду. Аперацыйныя працавнікі должны магчымае перадзначыць крок з вядомай точкі контролю, не падозрываючы пра схованы стан системы. Неабходна аддзекаваць як шлях успеху, так і шлях вяснавання проблем. Перапрыбуткі, людзкія перакананні і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
За межамі Top-K: адзысканне семей доказаў для цэлых адказаў RAG
Калі працюеце над стадзіяй «Beyond Top-K Evidence-Family Retrieval», спачатку запісайце умовы: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, нявыпанне должна паказваць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Перад налаштаваннем запитоў пераканайцеся ў рэкалі на фіксаваным наборе запитанняў. Частае змена запитоў рэдка калі-небудзь вылечвае слабую эфектыўнасць адзысквання інформаціі.
Рэлевантнасць Top-K — гэта не цэласць доказаў
Калі працюеце над стадзіяй «Top-K Relevance Is Not», спачатку запісайце контракт: неабяжлівыя вхідныя даны, сігнал успеху і тое, што выходзіць у разе частковага нэуспеху. Такі список контроля дапамагае заліцьварыць чыстасць пазнейшых змян у кодзе. Спрытывайце гэту стадзію як контракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падзволяйце частковаму завершэнню без паведамлення. Напісайце кароткі посібнік: як роцыяваць клучы, як спрачысніць очакваныя даны, як анулюваць пасляпэўныя дзеянні.
Useful context = relevance + required-family coverage + trusted provenance - noise
Што такое семья доказаў?
Калі працюеце над стадзіяй «Што такое доказ», спачатку запісайце умовы кантракта: неабяжлівыя даны, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены коду. Запісвайце час выканання і кост токена або запыту празаўседле з рэзультатамі функцыянальнай працы. Візуабельнае паказанне костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спакульнаныя сераверы. Напісце кароткі посібнік: як роцыяваць клучы, як апустошыць чергу, як вярнуць стан да пазнейшага імпорту. Калі працюеце над стадзіяй «Што такое доказ», спачатку запісайце умовы кантракта: неабяжлівыя даны, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены коду. Дасведчыце адночасна шлях успеху і шлях вярнення. Перапрыбуткі, людзкія контралі і обработка нераспакаваных паведамленняў є часткай продукту, а не пазнейшым дапрацоўкам.
Планаванне доказаў выконваецца раней, чым вядомы фінальны выбор
Планаванне доказаў прыцягнутыя раней заэтапных работ лепша працюе, калі яго спрыявае можласць вимеры. Зберагучы адна ідеальная версія транскрыпцыі, адзін прыклад неудачы і запіс парадоксу, перш чым расширваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцюг задач. Фіксуйце версіі залежнасцяў і запішыце хеш-значэнне зображэння, якое выканало дамаванне. Возможнасць парадукту ўскладніць кращая, чым традыцыйныя знаёмства.
def evidence_plan(question: str):
# Returns list of (family_pattern, rescue_query) tuples
# for recognized composite question shapes
if asks_about_workload_identity(question):
return [
(SECRET_SOURCE_PATTERN, "Kubernetes Secret credentials Pod"),
(SERVICE_ACCOUNT_PATTERN, "Pod ServiceAccount workload identity"),
(RBAC_SOURCE_PATTERN, "RBAC least privilege RoleBinding"),
]
return [] # unknown shapes continue through normal retrieval
Як адзначаецца членства ў сям’і
Этап «Як функціонуе членства ў сям’і» працюе найэфектывней, калі яго розглядаць як вимерную плошчу. Зафіксавайце адны ідеальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Разглядзайце гэты этап як кантракт межа вхіднымі даннымі і паверыранымі выходнымі рэзультатамі. Дайце назвы всім элементам, задаце критэрыя успеху і не падзельвайцеся на частковыя рашэння без адзінаго слова. Закрепіце версіі залежнасцяў і зафіксавайце хэш адпрацоўванага зображэння для дэманстрацыі. Возможнасць павтарэння перадуе традыцыйным знаёмствам.
pattern.search(str(chunk.source))
{
"source": "security-policy.pdf",
"document_id": "doc-123",
"chunk_index": 17,
"evidence_family": "access-control",
"authority_tier": "official",
"version": "2026-07"
}
Відсутныя сям’і спрыяюць цэлевама атакам на ўзгароджанне
Этап «Missing Families Trigger Targeted» працюе найкраща, калі яго розглядаць як вимерную плошчу. Зафіксавце адны «золаты» транскрыпт, адны прыклад неудачы і прыметку паўрануці раней, чым расшырваць масштабы. Запісвайце часы выконання і косты токеноў або запытача разам з функцыйнальнымі рэзультатамі. Відразлівае прадставленне костаў запобегае неспакойным рахункам, калі процес пераходзіць з дэмаверсіі ў спяльныя среды. Зафіксавце версіі залежнасцяў і дзейственны адбітак стварання дэмаверсіі. Возможнасць паўтарэння перадвайце над традыцыйнымі методамі рашэння. Этап «Missing Families Trigger Targeted» працюе найкраща, калі яго розглядаць як вимерную плошчу. Зафіксавце адны «золаты» транскрыпт, адны прыклад неудачы і прыметку паўрануці раней, чым расшырваць масштабы. Дакументавайце як успешны, так і варіант вяснавання проблемы. Практыкі паўтарных спробы, людзкі контроль і обработка некоректных паведамленняў є частью продукту, а не етапамі далейшай доўнелівання.
for family_pattern, rescue_query in plan:
matches = [c for c in candidates if family_pattern.search(c.source)]
if len(matches) < desired_candidate_count:
# Targeted rescue — bounded, not an open retry loop
rescued = sparse_search(rescue_query, top_k=wide_limit)
candidates.extend(
c for c in rescued if family_pattern.search(c.source)
)
Reranking Выбірае Найкращы Варіант, А не Семью
Для процэсу перыякоравання выбіраецца найкращы этап; пры змяне коду неабходна практычная визначэння параметраў, адпаведальнага за этап і крэтарыяў завершэння. Аперацыйныя працавнікі должны магчымае перзапускаць этап з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі этап не выканаецца, прычына неудачы должна вказываць на адну конкрэтную адпаведальнасць, а не на заплутаны ланцужок задач. Калі бюджет дазволяе, трэба дадаць тэст на першыя працэсы, які перабірае критычны шлях у системе CI, выкарыстоўваючы фіксаты, а не рэальныя платныя API.
0.4 × normalized cross-encoder score
+ 0.3 × normalized retrieval score
+ 0.3 × lexical overlap
+ conditional exact-token bonus
selected = []
# Step 1: reserve best chunk per required family
for family in required_families:
best_match = first_ranked_match(family, ranked_chunks)
if best_match:
selected.append(best_match)
# Step 2: fill remaining slots by global rank
selected.extend(c for c in ranked_chunks if c not in selected)
final_chunks = selected[:top_k] # constrained top-k, not an alternative to ranking
Чаму часамі фрагменты з аднаго джэрела трэба, каб выжылі разам
Для стадії «Чамкі з таго ж джэра» неабяцкова ўзначыць вхідныя даны, адпаведальнага за крок і крэтырыя завершэння пры зміне коду. Аперацыйныя працавнікі павінны магчымае перазапускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Спрыяць гэтай стадіі як даговору межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даць назвы артыфактам, узначыць перакананні успеху і адмовіцца ад тыхоўскага частковага завершэння. Дадаць тэст на працэс, які пераблакуе критычны шлях у CI з фіксатрамі, а не з рэальнымі платнымі API, калі толькі дазволяе бюджэт.
Автарытет і релевантнасць — гэта разныя сігналы
У стадії «Автанті та Рэлевантнасць» неабяжна практычна ваказваць параметры, адміністратара крока і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі должны магчыма ўвайсці крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выконання і кост токена або запыту разам з функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмовай среды ў спакульнаныя сераверы. Калі дозволяе бюджет, дадзіце тэст на перакананне, які працюе з критычным маршрутом у системе CI за дапамою фіксатываў, а не з рэальнымі платнымі API. У стадії «Автанті та Рэлевантнасць» неабяжна практычная ваказваць параметры, адміністратара крока і крэтыяры завершэння пры зміне коду. Аперацыйныя працавнікі должны магчыма ўвайсці крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Дакументавайце як «шчаслівы» маршрут, так і маршрут вярнення. Перапрыбуткі, людзкія контрольныя пункты і обработка некоректных запытаў є часткай продукту, а не пасляднім дапрацоўкам.
Relevance: Does this passage discuss the question?
Authority: Is this an approved source of truth?
Coverage: Which required evidence obligation does it satisfy?
CRAG Should Correct Retrieval Without Breaking Coverage
Калі працуеце над этапам CRAG Should Correct Retrieval, спачатку запісайце умовы працы: неабяжлівыя данні, сигнал успеху і тое, што выканаецца у разе частковага невыпалення. Такі список пераканаецца дапамагчы правдзівым зменам у коде пазнейша. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына невыпалення павінна вказваць на адзін конкрэтны аспект, а не на заплутаны ланцюг задач. Перад налаштаваннем запитоў пераканайце рэкалі на фіксаваным наборы пытанняў. Частае змена запитоў рэдка калі-небудзь вылечвае слабую эфектыўнасць адзысквання інформаціі.
Retrieve broadly
→ shape and rerank candidates
→ reserve family coverage
→ grade evidence (CRAG)
→ restore validated required families
→ build context
A General Architecture for Other RAG Projects
Калі працюеце над «Абстрактной архітектурой для певнага этапу», спачатку запісайце умовы дагавору: неабяжлівыя даннэ, сигнал працягання і тое, што выходзіць у случае частковага нявыпання. Такі список контролю дапамагае заліцьварыць пазнейшыя змены ў кодзе. Спрэцьвачайце гэты этап як дагавор межа даннемі і перакананымі выходамі. Дайце назву рэзультатам, задаце критэрыя працягання і не падтрымайце частковыя завершэння без адзначэння. Замерайце ступень вярнага аднаходжэння на фіксаванай сэтцы запитаў прычым перад налашоўкай підказак. Частая змена підказак рэдка калі вярнайце слабкую базу аднаходжэння.
Полны канвей семьі доказаў
Калі працюеце над стадзіяй «The Full Evidence-Family Pipeline», спачатку запісайце умовы дагавору: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыцца пад пазнейшыя змены коду. Запісвайце час выканання і кост токенаў або запытаў праза функцыйнае рэзультат. Відкрытыя даны пра косцы з’являюцца раніце, таму не будзе неспакоўных счытанняў, калі працэс перайдзе з дамэны-дэманстрацыі ў спяльнаваныя среды. Напісайце кароткі посібнік: як зменяць клучы, як апустошыць чергу, як вярнуць стан да пасляпэўнага запісу.
Шаблон пераносится між дамэнамі
Калі працуеце над стадзіяй «Пераказ патэрана», спачатку запісайце умовы працы: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць на частым неяксамошчыце. Такі список контроля дапамагае залічваць змяны ў кодзе чыста і адкрыта. Зберагайце настройкі пазырочна ад коду прыемліка. Файлы сераўнавання, хранілішчы секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжлівага чытання всей структуры. Напісайце кароткі посібнік: як змяніць клучы, як спрачыслаць чергу, як анулюваць пасляпэўныя дзеянні.
Ацэнка павинна вярнаваць інформацыю пра пакрыцча сям’і
Калі працюеце над стадзіяй «Адзынакоўванне павінна меркаваць ся ўзаемадзеяннем у сям’і», спачатку запісайце контракт: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список пераканаецца дапамагае залічываць змяны ў кодзе па правдзе. Документавайце як шлях успеху, так і шлях вяснавання проблемы. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў є частью продукту, а не наступнымэй дапрацоўкамі. Перад налаштаваннем запитаў пераканайце рэкалі на фіксаваным наборы запитанняў. Частае змена запитоў рэдка калі вярнуе слабую способнасць да адзынакоўвання.
Evidence-family recall = covered required families / total required families
# Example: Secret + RBAC covered, ServiceAccount missing
Evidence-family recall = 2/3 = 0.67
# This failure is invisible to standard chunk-relevance metrics
Варыянты нявыполнення, якія можна чакаць
Калі працюеце над стадзіяй «Моды неудач, якія можна спакаваць», спачатку запісайце умовы контракту: неабяжлівыя даны, сігнал успеху і тое, што выходзіць пад частковую неудачу. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача должна вказваць на адну адпаведную адпаведальнасць, а не на заплутаны ланцюг задач. Напісайце кароткі посібнік: як зменяць канты, як спрачысці кола запытоў, як анулюваць пасляпэльны запіс дадзеных.
Што вам трэба паспрабаваць падготавіць далей
Калі працюеце над этапам «Што можна паспрацаваць», спачатку запісайце контракт: неабяжлівыя данні, сигнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць пазнейшыя змены ў кодзе. Спрэцьвачваюце гэты этап як контракт межа даннімі і перакананымі выходамі. Дайце назвы элементам, задаце критэрыя успеху і не падтрымайце тыхі частковыя завершэння. Спрэцьвачваюце наследкі як сінхронізацыю з зовнішнім светам, а не як замену значэнням, якія вырахоўваюцца пад час атрыбутавання.
Заключны вывод
Калі працюеце над стадзіяй Final Takeaway, спачатку запісайце умовы кантракту: неабяжлівыя даны, сигнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список пераканаецца, што пазнейшыя змены коду будуць чыстымі. Запісвайце час выканання і кост токена або запыту празаўсюды пасля рэзультатаў функцыйнасці. Відразлівасць костаў з самага пачатку запобегае неспакойным рахункам, калі працэс пераходзіць з дэмаверсіі ў спяльныя среды. Напісце кароткі посоўнік: як ротаваць ключы, як апустошыць чергу, як вярнуць стан да пазнейшага імпорту. Калі працюеце над стадзіяй Final Takeaway, спачатку запісайце умовы кантракту: неабяжлівыя даны, сигнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список пераканаецца, што пазнейшыя змены коду будуць чыстымі. Дасведчыце як шлях успеху, так і шлях вяснавання. Перапрыбуткі, людзкія контралі і обработка некоректных паведамленняў ёсць часткай продукту, а не пазнейшым дапрацоўкам.
Супакінанні проекта
Этап «Спрыянне проекту» працюе найкраща, калі яго розглядаць як параметрызаваную плошчу. Зберагачыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцужок дзеянняў. Фіксуйце версіі залежнасцяў і запішыце хэш адобраза, які выканаў дамо-версію. Возможнасць павторэнтзія перажывае звычайныя методы рашэння проблем.
Чек-ліст для эксплуатацыі
Этап «Чек-ліст для эксплуатацыі» працюе найкраща, калі яго розглядаць як параметрызаваную плошчу. Зберагачыце адны ідеальны прыклад роботы, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы.
Зберагачыце настройкі парадульна ад коду прыемліка. Файлы сяродавішча, хранільнікі секрэтных дадзенняў і флагі функцый павінны знаходзіцца ў адном месцы, якое аператары можаць пераглядаць без неабяжнага чытання всіх элементаў системы.
Зберагаюце версіі залежнасцей і фіксуюце хэш адпрацаванага зображэння, якое выконвало дамаву. Возможнасць парадыроўвання перамагае традыцыйныя методы.
Фіксуюце час выконання і кост токенаў або запытаў разам з функцыйнальнымі рэзултатамі. Відразувая ведамасць пра косты запобегае неспакойным рахункам, калі процес пераходзіць з дамавы ў спакульнаныя среды.
Напісце кароткі посоўнік: як ротаваць ключы, як апошніць чергу запытаў, як вярнуць стан да пярэднега.
Спрыймайце гэты этап як кантракт межа вхіднымі дадзеннямі і перакананымі выходнымі рэзултатамі. Назвайце всі элементы, задаце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
Перад пераводам стака заморозьце версіі, зафіксуйце «золаты» транскрыпт для критычнага падходу і паказваце крокі вярнення да пярэднега стану. У спакульных средах неабходны ліміты частоты запытаў, перакананні ў правах на викорыстоўванне і чысткі власнік для ротаваціі секрэтных канфігурацый. Валіце надзейнасць працы над крэатывнымі, адзінразовымі дамавамі.
Запіска параграфу 22eaeeb42c59: не кластыць ключы прадаўцаў у репазітарыю, задаць максымальны ліміт токена на кожную сесію, а таксама зберагчы транскрыпціі праза фіксатуры адлічэння, каб пазнейшыя замены моделяў заставаліся пораўнанымі.