Добици:
- Способност преузимања робусног СКЛ и пандас кода и читања и верификације ред по ред давањем јасне шеме и сврхе вештачкој интелигенцији
- Способност хватања тихих грешака као што су број редова, функција уклапања и проток након спајања/ЈОИН-а
- Способност решавања проблема у отклањању грешака без утишавања и избегавања покретања кода без тестирања у производном окружењу
Наука о подацима има два примарна језика: СКЛ (Струцтуред Куери Лангуаге — језик за упите података из база података) и Питхон (конкретно, библиотека пандас — стандардни алат за програмско манипулисање табелама). У овој јединици ћемо научити да користимо АИ као партнера за код: добијамо солидан СКЛ и пандас код од њега са правим питањима, читамо и потврђујемо тај код, отклањамо грешке и никада га не покрећемо на слепо. АИ пише код који се понавља у секундама уместо у минутима; Али ваш је посао да се уверите да код који производи обрађује исправну колону са исправном логиком. Радни код не значи исправан код.
Зашто је производња кода помоћу вештачке интелигенције моћна, али ризична
АИ пружа три велике предности у генерисању кода: брзину (пише операцију од 30 редова група-за-окрет у секунди), подсетник (подсећа вас на пандас функцију коју сте заборавили) и подучавање (објашњава код ред по ред). Али носи три ризика: грешку тихе логике (код који сабира погрешну колону ради без грешака), уграђену функцију (предлаже метод који не постоји) и замку приноса (код који ради на малим подацима, али се руши на 10 милиона редова). Дакле, златно правило: Прочитајте АИ код као да сте га сами написали. Не трчите линију коју не разумете.
СКЛ: процесни подаци на извору
СКЛ вам омогућава да преузмете податке из базе података и тамо их обрадите; Можете сумирати милионе редова без увлачења у Питхон. Основни градивни блокови: СЕЛЕЦТ (које колоне), ВХЕРЕ (који редови), ГРОУП БИ (груписати и сумирати), ЈОИН (придружити табеле), ХАВИНГ (филтер после групе). АИ је од велике помоћи у писању сложених ЈОИН-ова и функција прозора, али обавезно проверите две ствари: да ли је ЈОИН преко тачног кључа (погрешан кључ дуплира редове) и да ли је логика филтера исправна (нарочито понашање НУЛЛ и распони датума).
Опрез: Немојте покретати СКЛ упит генерисан од вештачке интелигенције директно у производној бази података. Тестирајте прво са малом копијом или ЛИМИТ. Никада немојте покретати упит УПДАТЕ/ДЕЛЕТЕ без валидације услова ВХЕРЕ; Погрешан ВХЕРЕ може избрисати целу табелу.
Питхон/пандас: флексибилна анализа
пандас је стандардни начин за манипулисање табелама (ДатаФраме) у Питхон-у. Најефикаснија употреба вештачке интелигенције је да јој се да јасна шема и сврха. Најчешће коришћене операције: филтер, гроупби, мерге, пивот_табле, аппли. АИ их пише брзо; Оно што желите да проверите је логика: да ли је груписање у исправној колони, да ли је спајање неочекивано променило број редова (увек проверите број редова након спајања), да ли ланчане операције мењају оригинал.
трансакција
СКЛ
панде
контролни пункт
Филтрирање
ГДЈЕ
дф[дф.к > 5]
НУЛЛ/НаН понашање
груписање
ГРОУП БИ
дф.гроупби()
Да ли је то права колона?
спојити
ЈОИН
дф.мерге()
Промена броја редова
Резиме
АВГ(), СУМ()
.меан(), .сум()
Која је колона прикупљена
Сортирај по
ОРДЕР БИ
.сорт_валуес()
Смер (узлазно/силазно)
дедупликација
ДИСТИНЦТ
.дроп_дуплицатес()
У којим колонама?
Отклањање грешака: са АИ
Када код не успе, АИ је одличан партнер за отклањање грешака. Дајте му целу поруку о грешци и релевантни исечак кода. Али чувајте се две замке. Прво, АИ може предложити решење које „утишава“ грешку (нпр. скривање упозорења) — ово не поправља грешку, већ је сакрива. Друго, АИ понекад тихо мења друго понашање док „решава“ проблем. Правило: разумете поправку, решите да не искључите звук и проверите да ли је излаз и даље исправан након поправке.
Желите код који се може тумачити и одржавати
Када купујете код од АИ, тражите код који је читљив и одржаван, а не само код који „ради“. Када ви или колега отворите тај код месецима касније, требало би да буде у стању да разуме шта ради. Да бисте то урадили, створите навику да АИ укључује три ствари: смислена имена променљивих (ордерс_темиз, а не дф2), кратке редове коментара у критичним корацима (објашњавајући зашто, а не шта се ради) и именовану константу уместо магичног броја (АЦЦЕПТ_ЕСИГИ = 0,85 уместо 0,85 закопано у коду). Такође избегавајте дугачке једнолинијске ланце (повезивање пет акција у једној линији); ово отежава отклањање грешака. Подразумевано, АИ често производи концизан и „паметан“ код; Ако јасно кажете „писати читљиво, интерпретабилно, одржавано“, добићете много бољи излаз за одржавање. Ово је такође основа репродуктивности (Јединица 10): код који се не разуме је код који се не може поново безбедно покренути.
три мини кофера
Случај 1 — ЈОИН репликација. Аналитичар је комбиновао поруџбине са табелом производа и открио да је укупан промет 3 пута већи. Узрок: сваки производ је имао више редова (различите боје) у табели производа; ЈОИН је дуплирао сваку наруџбу. Код АИ је „радио“, али је број линија скочио са 240 хиљада на 690 хиљада. Лекција: увек проверите број редова након спајања/ЈОИН.
Случај 2 — Функција монтирања. Предложио је АИ дф.гроупби('к').суммаризе() стажисту; Не постоји такав метод у пандама (постоји .агг()). Шифра није функционисала, стажиста је изгубљена 20 минута. Лекција: проверите функцију коју не препознајете у документу; АИ може да измисли методе.
Случај 3 — Пад приноса. Један код је испитивао базу података у примени за сваки ред; Радио је на 5.000 линија, трајало је 9 сати на 4 милиона линија и стало. Када је АИ предложио векторизовано (серијско) решење, време је смањено на 40 секунди. Лекција: код који ради на малим подацима може се срушити на великим подацима; Размотрите ефикасност.
Четири шаблона за копирање
1) Захтевање СКЛ-а са шемом:
Ваша улога: СКЛ помоћник (ПостгреСКЛ). Табеле:- поруџбине(ид, цустомер_ид, датум, временска ознака, бројчана количина)- купци (ид, текст града) Задатак: Добијте укупан промет и број поруџбина по граду у 2024. години, сортирани по промету у опадајућем редоследу. Објасните како поступате са НУЛЛ градовима. Прво ћу тестирати упит са ЛИМИТ; Генерација АЖУРИРАЈ/БРИШИ.
2) панде процес са контролном тачком:
Имам ДатаФрамес дф (поруџбине) и дф_цустомерс (купци). Израчунајте просечан износ по граду. ВАЖНО: одштампајте број редова пре и после спајања како бих могао да видим да ли постоји дуплирање. Објасните у коју колону сте се спојили и зашто сте изабрали унутрашњу/леву.
3) Објашњење кода и верификација:
Објасните следећи код панда ред по ред: шта ради сваки ред, које претпоставке даје, у којим случајевима може дати погрешне резултате? Јавите ми да ли сам користио функцију фудге. Шифра: [налепи]
4) Отклањање грешака:
Овај код даје ову грешку. Цела порука о грешци: [пасте]. Шифра: [налепите]. Објасните КОРЕНИ узрок грешке и поправите га. Решите то тако што ћете заиста решити проблем, а не утишавањем упозорења. Такође назначите да ли је поправка променила излаз.
Слаби промпт / Јаки промпт
Слабо обавештење:
Напишите упит који ми даје продају по граду.
Имена табела, колоне, тип базе података, НУЛЛ понашање су нејасни. АИ је уобичајен, вероватно ће произвести упит који се не уклапа у вашу табелу.
Снажан упит:
Ваша улога: СКЛ помоћник (МиСКЛ 8). Табела: продаја (ид, варцхар града, децимални износ, датум датум). Задатак: Добити укупан и просечан износ, број поруџбина по граду за 2024. годину; Поређај умањујући за укупан износ; Прикажи само градове са више од 100 поруџбина (ХАВИНГ).НУЛЛ искључи град. Објасните упит; Тестираћу са ЛИМИТ-ом.
Овде су база података, шема, филтер, сортирање и НУЛЛ правило очигледни.
Уобичајене грешке
- Покретање кода без читања. Радни код није исправан код; Код који манипулише погрешном колоном такође ради без грешака.
- Не проверава се број редова након спајања/ЈОИН. Погрешан кључ тихо дуплира редове и надувава укупне вредности.
- Не проверава функцију уклапања. АИ може предложити методе које не постоје; Потврдите из документа да га не препознајете.
- Не размишљајући о ефикасности. примена/петља ради на малим падовима података на милионима редова; векторизовати.
- Покрените директно на производној бази података. Нарочито је погубно покретање УПДАТЕ/ДЕЛЕТЕ без ВХЕРЕ или тестирања.
Савет: Навикните се да сваком делу кода који добијете од вештачке интелигенције додајете „лину за проверу ваљаности“: број редова пре и после обраде, неколико линија узорка и критични збир ручно. Ове три провере хватају већину тихих логичких грешака.
Укратко
АИ је моћан партнер који брзо производи СКЛ и пандас код, али није слепи ауторитет. Јасно му дајте шему и сврху; Прочитајте код који производи као да сте га сами написали; Проверите број редова, функције уклапања и пропусност након спајања/ЈОИН; Немојте га покретати без тестирања у производној бази података. Када отклањате грешке, настојте да решите проблем, а не да га утишате. Код који ради није исправан код; Само ви можете гарантовати тачност.
Задатак апликације
Изаберите питање за анализу (нпр. „месечни обрт по каналу“) и затражите код од вештачке интелигенције и са СКЛ-ом и са пандама. Прочитајте оба кода ред по ред, проверите број редова након спајања/ЈОИН и ручно проверите најмање једну критичну суму. Упоредите да ли два кода дају исти резултат; Ако је другачије, сазнајте зашто.
контролна листа
- [ ] Да ли сам јасно дао табелу/шему и сврху АИ?
- [ ] Да ли сам прочитао и разумео код који је произвео ред по ред?
- [ ] Да ли сам проверио број редова након спајања/ЈОИН?
- [ ] Да ли сам проверио функције које не препознајем из документације?
- [ ] Да ли сам прво тестирао код на безбедним/малим подацима, а не у производном окружењу?