2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VSCodeにgenieを導入してChatGPTを直感的に使用してみる

Last updated at Posted at 2023-08-03

目次

  1. はじめに
  2. ChatGPTとは
  3. VS Codeの拡張機能「ChatGPT – Genie AI」とは
  4. Genie AIのインストール
  5. Genie AIの機能を活用する
  6. おわりに

はじめに

今回はVisual studio codeの拡張機能「ChatGPT – Genie AI」の使い方について解説します。Visual studio codeのUI上でChatGPTのAPIにアクセスすることができるようになり、開発工数を大幅に削減することもできます!

スクリーンショット 2023-08-03 16.15.45.png

ChatGPTとは

ChatGPTは、OpenAIが提供する自然言語生成モデルです。GPT(Generative Pre-training Transformer)と呼ばれるモデルのアーキテクチャを採用しています。

GPTは、Transformerと呼ばれるニューラルネットワークを使用して、文書や言語処理タスクでのテキスト生成を行うモデルです。GPTは、大量のテキストデータを学習し、そのデータをもとに新しい文章を生成することができます。

ChatGPTは、GPTをもとにしたモデルであり、対話型システムやチャットボットなどで使われることを想定して開発されています。対話を続けることができるようになっており、ユーザーが入力するテキストに対して、自然で返答ができるようになっています。

VS Codeの拡張機能「ChatGPT – Genie AI」とは

Genie AIはMicrosoft社が公開している統合開発環境、Visual studio codeの拡張機能として利用でき、Visual studio code内からChatGPTのAPIにアクセスすることが可能な開発補助ツールです。

スクリーンショット 2023-08-03 16.15.45.png

コードのサンプルを作成したり、コードの解析、最適化、テストなどをChatGPTを使って実行することができます。

ChatGPTのAPIを使用するためのAPI Keyの取得方法はこちらを参考にしました。事前に済ませておいてください。

Genie AIは内部でChatGPTのAPIを使用しているため、利用には費用が発生します。
APIを使用する費用はトークン数に応じて発生し、登録時に$18分の無料クレジットが付与されます。それを超えて使用したい場合には、OpenAIのサイトで支払い情報を登録する必要があります。

Genie AIのインストール

まず、VS Codeを起動した画面左端の拡張機能をクリックします。
スクリーンショット 2023-08-03 18.15.29_01.png

赤枠の検索ウィンドウに「Genie」と入力し、検索を実行します。
スクリーンショット 2023-08-03 18.14.23.png

インストールボタンをクリックします。これでインストールは完了です。
スクリーンショット 2023-08-03 18.14.49.png

インストールが完了すると、画面左端にアラジンに登場するような魔法のランプのアイコンが表示されます。
スクリーンショット 2023-08-03 18.11.42.png

アイコンをクリックすると以下のようにGenie AIのフレームが表示されますので、「Try editor view」をクリックします。
スクリーンショット 2023-08-03 18.31.56.png

プロンプト入力欄と機能アイコンが表示されます。これでGenie AIを使用する準備が整いました。
スクリーンショット 2023-08-03 18.31.32.png

Genie AIの機能を活用する

今回はTODOを管理するアプリを実装する前提でGenie AIを使用します。
上述したプロンプト入力欄に以下のプロンプトを入力してAskをクリックします。
すると自動的にコードが生成されます。

以下が実行時の動画となります。
ezgif-4-0e28249f9b.gif

入力したプロンプト
railsで以下の処理を実装してください。

- TODOを管理する機能
- 一覧表示、登録、編集、削除を機能として持ちます

生成されたコード
# モデルを作成
rails g model Todo title:string description:text

# マイグレーションを実行
rake db:migrate

# コントローラを作成
rails g controller Todos index new create edit update destroy

# ルーティングを設定
Rails.application.routes.draw do
  resources :todos
end

# 一覧表示用のビューを作成
# app/views/todos/index.html.erb
<h1>Todo List</h1>
<ul>
  <% @todos.each do |todo| %>
    <li><%= todo.title %></li>
  <% end %>
</ul>

# 登録用のビューを作成
# app/views/todos/new.html.erb
<h1>New Todo</h1>
<%= form_for @todo do |f| %>
  <div>
    <%= f.label :title %>
    <%= f.text_field :title %>
  </div>
  <div>
    <%= f.label :description %>
    <%= f.text_area :description %>
  </div>
  <div>
    <%= f.submit %>
  </div>
<% end %>

# 編集用のビューを作成
# app/views/todos/edit.html.erb
<h1>Edit Todo</h1>
<%= form_for @todo do |f| %>
  <div>
    <%= f.label :title %>
    <%= f.text_field :title %>
  </div>
  <div>
    <%= f.label :description %>
    <%= f.text_area :description %>
  </div>
  <div>
    <%= f.submit %>
  </div>
<% end %>

# コントローラにアクションを追加
# app/controllers/todos_controller.rb
class TodosController < ApplicationController
  def index
    @todos = Todo.all
  end

  def new
    @todo = Todo.new
  end

  def create
    @todo = Todo.new(todo_params)
    if @todo.save
      redirect_to todos_path, notice: 'Todo was successfully created.'
    else
      render :new
    end
  end

  def edit
    @todo = Todo.find(params[:id])
  end

  def update
    @todo = Todo.find(params[:id])
    if @todo.update(todo_params)
      redirect_to todos_path, notice: 'Todo was successfully updated.'
    else
      render :edit
    end
  end

  def destroy
    @todo = Todo.find(params[:id])
    @todo.destroy
    redirect_to todos_path, notice: 'Todo was successfully destroyed.'
  end

  private

  def todo_params
    params.require(:todo).permit(:title, :description)
  end
end

おわりに

今回はGenie AIを導入して簡単なプロンプトを渡して生成されたコードを確認してみました。
他にもテストコードやリファクタリング後のコードを自動生成する機能を持っていますので別途使い方を書きたいと思います☆

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?