利益:
- AI を活用した Python コードを使用して工学計算、ユニット管理、データ処理を自動化する機能
- 単体チェック、既知の結果テスト、エッジケースを使用して AI コードを検証する機能
- 再現可能で追跡可能でバージョン管理されたアカウント文書を作成する習慣を身につける能力
機械工学では、一連の部品の応力、さまざまな動作点のポンプ出力、さまざまな温度での特性テーブルなど、同じ計算が何度も繰り返されます。これらを手動で行うと時間がかかり、エラーが発生しやすくなります。 Python (エンジニアリング用の豊富なライブラリを備えた学びやすいプログラミング言語) は、これらの繰り返しを自動化します。これにより、アカウントの再現性、追跡性、およびバージョン管理が可能になります。人工知能 (AI) Python は、数式の関数への変換、ユニット管理の追加、データの読み取り、グラフのプロットなどのコード生成が驚くほど高速です。しかし、ここには危険な誤解があります。コードがエラーなしで動作するからといって、正しく計算されるとは限りません。 AI コードは、誤った単位変換、誤った数式、または特殊なケースにより、誤った結果をサイレントに返す場合がありますが、プログラムはエラーなしで実行を継続します。だからこそ、あらゆるエンジニアリング コードは AI で作成されます。結果がわかっているテスト入力は、ユニット (サイズ) チェックやエッジケースのトライアルによる検証がなければ信頼できません。この単元では、AI を使用した Python アカウント自動化を安全に設定する方法を学習します。
コードアカウントを使用する理由トレーサビリティと再現性
手動計算は 1 回限りです。入力が変更されると、最初から変更が行われ、中間ステップが失われます。コードで行われる計算はドキュメントのようなものです。入力、式、出力が明確に記述されます。入力を変更すると、数秒以内に新しい結果が得られます。 gitなどのバージョン管理を使えば、「どの日付にどの値で何を計算したか」を追跡することができます。これは、管理と説明責任の観点から非常に貴重です。ただし、この能力はコードの正確さに依存します。間違ったコードは間違った結果を再現可能かつ迅速に生成します。
ヒント: 計算関数ごとにテストを作成し、その横に既知の真の結果 (Python ではアサート) を付けます。たとえば、既知のサンプルでは応力関数は 28.1 MPa となるはずです。このテストは、今後コードを変更するときに何かが壊れた場合にすぐに警告します。テストされていないエンジニアリング コードは未検証のアカウントです。
ボリューム管理: 最も一般的なエラーの原因
工学規定では、ほとんどの誤差は単位 (N と kN、m と mm、Pa と MPa) に由来しており、1,000 倍または 1,000,000 倍も混同される可能性があります。防御策は2つあります。 1 つ目は規律です。最初から単一の単位系 (例: N、mm、MPa) を選択し、すべての入力をそれに変換し、変数名 (length_mm、force_N) に単位を追加します。 2 つ目はツールです。pint のようなライブラリはコード内のユニットを運び、一貫性のない操作をエラーとして捕捉します。
アプローチ
どのように機能するのか
利点
命名規則
力_N、長さ_mm など
シンプル、依存関係なし
単体システム
すべてN・mm・MPa換算
シンプルさ、スピード
パイントライブラリ
変数でユニットを移動します
矛盾を自動的にキャッチ
既知の結果テスト
アサートによる参照
数式/単位エラーをキャッチする
注意: AI が生成したコードでは単位変換が欠落しているか正しくない可能性がありますが、コードは引き続き「機能」します。たとえば、直径が mm で面積が m² であると予想される場合、結果は 1,000,000 倍ずれますが、プログラムはエラーを出しません。コードを実行する前に、入力と出力のユニットをコメント アウトします。次に、結果を既知の例とともに提供します。
ステップバイステップ: AI 検証可能なアカウント コード
- 問題と単位系を明確にします。入力、出力、単位。
- 関数を生成します。単一の責任があり、解釈があり、団結しています。
- 既知の結果のテストを追加します。参考例とともに主張します。
- エッジケースを試してください。ゼロ、負、非常に大きい/小さい入力。
- ユニットチェックを行います。出力の単位は期待されるものと一致していますか?
- ドキュメントとバージョン。仮定、出典、日付。 git によるトレーサビリティ。
関数とテストを生成するプロンプト
役割: エンジニアリング計算を作成する経験豊富な Python 開発者。タスク: 長方形断面の片持ち梁の最大曲げ応力を計算する関数を作成します。入力:F(N)、L(mm)、b(mm)、h(mm)。出力: シグマ (MPa)。表記法: 単位系 N-mm-MPa;各エントリの単位をコメントします。ルール: I = b*h^3/12 および sigma = M*c/I を使用します。手順をコメントします。ルール: 既知の結果を含むテストを追加します: F=500、L=300、b=20、h=40 の場合は sigma ~28.1 MPa。アサートで確認します(許容範囲が小さい)。
エッジステータスプロンプト
上記の関数にエッジ ケース チェックを追加します。 - b、h、または L が 0 または負の場合、重大なエラーが発生します (ValueError が発生します)。 - 非常に大きい/小さい入力でオーバーフロー/精度の問題がある場合はコメントします。さらに 3 つの異なるテスト入力を追加し、予想される結果を書き込みます。手動で検証できる方法で結果を説明してください。
ユニットセキュリティ (パイント) プロンプト
「pint」ライブラリと同じアカウントをユニットセーフにします。入力を単位で定義します (例: 500 * ureg.newton)。出力をMPaに変換して印刷します。間違った単位の入力が与えられた場合に pint がどのように失敗するかを示す小さな例を追加します。
コードチェックプロンプト
以下の私の工学計算コードをコードレビューの観点から批判してください。私に同意しないでください。特に、単位変換は正しいか、式は正しいか、エッジケース (ゼロ、マイナス) は考慮されているか、テストは本当に確認的ですか?発見ごとに、それを修正する方法を記述します。[コード]
弱いプロンプト / 強いプロンプト
弱いプロンプト:
応力計算用の Python コードを作成します。
単位、公式、入力定義、テストを選択する必要はありません。 AIは、動作するが未検証で単位が不明なコードを生成します。
強力なプロンプト:
片持ち梁の曲げ応力関数を書き込みます。 F(N)、L(mm)、b(mm)、h(mm)を入力します。出力シグマ(MPa)。 N・mm・MPa系の場合は各単位をコメントにてご指示ください。既知の結果を持つテストを追加します (F=500、L=300、b=20、h=40 → ~28.1 MPa、アサート)。ゼロ/マイナス入力でエラーを発生させます。エッジケースを解釈する。
2 番目のプロンプトには、単位系、式、入力、テスト、およびエッジ ケースが必要です。これによりコードが検証可能になります。
ミニケース 3 個(番号別)
ケース 1 - サイレントボリュームエラー。 AI によって生成された面積計算では、直径を mm 単位で取得し、pi*d**2/4 で mm² が得られますが、次の行では m² を想定する式にそれを入れます。コードはエラーなしで動作し、ストレスは 1,000,000 分の 1 になります。エンジニアが既知の結果 (asser abs(sigma-28.1)<0.5) でテストを実行すると、テストが爆発的に発生し、エラーが捕捉されます。もしテストがなかったら、間違った結果が気づかれずにレポートに記載されていたでしょう。教訓: 動作するコード ≠ 正しいコード。
ケース 2 - エッジ状態のクラッシュ。パーツ ファミリをループするコードでは、厚さ h=0 が 1 行に入力されます。 I = b*h**3/12 = 0 の場合、sigma = M*c/I ではゼロ除算エラーが発生します。 AI によって追加された if h<=0: raise ValueError コントロールのおかげで、コードは意味のあるメッセージで停止し、暗黙的に inf を生成しません。教訓: エッジケースに事前に対処する。
ケース 3 - 再現性の向上。エンジニアが 40 の異なる動作点のポンプ出力を手動で計算するには半日かかりました。 AI で書かれたスクリプトは、CSV を読み取り、各行のパワーを計算し、assert で既知のポイントを検証することで、作業を約 2 分に短縮し、結果を追跡可能なファイルに書き込みます。エントリが変更されると、テーブル全体が毎秒更新されます。教訓: 検証済みの自動化は高速かつ信頼性の高いものです。
よくある間違い
- 「動作した = 正しい」という誤謬: エラーなしで動作するコードが正しいと考える。
- テストを作成しない: 結果がわかっている参照テストを使用せずにコードに依存します。
- 単位の曖昧さ: 入力/出力単位が解釈されないままになり、変換がスキップされます。
- エッジ ケースの無視: ゼロ/負の入力でサイレント エラーまたはクラッシュが発生します。
- 出典/仮定を文書化していない: 使用した式の出典と仮定を書き留めていません。
- バージョン管理を行わない: アカウントを追跡可能にせずに 1 回限りのファイルとして残します (git)。
要約すると
- Python を使用すると、エンジニアリング計算の再現性、追跡性、およびバージョン管理が可能になります。
- AI は非常に高速にコードを生成します。ただし、コードがエラーなしで動作するという事実は、コードが正しく計算されることを意味するわけではありません。
- すべてのコードは、既知の結果のテスト、ユニットチェック、およびエッジケースを通じて検証される必要があります。
- ユニットエラーは、最も頻繁かつ最も潜伏性の高いエラーの原因です。単一ユニットシステム、命名法、またはパイントによって防御します。
- 検証された自動化により時間が節約され、自信が得られます。未検証のコードは危険です。
アプリケーションタスク
繰り返しの工学計算 (応力、ポンプ出力、熱負荷など) を選択します。この計算を行う AI に Python 関数を記述します。各入力と出力のユニットをコメント アウトし、結果がわかっているアサート テストを追加します。テストを実行して、合格するかどうかを確認します。次に、さらに 2 つの検証を実行します。エッジ ケース (ゼロまたは負の入力) を試して、コードが重大なエラーを返すかどうかを確認し、例で出力の単位を手動で指定します。可能であれば、pint で生成されたユニットセーフ バージョンも用意してください。最後に、計算の仮定、式のソース、日付を短いタイトルとしてコードに追加し、このコードが依然としてエンジニアの承認を必要とする理由を記述します。
チェックリスト
- [ ] 入力ユニットと出力ユニットはコード内に明確に文書化されています。単体システムを選択しました。
- [ ] 結果がわかっているテスト (アサート) が追加され、合格しました。
- [ ] 少なくとも 1 つのエッジ ケース (ゼロ/ネガティブ) が試みられました。コードに重大なエラーが発生しました。
- [ ] 出力の単位は手動の例によって提供されています (「動作した = 正しい」とは想定されていません)。
- [ ] コードに記載されている式のソース、仮定、および日付。
- [ ] アカウントは追跡可能/追跡されています。最終的な承認はエンジニアに任されました。