AIによる依存関係管理

AI支援コーディング 上級編

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

問題の概要

異なる結果を示す2台のコンピューター

 

 

  • 自分のマシンではAtlasが動作する
  • ❌ 本番サーバーへのインストールが失敗する
  • 🔀 同じコード、異なる結果
AI支援コーディング 上級編

依存関係の競合

 

依存関係の競合の図

 

  • Atlasは多数のライブラリに依存している
  • 環境が再現できない
  • 依存関係の競合と呼ばれる
AI支援コーディング 上級編

AIによるエラー分析

インストールエラー:

installation-error2.png

🤖 簡潔な診断プロンプト:

依存関係の仕様とインストールエラーの出力を示します。バージョン競合の根本原因を説明してください。

AI支援コーディング 上級編
AI支援コーディング 上級編

再現可能な環境

 

  • 📦 1コマンドで正確な環境を再現
  • 🤖 AIがセットアップコマンドの生成を支援
  • 💻 チームとマシン間で環境を統一

再現可能な環境

AI支援コーディング 上級編

セットアップコマンドの生成

🤖 再現可能なセットアップのプロンプト:

このプロジェクト構成をもとに、pip-toolsを使った再現可能なPython環境のセットアップを提案してください。環境の作成、依存関係のロック、決定論的なインストールに必要なファイルとコマンドを生成してください。プロジェクトのREADME.mdに仮想環境の使い方を記載してください。

モデルの回答: ai-virtual-env.png

AI支援コーディング 上級編

推移的依存関係

推移的依存関係の図

 

  • 📦 ツールボックスは多数のパッケージを取り込む
  • ❗ 間接的に取り込まれた脆弱なライブラリ:推移的依存関係

 

  • 監査ツールで問題を検出
  • 🤖 AIがレポートを解釈し、安全なバージョンの提案とコード変更箇所を提示
AI支援コーディング 上級編

保守性の高い依存関係

🤖 依存関係監査プロンプト:

このPythonリポジトリで、依存関係の保守性とライセンス準拠を監査したいと思います。

現在アクティブなPython環境のJSONライセンスレポート(パッケージURLとライセンスファイルを含む)を生成するコマンドを作成し、reports/licenses.jsonに出力してください。

  • ✔ 積極的にメンテナンスされている=リスクが低い

 

AIの回答: ai-licenses.png

AI支援コーディング 上級編

レポートの確認

AIの提案: ai-licenses-command.png

ライセンスレポート: licenses-output.png

AI支援コーディング 上級編

AIによる代替案の提案

🤖 代替案プロンプト:

先ほど生成したreports/licenses.jsonの内容を共有します。

パッケージ、バージョン、ライセンス、商用利用のリスクレベルを含む簡潔な表にまとめてください。不明、未記載、または異常なライセンスをフラグしてください。

最もリスクの高い依存関係1件について、より安全な代替案を1つ提案してください。

AIの回答: models-risk.png

AI支援コーディング 上級編

環境セットアップの自動化

環境セットアップ自動化フロー

 

 

  • 💻 新しい開発者向けに1コマンドでセットアップ
  • ✅ CIが変更のたびに環境を検証
AI支援コーディング 上級編

日常的なワークフローの一部として

ai-ci-licenses-emergency.png

AI支援コーディング 上級編

練習しましょう!

AI支援コーディング 上級編

Preparing Video For Download...