VSCode で使える AI によるコード補完ツール「Tabnine」


こんにちは、Gaji-Labo アシスタントエンジニアの石垣です。

今回は、普段自分が VSCode で使っている、AIによってコード補完をしてくれる拡張機能「Tabnine」をご紹介したいと思います。

Tabnineとは?

Tabnine は VSCode などのエディタや IDE で使用できる AI によるコード補完ツールです。

コードを打ち始めるだけで、候補となるコードを予測してサジェストとして表示してくれます。

導入は公式サイトから拡張機能をインストールして行います。

初回はアカウントの作成が必要になりますが、他には特に設定することなく使い始めることが出来ます。

実際に使ってみる

Tabnine を有効にして簡単な React コンポーネントを実装してみます。

Tabnine の補完機能を用いてReactコンポーネントを実装している様子のキャプチャ

実際に書き始めてみるとあたかも書こうとしているコードを予測するようにサジェストされ、補完が効くようになります。これは便利!

Tabnine の補完するデータについて

Tabnine provides AI code completions using two sources: (1) A Public Code model that has been trained on open-source code. (2) A Team Learning model trained on you and your team’s code and local interactions with Tabnine.

https://www.tabnine.com/code-privacy

公式によると Tabnine のデータは、 (1) オープンソースで公開されているコードで学習したパブリックコードモデルと (2) 自分(と自分のチーム)が Tabnine 導入後に書いたコードをローカルで学習したラーニングモデルの2つを用いているようです。

Tabnine NEVER stores or shares any of your code. Any action that shares your code with the Tabnine servers for the purpose of training team models requires explicit opt-in. Tabnine does not retain any user code beyond the immediate time frame required for training models. Any team model created by Tabnine is only accessible by your team members.

https://www.tabnine.com/code-privacy

2つ目の自分が書いたコードに関して Tabnine が保存・共有することは無く、チームモデルのトレーニングを目的として自分が書いたコードをタブナインサーバーと共有する場合は明示的なオプトインが必要であると明記されているので安心して使うことができそうです。

おわりに

今回は、普段自分が VSCode で使っている、AIによってコード補完をしてくれる拡張機能「Tabnine」をご紹介しました。

AIによるコーディング支援機能は GitHub Copilot など他にも様々なものが日々登場していますが、それらをしっかり理解し補助的に使いこなすことでよりよいコードを効率的に書けるようになるのではないかなと思っています。

今後も機会があればこういった支援機能を紹介していきたいと思います。

Gaji-Laboでは、React経験が豊富なフロントエンドエンジニアを募集しています

弊社ではReactの知見で事業作りに貢献したいフロントエンドエンジニアを募集しています。大きな制作会社や事業会社とはひと味もふた味も違うGaji-Laboを味わいに来ませんか?

もちろん、一緒にお仕事をしてくださるパートナーさんも随時募集中です。まずはお気軽に声をかけてください。お仕事お問い合わせや採用への応募、共に大歓迎です!

求人応募してみる!

タグ


投稿者 Ishigaki Shotaro

未経験から Gaji-Labo に入社。現在は React/TypeScript/Next.js の案件で MUI を使ったコンポーネント組み込みを担当。プロジェクトチームのリードとして共に組み込み作業をしているメンバーの進行管理も行っています。休日はだいたい家で音楽を聴いており、たまにライブに出かけています。