VS Code Continue と Geminiを使った 無料AIエディタ~使ってみた編①~

AI

導入(Introduction)

Continue(コンティニュー)とは?

Continueは、VS Code(VSコード)とJetBrains(ジェットブレインズ)向けのオープンソースの自動操縦機能(autopilot)です。これは、任意のLLM(Large Language Model、大規模言語モデル)を使ってコーディングする際の最も簡単な方法を提供します。

環境構築方法はこちら

VS Code Continue と Gemini(gemini-openai-proxy) を使った無料AIエディタ
開発者の間で、コーディング作業にChatGPTなどのAIを活用する動きが加速しています。しかし、これまではAIからの回答をコードベースに組み込むために、多くのコピーアンドペーストや編集作業が必要とされ、手間がかかっていました。そこで、VS ...

多くの開発者がコーディング中にChatGPTを使用し始めていますが、コンテキストを提供し、生成された回答をコードベースに組み込むために必要なコピー&ペーストや編集が多いため、その経験は苦痛です。Continueは、ワークフローを完了する際にIDE内でLLMがネイティブに動作することを可能にし、この苦痛を解消します。

301 Moved Permanently

主な機能(Features)

  1. ボイラープレートコードの生成(Generate Boilerplate Code)
    • cmd/ctrl + shift + Lを使用して、自然言語からボイラープレートコードを生成します。
  2. コードのリファクタリング(Refactor Code)
    • コードをハイライトし、どのようにリファクタリングするかを記述することで、エディタに変更を直接流し込むことができます。
  3. コードベースに関する高度な質問(Ask High-level Questions)
    • Continueを使用すると、関連するファイルを自動的に見つけ出し、コードベースに関する高度な質問に答えることができます。
  4. ユニットテストの生成(Generate Unit Tests)
    • 任意の関数やクラスに対して素早くユニットテストを生成します。
  5. エディタを離れずに即時回答(Immediate Answers)
    • 簡単な質問をすることで、エディタを離れることなく即座に回答を得ることができます。
  6. コンパイラーで捉えられないミスのレビュー(Review for Mistakes)
    • 現在の変更内容をレビューして、コンパイラーが捉えられないミスを指摘します。
  7. さまざまなソースへの言及(Reference Various Sources)
    • @をタイプすることで、LLMとコミュニケーションを取りながら数十種類の異なるソースを参照することができます。

コーディング中にLLM(Large Language Model、大規模言語モデル)を適切な状況で活用することで、作業の速度を上げることができます。しかし、信頼すべきではない時に信頼してしまうと、迷ったり混乱したりする原因にもなります。このページでは、Continueを使うべき場合とそうでない場合を概説します。

Continueの活用タイミング(When to use Continue)

Continueを効果的に活用できるタスクには以下のようなものがあります

労働集約的な編集(Laborious edits)

  • Continueは、検索と置換だけでは対応できない場面(例:「/edit これら全てをああするように変更してください」)で力を発揮します。

  • /edit ここでは'Union'を縦棒の代わりに使ってください

  • /edit もっと記述的な変数名を使用してください”

file

最初からのファイル作成(Writing files from scratch)

  • Reactコンポーネント、Pythonスクリプト、Shellスクリプト、Makefile、ユニットテストなどの構築を始めるのにContinueが役立ちます。

  • /edit Posthogイベントを取得するPythonスクリプトを書いてください

  • /edit シンタックスハイライトされたコード用のReactコンポーネントを追加してください

ボイラープレートの最初からの作成(Creating boilerplate from scratch)

  • 例えば、Pythonパッケージの足場を構築するのに役立ち、これには引数を整理して出力するtyper CLIアプリが含まれます。

ボイラープレートとは、特定のプログラムやアプリケーションの開発において、繰り返し使用されるコードや文書の定型文のことを意味します。

このプロセスには、プロジェクトのディレクトリ構造の作成、必要なライブラリやフレームワークの初期設定、開発に必要な各種ファイル(例えば、設定ファイル、スタイルシート、スクリプトファイルなど)の準備が含まれます。また、プロジェクト固有の設定や機能の実装に必要なテンプレートコードの作成も含まれることがあります。

最初からボイラープレートを作成することの利点は、プロジェクトの初期セットアップを迅速に行い、開発者が実際の機能開発やビジネスロジックの実装に集中できるようにすることです。また、一貫性のあるプロジェクト構造を促進し、チーム間でのコードの共有や再利用を容易にします。

  • /edit このスキーマを使って最近離脱したユーザーを取得するSQLクエリを書いてください”
  • /edit 私のホームディレクトリを/tmpにバックアップするShellスクリプトを作成してください

ハイライトしたコードの修正(Fix highlighted code)

  • コードセクションを選択した後、Continueを使ってリファクタリングを試みてください(例:「/edit この関数をこんな風に動作するように変更してください」)。

  • /edit このDigital OceanのTerraformファイルをGCPで動作するように移行してください”

  • /edit この関数を非同期に書き換えてください”

ハイライトされたコードやファイル全体について尋ねる(Ask about highlighted code or an entire file)

  • コードの動作が分からない場合は、それをハイライトして「このコードはどのように機能しますか?」と尋ねてください。

  • ページのどこでバックエンドにリクエストをすべきですか?”

  • これらのiframe間でどのように通信できますか?”

エラーについて尋ねる(Ask about errors)

  • Continueはエラー/例外を説明し、可能な解決策を提供するのにも役立ちます。ターミナルでエラー/例外に遭遇した場合、cmd+shift+r(MacOS)/ctrl+shift+r(Windows)を押して、Continueに問題を説明してもらいます。

実行すべきシェルコマンドを把握する(Figure out what shell command to run)

  • ウィンドウを切り替えて気を散らす代わりに、「8000ポートで動作しているプロセスをどうやって見つけるの?」のように尋ねることができます。

  • load_dotenvライブラリの名前は何ですか?

  • 8000ポートで動作しているプロセスをどうやって見つけますか?

さまざまなソースへの言及(Reference Various Sources)

現在執筆中....

Continueを使うべきでない時(When to not use Continue)

Continueが現時点であまり役に立たないタスクには以下のようなものがあります:

  • 深いデバッグ

コメント

タイトルとURLをコピーしました