【Devika】たった1時間でアプリを作れるAIエージェント
Devika – Agentic AI Software Engineerは、AI技術を用いてソフトウェア開発を支援する革新的なツールです。
従来のツールとは異なり、Devikaは単にコード生成を行うのではなく、高度なAI技術を活用して、ソフトウェア開発の全工程を自動で行ってくれます。
このツールは、claude 3、GPT-4、GPT-3.5およびOllama経由でのローカルLLMの使用をサポートし、高度なAI計画と推論機能を持ち合わせており、人間の指示に従ってソフトウェア開発を行います。
そんなDevikaは現在大きな注目を集めており、GitHubでのスター数は8,300を超えています!
今回はDevikaの概要や使ってみた感想をお伝えします。
是非最後までご覧ください!
Devikaの概要
Devika – Agentic AI Software Engineerは、AI技術を活用して、ユーザーがテキストで指示を出すだけで自動でソフトウェア開発を行う革新的なツールです。
Devika は高度な AIソフトウェア エンジニアであり、人間による高レベルの指示を理解し、それをステップに分解して関連情報を調査し、所定の目的を達成するためのコードを書くことができます。
Devika は、claude 3、GPT-4、GPT-3.5およびOllama経由でのローカルLLMをサポートしており、計画と推論のアルゴリズム、Web ブラウジング機能を組み合わせることで、高度なソフトウェア開発できます。
そんなDevikaは、以下の主要なコンポーネントから成り立っています。
- ユーザー インターフェイス: Devika と対話し、プロジェクトファイルを表示してエージェントの状態を監視するためのWebベースのチャットインターフェイス。
- エージェント コア: AI の計画、推論、実行プロセスを調整する中心的なコンポーネントであり、さまざまなサブエージェントやモジュールと通信してタスクを実行します。
- 大規模な言語モデル: Devika は、自然言語の理解、生成、推論のために、Claude3、GPT-4、GPT-3.5およびOllamaを介したローカル LLMなどの最先端の言語モデルを活用します。
- 計画および推論エンジン: 高レベルの目標を実行可能なステップに分解し、現在の状況に基づいて意思決定を行います。
- 調査モジュール: キーワード抽出機能と Web ブラウジング機能を利用して、当面のタスクに関連する情報を収集します。
- コード作成モジュール: 計画、調査結果、ユーザーの要件に基づいてコードを生成します。このモジュールは複数のプログラミング言語をサポートしています。
- ブラウザインタラクションモジュール: DevikaがWebサイトで情報を抽出し、必要に応じてウェブ要素とやりとりできるようにします。
- ナレッジベース: プロジェクト固有の情報、コードスニペット、学習した知識を保存および取得して、効率的にアクセスできるようにします。
- データベース: プロジェクト データ、エージェントの状態、構成設定を保持します。
Devikaは、プロジェクトのコンテキストに基づいて最適なプログラミング言語を選択しますが、ユーザーが指定することもできます。
これらのコンポーネントを駆使して、プロセスを計画し、実行します。
また、Devikaには興味深い機能としてキーワード抽出機能があり、集中的な調査と情報収集を可能にするため、以下のようなプロセスでキーワードを抽出します。
- 前処理: 入力テキスト (目的、会話履歴、またはプロジェクトファイル) は、ストップワードの削除、トークン化、およびテキストの正規化によって前処理されます。
- キーワードの識別: Devikaは、BERTモデルを使用して、前処理されたテキストから重要なキーワードとフレーズを識別します。大規模なコーパスに対するBERTの事前トレーニングにより、意味関係を把握し、特定のコンテキストにおける単語の重要性を理解できるようになります。
- キーワード ランキング: 特定されたキーワードは、当面のタスクとの関連性と重要性に基づいてランク付けされます。 TF-IDF(Term Frequency-Inverse Document Frequency)やTextRankなどの手法を使用して、各キーワードにスコアを割り当てます。
- キーワードの選択: 上位にランク付けされたキーワードが、現在のコンテキストに最も関連性があり有益なものとして選択されます。これらのキーワードは、調査と情報収集のプロセスをガイドするために使用されます。
このようにして、文脈上関連するキーワードを抽出することにより、タスクの完了に役立つ関連情報を取得できます。
より詳細な情報は、以下のReadmeをご覧ください。
ここからはDevikaの実装方法を解説し、実際に使ってみようと思います。
なお、データ分析特化型AiエージェントのData Interpreterについて知りたい方はこちらの記事をご覧ください。
→【Data Interpreter】Devinをも凌ぐMetaGPTのデータ分析AIエージェント
Devikaのライセンス
Devikaは、MITライセンスのもとで提供されており、無料で商用利用することが可能です。
利用用途 | 可否 |
---|---|
商用利用 | ⭕️ |
改変 | ⭕️ |
配布 | ⭕️ |
特許使用 | 記載なし |
私的使用 | ⭕️ |
Devikaの使い方
Devikaの実装方法は2種類公開されています。
方法1
基本的にはこちらの方法で実装することをお勧めします。
こちらの方法では、以下の依存関係をインストールする必要があります。
- bun (https://bun.sh/)
- Ollama (https://ollama.com/ )
インストールが完了したら、まずはGitHubリポジトリをクローンして、devikaディレクトリに移動します。
git clone https://github.com/stitionai/devika.git
cd devika
次に依存関係をインストールする前に、仮想環境を作成することをお勧めします。
conda create -n devika python=3.11 -y
conda activate devika
仮想環境を作成できたら、以下のコマンドで依存関係をインストールします。
pip install -r requirements.txt
playwright install --with-deps # installs browsers in playwright (and their deps) if required
ここまで完了したら、config.tomlに自分のAPIキーを設定しましょう。
次に、Devikaサーバーを起動します。
python3 devika.py
最後に、別のターミナルを開き、以下のコマンドを順に実行します。
cd ui
bun install
bun run dev
ここまで完了したら、ブラウザでhttp://127.0.0.1:3000にアクセスすることで、Devika Webインターフェイスを使用できます。
方法2
この方法では以下の依存関係をインストールする必要があります。
- uv(https://github.com/astral-sh/uv)
- bun (https://bun.sh/)
- Ollama (https://ollama.com/ )
それぞれリンク先を参考にしてダウンロード、インストールしてください。
インストールが完了したら、以下のコマンドを順に実行してください。
ollama serve
git clone https://github.com/stitionai/devika.git
cd devika/
uv venv
uv pip install -r requirements.txt
cd ui/
bun install
bun run dev
cd ..
python3 devika.py
こちらもconfig.tomlにAPIキーを忘れずに設定してください。
これでDevikaの実装は完了です。
私は、1番の方法で実装し、以下の画面になりました。
右上のselet modelでモデルを選択でき、左下のテキストボックスに指示を入力することで、devikaが推論を開始します。
新しいプロジェクトを作成し、GPT-4 turboを選択して以下のプロンプトを入力してみましょう。
Write me a calculator app
電卓アプリを作成して
しかし、いくら待っても応答が返ってきません。
そこで、GitHubのissueで解決方法を探したところ、同様の問題が発生している方が大勢おり、解決していない方が大半でしたが、以下のissueを参考にMessageInput.svelteにあるhandleSendMessage関数を修正することで、無事に応答が返ってくるようになりました。
このように無事に出力が返ってくるようになりました。
Great! I'll outline a plan for developing a simple yet functional calculator app. This includes everything from initial setup to final testing.
素晴らしい!シンプルで機能的な電卓アプリの開発計画の概要を説明します。初期設定から最終テストまで、すべてを含みます。
Here's my step-by-step plan:
Step 1: Define the project scope and requirements, including the core functionalities needed in the calculator app.
Step 2: Choose the programming language and framework appropriate for the development. Considering a web app, JavaScript along with HTML and CSS would be suitable.
Step 3: Set up the development environment, including any IDEs (Integrated Development Environment), libraries, and tools needed for the project.
Step 4: Sketch out the UI/UX design for the calculator, focusing on simplicity and ease of use. Tools like Figma or Adobe XD can be used for this purpose.
Step 5: Translate the design into code by creating the HTML structure, styling with CSS, and implementing functionalities with JavaScript.
Step 6: Implement the basic arithmetic functions (addition, subtraction, multiplication, and division) in JavaScript.
Step 7: Incorporate error handling to manage cases such as division by zero.
Step 8: Test the calculator app thoroughly in different browsers to ensure compatibility and responsiveness.
Step 9: Deploy the calculator app on a suitable platform or server if it's a web app. GitHub Pages could be a straightforward option for deployment.
Step 10: Collect feedback from users and stakeholders, and make necessary adjustments or improvements based on the feedback.
Step 11: Document the development process, challenges faced, and solutions implemented. Also, provide user instructions as needed.
これが私のステップバイステップの計画です:
ステップ1:電卓アプリに必要なコア機能を含め、プロジェクトの範囲と要件を定義します。
ステップ2:開発に適したプログラミング言語とフレームワークを選択する。ウェブアプリを考えると、JavaScriptとHTML、CSSが適している。
ステップ3:プロジェクトに必要なIDE(統合開発環境)、ライブラリ、ツールなどの開発環境をセットアップする。
ステップ4: シンプルさと使いやすさを重視して、電卓のUI/UXデザインをスケッチする。この目的には、FigmaやAdobe XDなどのツールを使用できます。
ステップ5: HTML構造を作成し、CSSでスタイルを設定し、JavaScriptで機能を実装することで、デザインをコードに変換します。
ステップ6:JavaScriptで基本的な算術関数(加算、減算、乗算、除算)を実装する。
ステップ7:ゼロ除算などのエラー処理を組み込む。
ステップ8: 互換性と応答性を確保するために、さまざまなブラウザで電卓アプリを徹底的にテストします。
ステップ9:電卓アプリを適切なプラットフォームやサーバー(ウェブアプリの場合)にデプロイします。GitHub Pagesは、デプロイのための簡単なオプションです。
ステップ10: ユーザーや関係者からのフィードバックを収集し、それに基づいて必要な調整や改善を行う。
ステップ11:開発プロセス、直面した課題、実施した解決策を文書化する。また、必要に応じてユーザーへの説明も行う。
I am browsing the web to research the following queries: . If I need anything, I will make sure to ask you.
以下のクエリについて調べるためにウェブを見ています。何か必要なことがあれば、必ずお尋ねします。
ここまでは順調でしたが、必要な情報をインターネットで検索するフェーズで応答が止まってしまい、先に進まなくなってしまいました。
なんど試しても同じところで止まってしまいます。
原因は不明で、こちらもGitHubのissueで同様の問題に直面している方が多くいますが、具体的な解決策は示されていません。
ですが、issueの中でBing search API keyを取得して設定すれば機能するとの情報があったので試しましたが、結果は同じところで止まってしまいました。
完全に行き詰まってしまったため、今回はここまでで、具体的な解決策が判明しだい解決策と続きを追記します。
なお、最強のAIエージェントであるOpen Interpreter 0.2.0について知りたい方はこちらの記事をご覧ください。
→【Open Interpreter 0.2.0】ついに来た…PCをGUIで操作できるようになった最強AIエージェントを使ってみた
Devikaでソフトウェア開発を効率化しよう!
Devika – Agentic AI Software Engineerは、AI技術を活用してソフトウェア開発を革新するツールです。
Devika は高度な AIソフトウェア エンジニアであり、人間による高レベルの指示を理解し、それをステップに分解して関連情報を調査し、所定の目的を達成するためのコードを書くことができます。
Devika は、claude 3、GPT-4、GPT-3.5およびOllama経由でのローカルLLMをサポートしており、計画と推論のアルゴリズム、Web ブラウジング機能を組み合わせることで、高度なソフトウェア開発できます。
ただ、まだまだ開発中のツールということもあり、動作は不安定で、起動できなかったり、途中で応答が止まってしまうといったことも多々発生するようです。
問題が解決次第、追記しますがもし気になった方はご自身でも試してみてください!
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、サービス紹介資料もご用意しておりますので、併せてご確認ください。