近年の生成AI技術の隆盛に伴って様々なツールが生み出されており、ソフトウェア開発の分野でも有用なツールが提供されてきました。特にプログラミング作業の支援に特化したツールによって、プログラマのさらなる開発効率の向上が期待できます。作業時間を要するプログラムコードの自動作成は大きな工数削減につながります。
生成AIで有名なChatGPTでもプログラムコードを自動生成できますが、あくまでも汎用的な回答を返す機能の一部に過ぎません。プログラミングに特化した支援ツールは、コーディングにおける様々な作業においてヒントを与えます。中でもBlackbox AIは、よく使うコードを提案したり、バグ修正の解決策を提示したりとソフトウェア開発における実装作業を多角的にサポートするツールです。
本記事では、Blackbox AIの特徴や活用できる場面を紹介していきます。
2014年 大学在学中にソフトウェア開発企業を設立
2016年 新卒でリクルートに入社 SUUMOの開発担当
2017年 開発会社Jiteraを設立
開発AIエージェント「JITERA」を開発
2024年 「Forbes 30 Under 30 Asia 2024」に選出
Blackbox AIとは?
Blackbox AIとは、プログラマが行うコーディングやデバッグなどの様々な作業をサポートするツールです。言葉で伝えることで、場面に応じた適切なコードを出力してくれるため、プログラマのコーディング作業の負担軽減につながります。
Blackbox AIには言葉を認識する機能が備わっており、プログラマの指示に従ったコードを生成してくれます。例えば、次のような機能を持っています。
- コードスニペットの生成
- コードの説明
- デバッグ作業の支援
- 変更箇所の理解
プログラミングに特化した生成AIであるため、多数のプログラミング言語で出力可能です。チャットに文字を入力して伝えるだけで、必要なコードが簡単に生成されます。日本語をはじめとした多言語での指示に対応する上に、画像やコードでの補足にも対応しています。
Blackbox AIの機能
Blackbox AIはプログラマが日常的に行う作業を支援する機能を備えたツールです。コーディング中に次に書くべきコードを提案したり、チャットで必要なコードの生成を依頼することが可能です。生成できるコードは多様なプログラミング言語に対応しており、さらに主要なフレームワークやライブラリにも対応しています。
またコード生成に限らず、デバッグにおけるバグ追跡、バージョン管理におけるコミットや変更履歴の追跡など幅広い作業を支えます。
20以上のプログラミング言語での利用が可能
Blackbox AIは20種類以上のプログラミング言語によるコード生成が可能です。また、フレームワークやライブラリ、インフラサービスにも対応しており、各製品に連携するためのコードも生成します。例えば、次のような言語やフレームワークに対応しています。
対応内容 | 具体例 |
プログラミング言語 | Python、Java、Ruby、PHP、C#、HTML/CSS、JavaScript、Swift、SQLなど |
フレームワーク、ライブラリ | React、Next.js、AngularJS、Pytorch、FastAPIなど |
インフラ、プラットフォームサービス | Azure、Google Cloud、Docker、Git、Heroku、Firebaseなど |
主要なプログラミング言語が網羅されており、よく使われるフレームワークやライブラリにも対応しているため、導入する場面は使用技術に左右されません。また、今後登場する新しい技術にも対応していく予定で、対応言語について利用者が気にする必要はありません。
コードスニペット、要素、関数の提案
コーディング中には、度々同じような関数や構文が必要になり、その都度入力しています。Blackbox AIは簡単なアルゴリズムや忘れがちなコードをすぐに提案してくれるため、コーディング作業の削減につながります。
Visual Studio Codeの拡張機能を導入することで、コーディング中にコードの提案が可能です。下記は関数「testTask」を作成している途中で、Blackbox AIから記述内容が提案されている状態を示しています。グレーの文字が提案されたコードで、1文をそのまま反映することもできますし、先頭の単語から順に反映していくことも可能です。
コードから推測される内容であれば、関数だけでなくSQL文やHTMLなどでも利用できるため、活躍の幅は広いでしょう。
質問に基づいてコードスニペットを生成
Blackbox AIはあいまいな質問をしても具体的なコードで返してくれます。どのような処理で記述するか定まっていなくても、おおよその内容が伝わる日本語を提示するだけで、出力すべきコードを自動的に判断します。
下記は、MySQLに接続するPythonコードを尋ねたときの結果です。
import mysql.connector
# Create a connection to the database
cnx = mysql.connector.connect(
host="hostname",
user="username",
password="password",
database="database_name"
)
# Create a cursor object
cursor = cnx.cursor()# Execute a query
cursor.execute("SELECT * FROM table_name")
# Fetch all rows from the last executed statement
results = cursor.fetchall()
# Print the results
for row in results:
print(row)
# Close the cursor and connection
cursor.close()
cnx.close()
細かい仕様は伝えていませんが、データベース接続、発行するSQL文、内容の表示、データベース切断までひと通りのコードが出力されています。
また、バブルソートのアルゴリズムを尋ねると下記のコードを出力しました。
def bubble_sort(arr):
n = len(arr)
# Traverse through all elements in the array
for i in range(n - 1):
# Compare adjacent elements and swap them if they are in the wrong order
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
# Test the function
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("Sorted array is:", arr)
欲しい処理内容を関数で表してくれて、さらに関数のテストコードまで提示してくれます。ここで示した例はPythonのコードですが、指定したプログラミング言語での出力が可能です。
いずれも変数宣言や関数の呼び出しを記述することなく、プログラマは与えられたコードに少し手を加えるだけで済みます。
コードの潜在的なエラーを特定し、修正の提案を行う
Blackbox AIはデバッグ作業にも活用できます。バグが発生したときは、エラーコードやメッセージを元に検索したり、公式のフォーラムなどを覗いたりして解決策を探します。Blackbox AIではチャットで尋ねることで解決策を得られます。
例えば、対象となるコードと発生したエラーコードやエラーメッセージを添えてチャットすることで、解決に向かうためのヒントを得られます。返答されるコードにはコメントや説明文が付加されているので、エラーの解消に役立ちます。
バージョンの追跡と復元
Blackbox AIはコードの変更を認識でき、バージョンを追跡が可能です。Visual Studio Codeの拡張機能と連携すれば、gitのdiffを使用してコード変更の差分を認識できます。コードの変更箇所やバージョンを認識しているため、差分に応じたコミットメッセージやバージョンタイトルの提案が行えるようになります。
コードの変更を分析してバージョンタイトルを自動生成
Blackbox AIはコードの変更内容を反映したバージョンタイトルを生成できます。バージョンタイトルはソフトウェアの変更履歴をわかりやすくするために付けるラベルです。
例えば下記のようなバージョンタイトルが出力されます。
コードの変更内容が認識できるため、機能追加やバグ修正、リファクタリングなどの種類をタイトルに反映できるようになっています。
READMEファイルの自動生成
READMEファイルはソフトウェアの使い方を示す簡単な説明書で、リリース時にソフトウェアと一緒に同梱されるテキストファイルです。導入方法やバージョン更新情報、簡単なチュートリアル、ライセンス表示などが書かれることが多いです。
Blackbox AIではREADMEファイルの作成をチャットで指示すれば、下記の内容を含むマークダウン形式のテキストが得られます。
- プロジェクト名
- 内容の説明
- インストール手順
- 使用例
- ガイドラインへの貢献
- ライセンス情報
記載内容が判断できないと簡単なサンプルが出力されますが、これをREADMEのひな型として利用することもできます。
コミットメッセージの自動生成
コミットメッセージは、コードにどのような変更を加えたのかを記録しておくためラベル付けです。バグ追跡やバージョン管理のために変更履歴を明確にする必要があり、長期間を要するソフトウェア開発にとって非常に重要な作業です。
Blackbox AIは、変更内容から自動的にコミットメッセージを提案してくれます。例えば、関数を使用する1文を追記したときには、下記のような詳細なコミットメッセージが提案されました。
Added a comment after ‘Walk the dog’ task addition in addTask() example
変更内容を具体的にメッセージに起こしてくれるため、プログラマは変更内容を記憶しておいたり、コードを見直すは必要はありません。
また変更箇所が多い場合は、より簡潔な表現で出力されます。
- ログイン機能の不具合を修正しました
- 非推奨のコードを削除しました
拡張機能:VS Code拡張機能
Blackbox AIはVisual Studio Codeの拡張機能としても提供されています。Blackbox AIのWebサイトで利用できるチャット機能が連携されるため、円滑にエディタとの行き来が可能です。拡張機能には次のような便利な機能が備わっています。
コードチャット
チャットウィンドウから直接Blackbox AIに質問することができます。
コードオートコンプリート
エディタにコード入力しているときに、次に書くべきコードを先読みして提案してくれます。コード中のコメントがあるとより精度が向上します。
AIコミットメッセージ
gitにコミットするときの入力メッセージを提案してくれます。
お気軽にご相談ください!
Blackbox AIの料金
Blackbox AIの利用プランは2024年5月時点では無料プランのみですが、それ以前は3つのプランが提供されていました。
プラン名 | 利用料金 |
GOOD DEVELOPER | 99ドル |
AWESOME DEVELOPER | 7.99ドル |
LEGENDARY DEVELOPER | 不明 |
なお、掲載している料金は2023年11月15日以前の情報であり、現在はクレジットカード登録することなく、無料でアカウント作成が可能です。もし有料プランが再開されたとしても料金が変わる可能性があることには注意してください。
GOOD DEVELOPER
GOOD DEVELOPERは基本的な機能が利用できるプランで、利用料金は月額99ドルです。例えば下記のような機能を備えています。
- コードチャット
- コードオートコンプリート
- READMEファイルの自動生成
- コミットメッセージの提案
- スニペットの保存や提案
なお、公式サイトに掲載されていた料金や提供機能などの情報が削除されていたり、時期によって料金が変わっていることもあるので注意しましょう。
AWESOME DEVELOPER
AWESOME DEVELOPERは開発者の生産性とコード品質を向上させる機能を持つプランで、利用料金は月額7.99ドルです。例えば下記のような機能を備えています。
- コードオートコンプリート
- デバッグ支援
- リファクタリングの提案
- IDEとの統合
- カスタマイズ可能なAIモデル
- コードの変更管理
- セキュリティ機能
LEGENDARY DEVELOPER
LEGENDARY DEVELOPERは高度な機能を包括的に提供するプロフェッショナル向けのプランです。利用料金の情報は不明確ですが、他のプランよりも提供機能は豊富です。このプランでは下記のような機能を備えています。
- コードオートコンプリート
- デバッグ支援
- リファクタリングの提案
- コードレビュー
- IDEとの統合
- カスタマイズ可能なAIモデル
- コードの変更管理
- セキュリティ機能
Blackbox AIのデメリット
Blackbox AIはソフトウェア開発の生産性向上に繋がる有用なツールですが、いくつかのデメリットもあります。チャットにて様々な種類のコード生成を依頼できますが、最新の技術スタックは反映されていないことがあるため、普及しているプログラミング言語やフレームワークでの利用を想定したほうがよいでしょう。また、チャットの返答には時間がかかることもあるので、気になる場合にはまとめて質問せずに小分けにするなど工夫をしてみましょう。
リアルタイムの知識に時間がかかる
Blackbox AIには多くのプログラミング言語や主要なフレームワークに対する知識が詰まっています。枯れた技術に関する知識は豊富な反面、最新の技術や話題になっているツールなど直近の情報はすぐに反映されるとは限りません。近年では数えきれないほどのツールやライブラリが提供されており、それら全ての情報を網羅してチャットの返答に反映することは難しいでしょう。
なお、チャットへの質問に対しては引用元の情報を提示してくれるため、情報の信ぴょう性を図ることはできます。たとえ新しくない情報であっても引用元のサイトを参照することで、その情報の内容を確かめることができます。
文章が長くなり生成に時間がかかる場合がある
Blackbox AIのチャットにコード生成を依頼すると、具体的なコードに加えてコメントを付加し、さらに処理内容を説明する文章まで出力されます。求めている内容が複雑になるほど、コードの行数も増えていき、それに伴ってコメントや付随する文章も増加します。そのため、チャットに入力する内容によっては、完全に出力されるまで数十秒以上待つこともあります。
ただしVisual Studio Codeに統合することで、別のコーディング作業とチャットへの質問を並行して行うなど、時間を無駄にしないような工夫を凝らすことはできるでしょう。また、質問を分割したり、必要な情報を絞ったりして返答に要する時間を減らすこともできます。
Blackbox AIの活用事例
Blackbox AIはソフトウェア開発におけるプログラマの作業をサポートするツールです。中でもコーディングやデバッグなど頻繁に行われる作業に対するツール活用は、開発生産性の向上に繋がります。以降ではデバッグ作業とコード生成におけるサポートについて具体例を交えて紹介していきます。
デバッグ作業の効率化
エラー原因を特定するためにはQ&Aサイトやコミュニティサイトで質問することがありますが、すぐに返答が返ってくることはなく、解決策に至る回答が得られない場合もあります。また、同じような事象が発生している前例を探すのも時間がかかるでしょう。
そこでBlackbox AIを活用すると、エラー原因を自分で検索したり、回答を待ったりする時間を削減できるため、デバッグ作業において大きなメリットになります。
Blackbox AIは与えられたコードからバグの原因を自動的に探し出します。例えば、下記のようにコードと発生したエラーメッセージを伝えると、解決策を提示してくれます。
エラーメッセージ
Pythonコードの次の行で「undefined variable」エラーが発生します。
対象のコード
print(x)
Blackbox AIの返答
x = 5 # define x with a value
print(x) # now x is defined, so this will print 5
基本的なコードを自動生成
Blackbox AIでは、チャット機能を使って簡潔に仕様を伝えると、具体的なコードを生成してくれます。内容によっては複数の関数にまたがるコードも出力可能です。
下記はタスク管理に必要な登録・削除・更新の関数の作成を依頼した結果、出力されたコードです。
// Array to store tasks
let tasks = [];
// Function to add a task
function addTask(task) {
tasks.push(task);
renderTasks();
}
// Function to remove a task
function removeTask(index) {
tasks.splice(index, 1);
renderTasks();
}
// Function to update a task
function updateTask(index, newTask) {
tasks[index] = newTask;
renderTasks();
}
// Function to render tasks
function renderTasks() {
const taskList = document.getElementById(‘taskList’);
taskList.innerHTML = ”;
tasks.forEach((task, index) => {
const li = document.createElement(‘li’);
li.innerHTML = `<input type=”checkbox” id=”task${index}” ${task.done ? ‘checked’ : ”}><label for=”task${index}”>${task.text}</label><button
onclick=”updateTask(${index}, ‘${prompt(‘Enter new task’)}’)”>Update</button><button onclick=”removeTask(${index})”>Remove</button>`;
taskList.appendChild(li);
const input = document.getElementById(`task${index}`);
input.addEventListener(‘change’, () => updateTask(index, {text: task.text, done: input.checked}));
});
// Example usage:
addTask({text: ‘Buy milk’, done: false});
addTask({text: ‘Walk the dog’, done: true});
細かい仕様は伝えていませんが、利用者の要求を推測して変数や処理内容が定義されており、あいまいな部分を自動的に補足する機能を持っています。また、関数の使用例を提示したり、コードにコメントを付けたりと、利用しやすいような形でコードを生成してくれます。
Blackbox AIまとめ
Blackbox AIはコーディングやデバッグなどプログラマの作業を補助するツールです。IDEと連携することでコーディング作業中に発生するコードの確認や調べものに時間を取られることなく、円滑な作業が可能になります。具体的にはリアルタイムにコードを提案したり、チャットでバグの調査を尋ねたりできます。
また、多くのプログラミング言語やフレームワーク、インフラサービスにも対応しており、様々な開発現場での活用が可能です。
AIアシスタントツールやAIを活用したシステム開発に関する質問や案件のご相談がございましたら、株式会社Jiteraまでお問い合わせください。