Практычныя прытамулкі: Контракты на суперзаряджанне дадзейнаў з выкарыстоўваннем агента LangGraph RAG
Практычныя прыказкі: Кантракты дадзейнаў супер-заряджання з выкарыстоўваннем агента LangGraph RAG: кантракты, перакрыцчы і слоты для коду, якія можна прыўязаць для команд, якіе викорыстоўваюць гэты патэрн.
Існавайце гэта як перапрацоўку ідэй з документа “Data Contract Agent powered by LangGraph RAG” для аператараў: чыстыя этапы, арганізаваныя блакі коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы. Адгледжэнне працюе найкраща, калі яго спрыявае можлівасць вимеры. Запісаўце адна ідеальная транскрыпцыю, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычым расшырэнню масштаба. Запісвайце часы выканання і косты токенавання або запыткаў праза функцыйнае рэзультат. Відкрытыя данні пра косты з’являюцца рана, таму не будзе неспакою з рахункамі, калі працэс перейдзе з дэмаверыянту ў спакульнае сераўерное сэрвіса.
LangChain
Для LangChain, пры змяне коду, неабходна ўзначэнне вхідных дадзенняў, адпаведальнага за практыку і крэтарыяў завершэння. Аператары должны магчыма было перзапускаць практыку з вядомага пункта контролю, не спадзяючыся на заштынены стан. Конфігурацыю трэба залічыць параду ад коду прыкладнення. Файлы сяродавішча, хранільнікі секрэтных дадзенняў і флагі функций должны знаходзіцца ў аднам месцы, куда аператары можуць адбавіць аудыт, не чытаючы весь граф. Наводзіце тыя часткі, якія фактычна ляглі в основу адпаведнай адказы. Без цых цітатаў аператары не можуць разлічыць галюцинацію ад прасоў у індэксаванні.
Асновныя складовы
Для ключовых складовых элементаў неабходна прадзефінаваць вхідныя даны, адпаведальную особу за практыку та крэтарыя для завершэння працы перад змінайом коду. Аператары должны магчымае перзапускать практыку з вядомай точкі контролю, не спадзяючыся на заштынены стан. Неабходна аддзеўнаваць дакументацыю як пра успішны ход роботы, так і пра шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія перакрыцця та обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не зможаць розразліць галюцинацыю ад працягу індэксавання.
LangGraph
Для LangGraph неабяжна прадзефінавацыя вхідных дадзеных, адпраўніка крока і крэтарыяў завершэння працы перад зменым коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне крока з вядомага пункту контролю, не спрабоўваючы здагадвацца пра схованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест абмежлёных скрыптав. Калі крок не выканаецца, прычына неудачы должна вказываць на адну конкрэтную адпраўніцу, а не на заплутаны ланцоўкі задач. Прытамульвайце тыя часткі тексту, якія фактычна служылі падставай для адпаведнай адказу. Без ціх прамянаў аперацыйныя працавнікі не зможуць адразніць галюцинацыю ад працягу ў індэксаванні. Для LangGraph неабяжна прадзефінавацыя вхідных дадзеных, адпраўніка крока і крэтарыяў завершэння працы перад зменым коду. Аперацыйныя працавнікі должны магчымае перайсці на выкананне крока з вядомага пункту контролю, не спрабоўваючы здагадвацца пра схованы стан. Запісвайце час выканання і кост токенав або запыта разам з функцыйнаімі рэзультатамі. Відразлівае паказанне костаў з самага пачатку запобегае неспакойным рахункам, калі процес пераходзіць з дэмавай версіі ў спяльныя сераўы.
Настройка
Калі працюеце над налаштаванням, спачатку запісайце умовы дагавору: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага нявыпання. Такі список контроля дапамагае заліцьварыць змяны ў кодзе пазнейша. Зберагайце налаштавання паза кодам прыемліка. Файлы сераўнавання, храненні секрэтных данных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжлівага чытання всей структуры. Перад налаштаваннем запытаў пераканайцеся ў рэальным выкарыстоўванні на фіксаванай сэтке запытаў. Частае змяненне запытаў рэдка калі вядомае як спосаб падтрымкі слабкага рынку выкарыстоўвання данных.
Node 2 retrieve_contracts (процес выкарыстоўвання данных)
Калі працюеце з функцыяй Node 2 retrieve_contracts (процэс адзыскання), спачатку запішыце параметры контракта: неабяжлівыя вхідныя даны, сігнал працэсу і тое, што выходзіць пад частковыя адказы. Такі список контроля дапамагае заліцварыць будучыя змены ў кодзе.
Дакументавайце як правільны, так і альтернатыўны шляхі роботы. Практыка павторных спробы, кантроль з боку людзя і обработка некоректных адказоў є частью самага продукту, а не дадатковыми етапамі доўнелення.
Перад налаштаваннем запитоў пераканайцеся, насколькі эфектыва адказы пра фіксаваны набор пытанняў. Частае зміненне запитоў рэдка калі вярна выправляе слабыя аспекты процэсу адзыскання інформаціі.
Node 3 match_contract (выбіранне)
Калі працуеце з Node 3 match_contract (выбір), спачатку запісайце умовы працы: неабяжлівыя данні, сигнал успеху і тое, што выходзіць пад частковыя неудачы. Такі список дапамагае заліцварваць будучыя змены коду.
Волейце маленькі, тэставаныя елементы замест велікіх скрыптов. Калі якісь крок не выходзіць, неудача должна вказваць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач.
Перад налаштаваннем запитоў пераканайцеся ў рэверсі на фіксаваным наборе запитанняў. Частая змена запитоў рэдка калі вырашае проблему слабкага адлічэння інформацыі.
Калі працуеце з Node 3 match_contract (выбір), спачатку запісайце умовы працы: неабяжлівыя данні, сигнал успеху і тое, што выходзіць пад частковыя неудачы. Такі список дапамагае заліцварваць будучыя змены коду.
Запісуйце час выконання і вартасьць токеноў або запитаў разам з функцыональнымі рэзултатамі. Відразувыя данні пра вартасьці запобегаюць неспакойным рахункам, калі праця пераходзіць з дэмавайнага режыма ў спяльныя сераўеры.
Чаму RAG
Рэштаркаванне RAG працуе наяўней, калі яго спрыяваць як мерыемую структуру. Зафіксавайце адну ідеальную транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу прыемлівання. Зберагаюце настройкі пазырочна ад коду прыемлівання. Файлы сераўнавальной среды, хранільнікі секрэтных дадзеных і флагі функций павінны знаходзіцца ў адном месцы, куда аператары можуць адбавляць аудыт без неабяжнага чытання всіх дадзеных. Раздзеляйце правілы часткавання дадзеных і правілы ўзяць іх. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцыся паказателі якосці.
Інсталяцыя
Інсталяцыя працюе наўсёй краща, калі яе розглядаць як вимерную паверхню. Зафіксавайце адны «золаты» прыклад роботы, адны прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Документавайце як успішны, так і варыянт вярнэння да нормальнага стану. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
git clone https://github.com/ajithshetty/data-contract-validator-agent.git
cp .env.example .env
# Set ANTHROPIC_API_KEY in .env
docker compose up qdrant -d
python3.12 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m backend.main
http://localhost:8000
http://localhost:8000/docs (Swagger)
curl -X POST http://localhost:8000/api/ingest \
-H "Content-Type: application/json" \
-d '{"contracts_dir": "./contracts/sample"}'
cd frontend
npm install && npm run dev
Шырокі ввод з аднойчынай Docker
Швыракаванне выкарыстоўвання Docker работае наякша, калі яго спрыяваць як мерыемую паверхню. Запісаце адна ідеальная версія, адзін прыклад неудачы і прыметку па абратанні рэшытакі перад расширэнням масштаба. Волейце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок не выйшае, неудача павінна вказваць на адную адпаведальнасць, а не на заплутаны ланцужок задач. Раздзеляйце правілы часткавання і правілы выкарыстоўвання дадзеных. Змена адных не павінна вымагаць перапісву іншых, калі зменяюцца паказнікі якосці.
cp .env.example .env # set ANTHROPIC_API_KEY
docker compose up - build
cd frontend && npm install && npm run dev
Швыракаванне выкарыстоўвання Docker работае наякша, калі яго спрыяваць як мерыемую паверхню. Запісаце адна ідеальная версія, адзін прыклад неудачы і прыметку па абратанні рэшытакі перад расширэнням масштаба. Запісвайце часы выканання і косты токенаў або запытак разам з функцыйнальнымі рэзултатамі. Відразы костаў з самага пачатку запобегае неспакойным рахункам, калі праця пераходзіць з дэмавайнага режыма ў спяльныя среды.
Дэма
Для дэманстрацыі, перш чым зменяць код, неабходна ўказваць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аператары должны магчымае перзапускати крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба залічыць пазначкай ад коду прыемліка. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыяй павінны знаходзіцца ў адном месцы, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг задач. Неабходна цітаваць тыя часткі, якія фактычна лежалі в основе адпаведнай адказы. Без цітатаў аператары не можаць розразліць галюцинацію ад прычыны, зв’язанай з недастаткам індэксацыі.
curl -X POST http://localhost:8000/api/validate \
-H "Content-Type: application/json" \
-d '{
"raw_schema": "{\"identifier\": \"warehouse.fact_orders\", \"fields\": [{\"name\": \"order_id\", \"type\": \"bigint\", \"optional\": false}]}",
"schema_type": "iceberg"
}'
Разлік
Для стварэння апৎварткаў неабходна прадзефініраваць вхідныя даны, адпаведальнага за крок і крэтары завершэння працы перад змянай коду. Аператары должны магчымае запускаваць крок з вядомай точкі контролю, не прабуючы спадарожваць схованы стан. Неабходна адзначыць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Паказваць трэба тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адпаведзі. Без цых цытатаў аператары не зможаць разлічыць галюцинацію ад працягу індэксавання.
Справака
Для адаптавання: перад тым, як зменшыць код, неабяжна визначыць параметры вводу, адпаведальнага за крок і критэрыі завершэння. Аператары должны магчымаць перзапуск крока з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы замест большых скрыптов. Калі крок не выйшоў, прычына неудачы павінна вказываць на адзін конкрэтны элемент, а не на заплутаны ланцюг задач. Апісваць тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх апісаў аператары не зможуць разлічыць галюцинацію ад працягу індэксавання.
Чек-ліст для эксплуатацыі
Працюючы з чек-лістам, спачатку запісваць умовы: неабяжны параметры вводу, сігнал успеху і тое, што выходзіць у разе частковай неудачы. Такі чек-ліст дапамагае заставаць пасляэтапныя змены коду чыстымі.
Спрыяць гэтаму этапу як угодзе між параметрамі вводу і перакананымі выходамі. Даць назвы элементам, визначыць критэрыі успеху і адмовіцца ад тых частковых завершэнняў, якія не зафіксаваны.
Зьвярзіце рэгулярнае тэставанне спамятаўкі на фіксованым наборе запытанняў прычымо да налаштавання прамптаў. Частае змены прамптаў рэдка калі вярнуюць эфекты слабкага адлічэння інформацыі.
Зберагайте стан графа ў простам і чытаемым формате. Вярнутыя структуры маскуюць інфармацыю пра тое, який вузол запісаў кожнае полье, і спакшуюць працэс пасля перарываў.
Дадзіце тэст на працясную работу, які пераканаецца ў правільнасці критычнага маршруту ў системе CI з викорыстанам фіксатываных даных, а не рэальных платных API, калі толькі дозволяе бюджет.
Документавайце як правільны, так і альтернатыўны маршруты роботы. Праказы, людзкія перакрыцчы і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Перыходзячы да наступных версій, заморозьце існуючыя версіі, зафіксавайце ідеальны прымер роботы критычнага маршруту і паказвайце способы адвярнення змян. У спільных средах неабходны ліміты частоты запытанняў, перакрыцчы на адпаведнасць тэнантам і чысткі власнік для змены секрэтных даных. Валіце простую надзейнасць над крэатыўнымі, але разовымі дэманстрацыямі.
Запіскі для пакета 84f19eec2edd: не класты ключі прадаўцоў у репозітарыю, задаць максымальны ліміт токена на сесію, а таксама зберагчы транскрыпціі праза фіксатуры для ацэнкі, каб пазнейшыя замены моделяў заставаліся порównаннэй.