目次

    ChatGPTとは?

    ChatGPTはOpenAIが作成した、GPT-3という言語モデルを組み込んだチャットサービスです。
    基本的にはChatGPTはユーザーが入力した内容を踏まえて、テキストベースで返事をくれます。
    なぜこれが有名になったか?ということですが、ユーザーが入力した内容について自然な文章で回答をくれること、ただ回答をくれるだけではなく比較的高度な文章作成やコード作成もやってくれることなどが挙げられます。これらの内容については後述します。

    ChatGPTで何ができるのか?

    例として以下のようなものが考えられます。

    ・料理のレシピのように、手順があるものに関して答えを返す
    =>例えば、"どうすればプログラミングスキルが向上するか?" "どうやってwebサイトを作成すれば良いか?"など

    ・キーワードを使った、新しい物語や歌詞を作成する
    =>例えば、"少女と犬が登場するストーリーを作成して" "太陽、愛という言葉が入った歌詞を作成して"など

    ・物語や長い文章を要約する

    ・ランダムなパスワードを作成する

    ・Wikipediaのように、特定の内容に対して一般的な内容を返す
    =>例えば、"バラクオバマについて教えて"、"ブルースって何?"など

    ・ReactやPythonなどのプログラミング言語を使用してコードを生成する
    =>"Reactを使用したTODOリストのアプリを作成して"、"Pythonを使ったチャットアプリを作成して"など

    他にも突き詰めていけば色々できることはあると思うのですが、テキストやコードを生成する機能がメインだということが分かります。個人的には特にクリエイティブの力が優れており、新しい物語や歌詞の作成、コードの作成などに特に力を発揮すると考えています。

    ChatGPTで何ができないのか?

    例として以下のようなものが考えられます。

    ・天気のような、リアルタイム検索が必要なものは扱えない
    =>例えば、"東京の昨日の天気は?”と聞いても、答えられない

    ・英語圏以外の情報、特に地方の情報への回答が基本的に苦手
    =>例えば、"鹿児島でおすすめのレストランを教えて"と聞くと、実際に無い店が返ってくる

    ・正確な情報が必要なものに関しての回答が間違っていることがある。特に、最新の情報を追うのが苦手
    =>例えば、"日本の現在の首相は?"や"イギリスの現在の首相は"と聞くと、間違った情報が返ってくる

    ・映画の概要について聞くと、内容が間違っていることがある
    =>例えば、"君の名は"のあらすじを教えて、と聞くと内容が微妙に異なっている

    ・個人的な意見が必要な内容について回答する
    =>例えば、愛とは何か?については答えられるが、愛についてどう思うか?と聞くと答えられない。しかも英語で返ってくる

    ・日本語で回答を入力しても、時々英語で回答が返ってくる

    ・画像などを要求しても出せない
    =>これは別のサービスにあたるため。画像生成モデルでは無いと言われる

    上記を踏まえての小括ですが、ChatGPTは基本的にはテキスト生成モデルであって、検索エンジンではありません。ですので最新の情報や正確さが要求されるものに関しての内容は一部が間違っていることもありますし、回答できないこともあります。AIを利用しているので、読み込ませているデータで推測できる内容は大体答えられますが、英語圏のサービスだけあってデータに偏りがあるような印象を受けました。

    逆に、キーワードを使ったテキスト生成や、コードの生成については厳密な正確性は不要なのでChatGPTの得意分野だと考えられます。コードは厳密に記載しないと動きませんが、生成されたコードを参考にして書き換えられるので、エンジニアとしては非常にありがたいサービスだなあと思います。

    ChatGPTの使い方(ユーザー編)

    ユーザーとしての使い方は非常にシンプルです。

    ・ChatGPTのトップページで「TRY CHATGPT」ボタンを押す

    ・ユーザー登録して使用を開始する。emailから登録もできますし、googleやmicrosoftのアカウントを使用して登録もできます。

    ChatGPTの使い方(エンジニア編)

    エンジニアとして使う場合も、すでにあるgitのリポジトリをcloneすれば他のAPIサービスと同じように簡単に使用できます。Node.jsとPythonのサンプルがあるのですが、以下はNode.jsの例を紹介します。

    1. リポジトリをクローンします
      git clone https://github.com/openai/openai-quickstart-node.git. 

    2
    . 作成されたフォルダに移動して、.envファイルを作成し、そこに生成したAPIキーをコピーします。APIキーの生成はopenAIのサイトで簡単にできるので、リンクを貼っておきますhttps://platform.openai.com/docs/quickstart/build-your-application
    cd openai-quickstart-node
    cp .env.example .env

    3. 作成されたアプリを動かしてください。こちらはreactのアプリとなるので、先のnode moduleのインストールが必要になります

    npm install
    npm run dev

    以下が実際のアプリで、動物の名前を生成してくれるシンプルなものとなっています。

    以下がフォルダ構成です。自動でここまで作ってくれるのは素晴らしいですね。

    メインのコードはgenerate.js内にあるので一部抜粋して紹介します。
    以下がユーザーに入力してもらうパートになるので、もしanimalの内容を変えれば、生成内容も合わせて変えることができます。これらを利用して、アプリ内に質問への回答機能も付けられそうです。
     const animal = req.body.animal || '';
      if (animal.trim().length === 0) {
        res.status(400).json({
          error: {
            message: "Please enter a valid animal",
          }
        });
        return;
      }
    
      try {
        const completion = await openai.createCompletion({
          model: "text-davinci-003",
          prompt: generatePrompt(animal),
          temperature: 0.6,
        });
        res.status(200).json({ result: completion.data.choices[0].text });
      }
    
    
    
    function generatePrompt(animal) {
      const capitalizedAnimal =
        animal[0].toUpperCase() + animal.slice(1).toLowerCase();
      return `Suggest three names for an animal that is a superhero.
    
    
    Animal: Cat
    Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline
    Animal: Dog
    Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot
    Animal: ${capitalizedAnimal}
    Names:`;

    まとめ

    ChatGPTはテキスト生成サービスであり、そのクオリティは非常に高いと感じました。
    私見ですが、特にクリエイティブ領域において今後さらに活躍していきそうな気がします。文中でも言及した通り、明確な回答がある領域において正確な回答が来ない時があるからです。全面的に頼るのではなく、参考資料として利用して作業を効率化するのがスマートな使い方かなと思いました。

    参考資料


    ここまでお読みいただき、ありがとうございました!!
    PREV
    2023.02.10
    【業務効率化】デザイナー必見!データの整理と命名のすゝめ
    NEXT
    2023.02.10
    タスク指向UI