OpenDevin: Devinのオープンソース版
Devinのニュースで色々と反響が多い中、早速そのDevinのオープンソース版が登場してます。
Devin自体はクローズドソースなので、それに対抗する形での登場です。オープンソースはコミュニティが形成されるので、Devin自体よりも多くの人が開発に加わり、早くエンハンスが行われる可能性があり、より広く使われる可能性もあります。
早速、使ってみた系のビデオもいっぱい登場していて、その中でも特にわかりやすいのを選びました。
OpenDevinに関する情報
画面イメージ
OpenDevinについてかなり詳しく解説してくれているビデオ
OpenDevinとは何か?
OpenDevinは、ユーザーフレンドリーなインターフェースを提供するデジタルAIソフトウェアエンジニアであり、そのインターフェースを使用してAIにタスクを実行させ、リアルタイムでそのアクションを観察することができます。 インターフェースは主に2つの部分に分かれています。左側にはタスクを割り当てることができ、右側にはターミナル、プランナー、コードエディター、およびブラウザがあります。 このセットアップにより、OpenDevinはこれらのツールを使用して割り当てられたタスクを達成し、途中で自動的にエラーを修正することができます。
ミッション
OpenDevin:このオープンソースプロジェクトは、複雑なエンジニアリングタスクを実行し、ソフトウェア開発プロジェクトでユーザーと積極的に協力することができる自律型AIソフトウェアエンジニアであるDevinを複製することを目指しています。このプロジェクトは、オープンソースコミュニティの力を借りてDevinを複製し、拡張し、革新することを目指しています。
技術的な基盤
OpenDevinは、安全性、信頼性、シームレスな相互作用を保証する最先端のテクノロジースタックによって支えられています。
- サンドボックス環境:
- Dockerを中心に、OpenDevinは制御された環境でのコードの安全な実行を保証します。
- フロントエンドインターフェース:
- ユーザビリティの高いインターフェースを開発し、Devinとの進捗状況のモニタリングや相互作用を可能にし、Reactなどのフレームワークを活用するか、より統合された体験を提供するためにVSCodeプラグインを作成することが考えられます。
OpenDevinのロードマップ:戦略的アプローチ
以下はロードマップの一部です:
- コア技術研究:
- OpenDevinはコード生成と処理の細部にまで踏み込み、モデルの技術力を向上させるための基礎研究を行います。
- 専門能力:
- データの入念なキュレーション、トレーニング方法の改良、およびコアコンポーネントの最適化により、コミュニティはOpenDevinの特化した能力を向上させます。
- タスクプランニング:
- バグの検出からコードベースの管理、パフォーマンスの最適化まで、OpenDevinは開発プロセスを効率化するための高度なタスクプランニング能力を備えます。
- 評価:
- 継続的な改善を確実にするために、OpenDevinはモデルのパフォーマンスを評価し、改善するための包括的な評価基準を確立します。
直近のエンハンス項目
MVPデモは私たちにとってプライオリティの高い課題です。以下が重要ポイントです:
- UI:
- チャットインターフェース、コマンドを示すシェル、ブラウザなど。
- アーキテクチャ:
- 安定したバックエンドを持つエージェントフレームワークで、簡単なコマンドを読み書きおよび実行できるもの。
- エージェント:
- bashスクリプトを生成し、テストを実行できるもの。
- 評価:
- Devinの評価に一貫した最小限の評価パイプライン。
MVPの構築が終了したら、基礎モデル、専門能力、評価、エージェント研究など、さまざまなトピックで研究を進めていきます。
プロジェクトへの貢献について
OpenDevinはコミュニティ主導のプロジェクトであり、誰からの貢献も歓迎しています。開発者、研究者、または単にAIを活用したソフトウェアエンジニアリングの分野を推進したいと熱心な方々、皆様の参加をお待ちしています。
- コードの貢献: コア機能、フロントエンドインターフェース、またはサンドボックスソリューションの開発を手伝ってください。
- 研究と評価: ソフトウェアエンジニアリングにおけるLLMの理解に貢献し、モデルの評価に参加したり、改善点を提案してください。
- フィードバックとテスト: OpenDevinツールセットを使用し、バグを報告したり、機能を提案したり、使いやすさに関するフィードバックを提供してください。
詳細については、この文書をご覧ください。
AI駆動開発について興味関心があり、
ご相談があれば以下よりお問い合わせください
実際にOpenDevinを動かしてみる
バックエンド環境の設定
OpenDevinを使用する前に、バックエンドとフロントエンドの両方を設定する必要があります。バックエンドはFastAPIに依存しており、フロントエンドはNode.jsで動作しています。以下は、バックエンドをすばやく立ち上げるためのガイドです:
GitHubからOpenDevinリポジトリをクローンしてください。
git clone github.com/slopD/openiv
- クローンされたディレクトリに移動してください。
cd openiv
- Condaを使用してPython環境を作成してください。
conda create -n opende python=3.11
- 環境をアクティブにします。
conda activate opende
- 必要なパッケージをインストールしてください。
pip install -r requirements.txt
- OpenAIのAPIキーとワークスペースディレクトリを設定してください。
export OPENAI_API_KEY="your_api_key_here" export WORKSPACE_DIR="/path/to/workspace"
- システムにDockerがインストールされ、実行されていることを確認してください。これはOpenDevinサンドボックス環境を実行するために重要です。
- 最新のサンドボックスイメージを取得してください。
docker pull ghcr.io/opendevin/sandbox
- ポート3000でOpenDevinバックエンドサーバーを起動してください。
uvicorn opendevin.server.listen:app - port 3000
フロントエンドの設定
バックエンドが実行されている状態で、次はフロントエンドの設定を行います:
- 新しいターミナルウィンドウでフロントエンドディレクトリに移動します。
- システムにNode.jsがインストールされていることを確認します。インストールされていない場合は、Node.js からダウンロードしてインストールします。
- フロントエンドの依存関係をインストールします。
npm install
- フロントエンドサーバーを起動します。ポート3001で実行されます。
npm start
フロントエンドが起動したら、localhost:3001でOpenDevinにアクセスして、AIソフトウェアエンジニアとやり取りを始めることができます。
OpenDevinを使用して最初のタスクを実行する
OpenDevinをテストして、簡単なタスクを実行することで機能を確認しましょう。
- OpenDevinのインタフェースで、モデルを選択または入力します。この例では、GPT-4を使用します。
- タスクを割り当てます。例えば、「最初の5つの偶数を出力するPythonプログラムを作成してください」と依頼することができます。
- OpenDevinがタスクを遂行するためにターミナルとコードエディタを使用する様子を見ます。
AIが自動的にエラーを修正しながら、コーディングから実行までのプロセスがリアルタイムで展開されるのをご覧いただけます。
上級タスク:スネークゲームの作成
より複雑な例として、PythonとPygameを使用してスネークゲームを作成するようにOpenDevinに依頼しましょう:
- 環境にPygameがインストールされていることを確認してください:
pip install pygame
- タスクを割り当てる: "Pygameを使用してPythonでヘビのゲームを作成する。"
- OpenDevinが必要なパッケージをインストールし、ゲームの構造を計画し、コードを書く進捗状況をフォローします。
完了したら、ゲームコードはワークスペースディレクトリにあり、実行およびプレイの準備ができています。
次のステップ
OpenDevinが進化し続ける中、さらなる機能や統合が期待され、それは現代の開発者ツールキットの欠かせない部分になるでしょう。ですので、OpenDevinを使って実験を始め、可能性が無限大のコード作成の新しい時代を発見してください。
GitHubサイトから:インストール、実装方法
インストール
まず、最新のサンドボックスイメージをこちらから取得してください。
docker pull ghcr.io/opendevin/sandbox
注意: dockerをsudoなしで実行できる必要があります。
次に、config.toml.templateをconfig.tomlにコピーします。config.tomlにOpenAI APIキーを追加するか、異なるモデルの使用方法については以下を参照してください。
LLM_API_KEY="sk-..."
次に、バックエンドを開始します。
python -m pip install pipenv python -m pipenv install -v python -m pipenv shell uvicorn opendevin.server.listen:app --port 3000
pipenvがうまく動作しない場合は、次のコマンドを実行することもできます:
python -m pipenv requirements > requirements.txt && python -m pip install -r requirements.txt
その後、別の端末でフロントエンドを起動してください。
cd frontend npm install npm start
OpenDevinはlocalhost:3001で実行されているのを見ることができます。
モデルの選択
私たちはLiteLLMを使用しているため、OpenDevinをOpenAI、Claude、Geminiを含む任意の基本モデルで実行できます。LiteLLMにはプロバイダーの完全なリストがあります。
モデルを変更するには、config.tomlでLLM\_MODELとLLM\_API\_KEYを設定します。
例えば、Claudeを実行するには:
LLM_API_KEY="your-api-key" LLM_MODEL="claude-3-opus-20240229"
ローカル/カスタムモデルのベースURLも設定できます。
LLM_BASE_URL="https://localhost:3000"
ローカル/カスタムモデルのベースURLも設定できます。
LLM_EMBEDDING_MODEL="llama2" # can be "llama2", "openai", "azureopenai", or "local"
コマンドラインで実行
OpenDevinをコマンドラインから実行することができます。
PYTHONPATH=`pwd` python opendevin/main.py -d ./workspace/ -i 100 -t "Write a bash script that prints 'hello world'"
参照文献:
OpenDevin: Open Source Alternative for Devin | by MTM Suhail | Mar, 2024 | Medium
Introduction to OpenDevin: An Open Source Alternative To Devin | by M Pa | Apr, 2024 | Medium
GitHub - OpenDevin/OpenDevin: OpenDevin: Code Less, Make More
medium.com/@scholarly360/open-devin-making-an-autonomous-ai-engineer-for-exploratory-data-analysis-0082fe5127dc
AI駆動開発について興味関心があり、
ご相談があれば以下よりお問い合わせください