Gevinster:
- Evne til at automatisere ingeniørberegning, enhedsstyring og databehandling med AI-drevet Python-kode
- Evne til at validere AI-kode med enhedskontrol, test af kendte resultater og edge cases
- Evne til at få en vane med at producere repeterbare, sporbare og versionskontrollerede kontodokumenter
I maskinteknik udføres den samme beregning igen og igen: spændinger i en familie af dele, pumpeeffekt for en række driftspunkter, egenskabstabeller ved forskellige temperaturer. At gøre disse manuelt er både langsomt og udsat for fejl. Python (et letlært programmeringssprog med rige biblioteker til teknik) automatiserer disse iterationer; Det gør kontoen gentagelig, sporbar og versionsstyret. Kunstig intelligens (AI) Python er utrolig hurtig til at generere kode: konvertere en formel til en funktion, tilføje enhedsstyring, læse data, plotte grafer. Men der er en farlig misforståelse her: Bare fordi koden fungerer uden fejl, betyder det ikke, at den beregner korrekt. AI-koden kan stille og roligt returnere forkerte resultater på grund af forkert enhedskonvertering, forkert formel eller i edge-tilfælde, og programmet vil fortsætte med at køre uden fejl. Det er derfor, at enhver ingeniørkode produceret med AI; Testinput med kendte resultater er upålidelige uden verifikation ved enheds(størrelse)kontrol og kanttilfældeforsøg. I denne enhed lærer du, hvordan du sikkert opsætter Python-kontoautomatisering med AI.
Hvorfor kodekonto? Sporbarhed og reproducerbarhed
En manuel beregning er en engangsberegning; Når et input ændres, sker det fra bunden, og mellemtrin går tabt. Beregning udført i kode er som et dokument: input, formler og output er tydeligt skrevet; du ændrer et input og får et nyt resultat inden for få sekunder; Med versionskontrol (som git) kan "hvad jeg beregnede med hvilken værdi på hvilken dato" spores. Dette er uvurderligt med hensyn til kontrol og ansvarlighed. Men denne magt afhænger af kodens rigtighed; En forkert kode giver det forkerte resultat, også reproducerbart og hurtigt.
Tip: Skriv en test for hver beregningsfunktion med et kendt sandt resultat ved siden af (hævd i Python). For eksempel skal din stressfunktion give 28,1 MPa i en kendt prøve. Denne test advarer dig straks, hvis du bryder noget, når du ændrer koden i fremtiden. Ingeniørkode, der ikke er testet, er en ubekræftet konto.
Volumenstyring: Mest almindelige fejlkilde
I ingeniørkoden kommer de fleste fejl fra enheder: N med kN, m med mm, Pa med MPa, som kan forveksles med en faktor på 1000 eller 1.000.000. Der er to forsvar. Den første er disciplin: at vælge et enkelt enhedssystem fra begyndelsen (f.eks. N, mm, MPa) og konvertere alle input til det og tilføje enheder til variabelnavnene (længde_mm, kraft_N). Det andet er værktøjet: et bibliotek som pint bærer enhederne i koden og fanger den inkonsistente operation som en fejl.
tilgang
Hvordan virker det
Fordel
Navnedisciplin
ligesom kraft_N, længde_mm
Simpelt, ingen afhængigheder
enkelt enhedssystem
Alt konverteret til N-mm-MPa
Enkelhed, hastighed
pint bibliotek
Flytter enhed for variabel
Opfanger automatisk inkonsekvens
Kendt resultattest
henvisning med hævde
Fanger formel/enhedsfejl
Forsigtig: En enhedskonvertering kan mangle eller være forkert i den AI-genererede kode, og koden vil stadig "virke". Hvis diameteren f.eks. er mm og arealet forventes at være m², vil resultatet afvige 1.000.000 gange, men programmet vil ikke give en fejl. Før du kører koden, skal du kommentere enhederne for input og output; forsyn derefter resultatet med et kendt eksempel.
Trin for trin: AI-verificerbar kontokode
- Afklar problemet og enhedssystemet. Indgange, udgange, enheder.
- Generer funktionen. Enkelt ansvarlig, fortolkende, forenet.
- Tilføj kendte resultater test. Påstå med referenceeksempel.
- Prøv kantsager. Nul, negativ, meget stor/lille input.
- Lav et enhedstjek. Passer outputenheden til det forventede?
- Dokument og version. Antagelser, kilde, dato; sporbarhed med git.
Prompt, der genererer funktioner og tests
Rolle: Erfaren Python-udvikler, der skriver tekniske beregninger. Opgave: Skriv en funktion, der beregner den maksimale bøjningsspænding i en rektangulært tværsnits udliggerbjælke. Indgang: F (N), L (mm), b (mm), h (mm). Output: sigma (MPa). Konvention: Enhedssystem N-mm-MPa; kommenter enheden for hver post.Regel: brug I = b*h^3/12 og sigma = M*c/I; kommentere trinene.Regel: Tilføj en test med KENDT RESULTAT: sigma ~28.1 MPa for F=500,L=300,b=20,h=40; Tjek med påstand (lille tolerance).
Edge status prompt
Tilføj kant-case-tjek til ovenstående funktion:- Hvis b, h eller L er nul eller negativ, giv en signifikant fejl (hæv ValueError).- Kommenter, hvis der er et overløb/præcisionsproblem med meget store/små input. Tilføj også 3 flere forskellige testinput og skriv det forventede resultat; forklare resultaterne på en måde, så jeg kan verificere dem manuelt.
Enhedssikkerhed (pint) prompt
Enhedssikker den samme konto med 'pint'-biblioteket. Lad input defineres i enheder (f.eks. 500 * ureg.newton). Konverter outputtet til MPa og udskriv det. Tilføj et lille eksempel, der viser, hvordan pint fejler, når der gives et input med den forkerte enhed.
Kodekontrolprompt
Kritiser min tekniske beregningskode nedenfor fra et kodegennemgangsperspektiv, vær ikke enig med mig. Især: er enhedskonverteringen korrekt, er formlen korrekt, er der taget højde for kanttilfælde (nul, negativ), er testene virkelig bekræftende? For hvert fund skal du skrive, hvordan det løses.[kode]
Svag prompt / stærk prompt
Svag prompt:
Skriv Python-kode til stressberegning.
Intet valg af enheder, formler, inputdefinitioner og tests; AI genererer kode, der virker, men som ikke er verificeret, og hvis enhed er ukendt.
Kraftig prompt:
Skriv bøjningsspændingsfunktionen i udkragningsbjælken. Indgang F(N), L(mm), b(mm),h(mm); output sigma(MPa). N-mm-MPa system, angiv hver enhed i kommentaren. Tilføj en test med kendte resultater (F=500, L=300, b=20, h=40 → ~28,1 MPa, påstå). Giv en fejl ved nul/negativ input. Fortolk kantsager.
Den anden prompt kræver enhedssystem, formel, input, test og edge cases; Det gør koden verificerbar.
Tre minietuier (efter numre)
Tilfælde 1 - Tavs lydstyrkefejl. Arealberegningen produceret af AI tager diameteren i mm og giver mm² med pi*d**2/4, men den næste linje sætter den i en formel, der forventer m²; Koden fungerer uden fejl og giver stressen 1.000.000 gange lavere. Når teknikeren kører testen med et kendt resultat (assert abs(sigma-28.1)<0.5), eksploderer testen, og fejlen fanges. Hvis der ikke var nogen test, ville det forkerte resultat være kommet ind i rapporten ubemærket. Lektion: arbejdskode ≠ korrekt kode.
Case 2 - Edge state crash. I koden, der går i løkker for en delfamilie, indtastes tykkelsen h=0 på én linje; Når I = b*h**3/12 = 0, giver sigma = M*c/I en division med nul fejl. Takket være if h<=0: raise ValueError-kontrollen tilføjet af AI, stopper koden med en meningsfuld besked og producerer ikke lydløst inf. Lektion: Håndter kantsager på forhånd.
Tilfælde 3 - Gentagelsesgevinst. Det tog en ingeniør en halv dag at manuelt beregne pumpeeffekten for 40 forskellige driftspunkter. Skrevet i AI læser scriptet CSV'en, beregner effekten for hver linje og verificerer et kendt punkt med assert, hvilket reducerer arbejdet til ~2 minutter og skriver resultaterne til en sporbar fil. Når en post ændres, opdateres hele tabellen hvert sekund. Lektion: verificeret automatisering er både hurtig og pålidelig.
Almindelige fejl
- "Fungerede = korrekt" fejlslutning: At tro, at kode, der fungerer uden fejl, er korrekt.
- Ikke at skrive test: At stole på kode uden en referencetest med et kendt resultat.
- Unit tvetydighed: Lader input/output-enheder ufortolket, springer konvertering over.
- Ignorerer kanttilfælde: Tavs fejl eller nedbrud ved nul/negativ input.
- Ikke at dokumentere kilden/antagelsen: Ikke nedskrive kilden og antagelsen om den anvendte formel.
- Ikke versionering: Forlader kontoen som en engangsfil uden at gøre den sporbar (git).
Sammenfattende
- Python gør teknisk beregning gentagelig, sporbar og versionsstyret.
- AI er meget hurtig til at generere kode; Men at koden fungerer uden fejl betyder ikke, at den regner rigtigt.
- Hver kode bør valideres gennem test af kendte resultater, enhedskontrol og edge cases.
- Enhedsfejl er den hyppigste og mest snigende fejlkilde; Forsvar med enkelt enhedssystem, nomenklatur eller pint.
- Valideret automatisering sparer tid og giver tillid; Ubekræftet kode er farlig.
Ansøgningsopgave
Vælg en tilbagevendende ingeniørberegning (såsom stress, pumpeeffekt, varmebelastning). Skriv en Python-funktion til den AI, der udfører denne beregning; Kommenter enheden for hver input og output, og tilføj en assert test med et kendt resultat. Kør testen og se om den består. Foretag derefter yderligere to verifikationer: prøv en kant-case (nul eller negativ input) for at kontrollere, at koden returnerer en signifikant fejl, og angiv manuelt output-enheden i et eksempel. Få om muligt også en enhedssikker version produceret i pint. Tilføj endelig beregningens antagelser, formelkilde og dato til koden som en kort titel og skriv, hvorfor denne kode stadig kræver ingeniørgodkendelse.
tjekliste
- [ ] Input- og outputenheder er tydeligt dokumenteret i koden; enkelt enhedssystem blev valgt.
- [ ] En test (påstand) med et kendt resultat blev tilføjet og bestået.
- [ ] Mindst én kant-case (nul/negativ) blev forsøgt; Koden gav en væsentlig fejl.
- [ ] Outputenheden blev leveret af et manuelt eksempel (uden at antage "fungerede = korrekt").
- [ ] Formelkilde, antagelser og dato noteret i koden.
- [ ] Konto holdes sporbar/sporet; endelig godkendelse blev overladt til ingeniøren.