2つの実例で実感！GPT-4が導く技術ブログ文化の崩壊(プロンプト付き)

# はじめに
発表以降、ずっとChatGPT(GPT-4)を使って遊んでいのですが、実際にGPT-4で効率向上や創造性向上という成果を上げられるようになってきました。そこで今回は、技術ブログにおけるGPT-4の圧倒的実力というテーマでお話しします。特に技術ブログ界隈に対しては「圧倒的」と言っていいレベルだと思っています。私が技術ブログで試した実例2例を通して、皆さんにもGPT-4の圧倒的な実力を感じてもらえれば幸いです。

ちなみにタイトルがかなり煽り気味ですが、**結構本気で今の技術ブログ文化は一度ぶっ壊れると思っています**。詳しくは本文で述べますが、GPT-4で死ぬほど記事を書くのが楽になることで、技術ブログ界隈の生態系が大きく変容すると思われます。再構築された技術ブログ文化場どうなるかわかりませんが、とりあえず個人的には「みんな積極的にGPT-4使って変化に対応しようぜ！」という考えです。


# GPT-4本当はヤバくないんじゃないの？
前回、[GPT-4に関する記事](https://zenn.dev/mossan_hoshi/articles/20230321_gpt-4)ではGPT-4のすごさについて話しましたが、最近ネットを見ていると「本当にGPT-4はそんなにすごいのか？」と疑問に思う意見も散見されるようになりました。AI界隈でも、プロの驚きという言葉が浮上し、「皆が驚きすぎでは？」という意見も出ています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/245058fe-b716-f206-0131-505cefe4430c.png)

確かに、そういった懐疑的な見方をする人も一定数は存在するかと思います。しかし、個人的には全然冷める必要はないと思っています。なぜなら、GPT-4によって生産性が大幅に向上し、これまでできなかったようなことも可能になるからです。だからこそ、この機会にプロンプト力を磨いて、GPT-4の恩恵を享受する時期だと考えています。

とはいえ、一定数は懐疑的な人もいるかと思います。そういった人をどうやってすごさを伝えればいいのでしょうか。その場合、シンプルにGPT-4の圧倒的な能力を見せつけることが一番効果的だと思います。生産性の向上や、これまでできなかったことができるようになった成果を示すことで、GPT-4の価値を理解できるでしょう（本記事はまさにそれを実践するための記事です）

# GPT-4による技術ブログ文化への影響
GPT-4の登場によって、技術ブログ文化にも大きな影響が出ています。当初からGPT-4が技術ブログに与える影響について様々な意見がありました。中には、「技術ブログが衰退するのでは？」というネガティブな意見もあります。GPT-4があれば、わざわざブログにまとめる価値がなくなるという意見も出ています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/bfaad07b-d6fc-ea6c-2d2a-a30a6f43c431.png)

確かに、GPT-4がすでに知っている情報や類似の内容がネットにたくさんあるようなものを、備忘録的なブログとしてまとめる意味は減ってしまうかもしれません。しかし、逆に言えば、GPT-4を活用することで、情報発信がより容易になり、アウトプットが楽になる面もあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/942b4a55-614b-062d-7bd0-9a0458f8c67a.png)

実際、YouTubeの動画をブログ記事にまとめる際にも、GPT-4の力を借りて簡単に記事が作成できるようになっています。音声入力でテキストを作成し、そのままブログ記事にすることが可能です。これにより、思い付きやアイデアをすぐにブログ記事にすることが容易になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/9c520a03-b1f0-be91-9204-5b3eabac3da8.png)
`動画や音声を記事に起こすことができるようになりました`


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/77b957b2-8a47-ad34-f3a2-0a41bacdea43.png)
`本記事をはじめ、ちゃんとした記事が作れます(画像などは別途張る必要があります)`

## [補足] Youtubeの動画をブログ記事にまとめる方法
1. Youtubeに記事化したい動画をアップロード（非公開でもOK）
   -  1時間ぐらいすると、自動で字幕が作成されるます
  ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/19793a8f-2124-06e9-1fe9-7632bfe2ec0c.png)

  
2. 動画の再生ページから文字おこしを選択してコピー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/50fd3066-e1ec-0931-d941-f76cb195982e.png)
`選択してコピー`

3. ChatGPTでブログ化してもらう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/587f890f-04ce-c1a6-c155-506861730cf6.png)
`プロンプト例：{文字起こし原稿}が長すぎると失敗するので1小節単位ぐらいでアップするのがおすすめです`

    - プロンプト例(最初の投稿)
      ```
      以下の{文字起こし原稿}は文字起こし文章。この文章をブログ記事「GPT-4の圧倒的実力を見せつけてやんよ！！！(技術ブログ編)」の最初の小節として{制約}を守って書き直してください。

      {制約}=[
          "({文字起こし原稿}に対して7割以上の文字数にすること）",
          "原稿内に含まれない内容は記事には含めないこと"
      ]

      {見出し名}=イントロ
      {文字起こし原稿}=今日はGPT4周りのアップデートを話したいと思います発表からもうずっとチャットGPT使って遊んでいるんですが実際チャットでPTTやGPT4ですねこちらの凄さを体現できてきたのでそちらの方を話したいと~~~
      ```
      - 思ったよりも上がってきた記事の文量が短い場合がありますが、その場合は端的に次の発言で「`短すぎるので倍の長さで書き直して`」とか言えば書き直してくれます
    - プロンプト例(2回目以降の投稿)
      ```
      続く小節の原稿です。同様に処理してください

      {見出し名}=GPT-4本当はヤバくないんじゃないの？
      {文字起こし原稿}=前回GPT4の動画を出した時にですねまあやばいやばいという風な話をしていましてそれ本当にやばいのみ
      ```

GPT-4が活躍する世界では、頭の中にある書きたいことをすぐに発信できるようになるでしょう。これは特に技術力の高いエンジニアにとって魅力的です。今後、GPT-4の力を活用して発信される情報が増えることで、技術ブログ文化も変化していくことが予想されます。

# 実際GPT-4でどんだけブログ書きやすくなるか試してみた

技術ブログ界隈がGPT-4の影響を受けるという話を聞いて、実際にどれだけ効率が上がるのか試してみました。今回は2つのケースで試しています。1つ目は軽めのケース、2つ目はより本格的なケースです。

## 実際GPT-4で書いてみた①「備忘録的ブログ」
まずは1つ目のケースとして、軽めの備忘録的な技術ブログに挑戦してみました。今回は、私自身がLinuxを使っているものの、ブートローダーの仕組みについては詳しく知らないという状況で、Linuxのブートローダーの歴史についてまとめる記事をGPT-4に書かせてみました。

[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/cb58132d-9306-2c2b-b6de-38ba73adbac6.png)
*GPT-4に記事書かせて投稿してみました*](https://zenn.dev/mossan_hoshi/articles/20230323_linux_bootloader)


[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/5f55dae7-5eac-37a1-5cfe-d5e13fa2e2c3.png)
*ちゃんと書けてます*](https://zenn.dev/mossan_hoshi/articles/20230323_linux_bootloader)

プロンプトは非常にシンプルで、「`Linuxのブートローダーの歴史と最新のブートローダーの仕組みについて解説する記事の原稿を書いてください`」という依頼をしました。その結果、歴史を第1世代、第2世代、第3世代と分けて紹介し、最新版の機能も触れた記事ができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/e39314bb-26d3-39cb-5f88-f3eba930ebb2.png)
`記事を書くために使ったプロンプト`

ただし、この記事の内容は既に他の場所で書かれていることが多く、記事自体の価値はそれほど高くないと感じました。簡単な内容に関しては、GPT-4が一度のプロンプトでまとめてくれるため、こういったブログの存在価値は減っていくでしょう。

ただし、GPT-4が最新情報を知らない場合や、そのような情報をまとめる場合には、依然として価値があると考えられます。しかし、技術ブログの賞味期限は短くなっていることは間違いありません。

おまけとして、このブログのアイキャッチ画像は、AIツール「MidJourney」で作成しました。つまり、記事からアイキャッチ画像まで、すべてAIに作ってもらったわけです。このシンプルな記事の制作には、記事作成に5分、画像作成に5分と、合わせて10分ほどしかかかりませんでした。このようなシンプルな記事に関しては、今後はAIが担うことが増えるでしょう。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/e2c50e3e-5dd3-1c44-56fe-a0227d1c96f5.png)
`アイキャッチ画像はMidJourneyで作ってます`

## 実際GPT-4で書いてみた②「読みたい本」
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/29931340-2a33-f817-45ac-1735e94b6ae5.png)
`大作をサクッと作れてしまいました`](https://zenn.dev/mossan_hoshi/books/84487f17784b44)


続いては自分が読みたい本を作ってもらうというものです。先程の備忘録的な記事の延長と言えば延長ですが、学びたい内容に対して体系的にまとめ、さらにまとめ方も自分が一番理解しやすい形でまとめます。


[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/991ef116-53da-d772-ee38-31cb826d6f58.png)
`Zenn Bookとして全文無料アップロードしてます`](https://zenn.dev/mossan_hoshi/books/84487f17784b44)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/e657ab59-dedc-154a-e0bd-69788002ae43.png)
`6万字以上の大作です！！`


今回、私が実際に試してみたのは、デザインパターンというトピックです。デザインパターンとは、一般的にはギャング・オブ・フォー（GoF）のデザインパターンと呼ばれるもので、2000年頃に本で紹介された、プログラミングにおいて繰り返し現れるパターンに名前を付けてまとめたものです。特に有名なのはGoFのデザインパターンで、23種類ほどあります。

しかし、23種類ものパターンがあるため、イメージがつきにくく覚えにくいことがあります。私自身も以前に学んで覚えてはいるものの、しっかりと説明するのが難しいと感じていました。そこで、GPT-4に私にとって最も学びやすい形で情報を提供してもらうために、「デザインパターンの絵本」という本を作ってもらいました。

この本では、各デザインパターンに対して物語を作ってもらい、その中で具体的なサンプルも出してもらった上で、デザインパターンの仕組みやメリット、デメリットなどがわかりやすく、ごちゃごちゃせずに、ボリュームも適度なレベルでまとめられています。

[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/80c98e67-0fcf-0b69-c1ea-31aedad68004.png)
`書籍内のデザインパターンの例(画像はMidjourney)`](https://zenn.dev/mossan_hoshi/books/84487f17784b44/viewer/1_1_factory_method)
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/3223a499-cd44-ed44-58b0-7d6fc04bd18d.png)
`コードも含めてちゃんと書いてくれてます`](https://zenn.dev/mossan_hoshi/books/84487f17784b44/viewer/1_1_factory_method#%E3%83%95%E3%82%A1%E3%82%AF%E3%83%88%E3%83%AA%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%82%92%E7%90%86%E8%A7%A3%E3%81%99%E3%82%8B)

実際に、23種類のパターンについて、それぞれ1つ1つがブログの1記事分ぐらいのボリュームで書かれており、合計23記事分の規模があります。

これを実際にどのくらいの期間で書いたかというと、2日です！2日で23記事相当のボリュームを書きあげました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/c032f539-7b1e-b657-ec94-f4f850741645.png)
`端的にヤバいです`

作業時間はおおよそ12時間ほどでした。ただし、その12時間は、GPT-4がエラーを出し、待機していたり、画像作成に時間がかかっていたりといった理由も含まれています。もしもっと効率的に作業を進めていれば、さらに短時間で完成させることができたでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/a2938003-04d1-db50-9694-84d515f80fc5.png)
`エラーさえなければ。。。`

この23記事分のコンテンツをたった2日間で作成できました。私が手作業で書いていたら、物語を作ること自体が初めての経験であり、恐らく数ヶ月かかるレベルのものだと思います。しかし、GPT-4のおかげで2日間で完成できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/30ca750f-e235-3a70-f230-3aeb77943a88.png)
`GPT-4様様です`

もちろん、このような短期間で作成されたコンテンツの中身が本当に信頼できるのかという疑問があるでしょう。しかし、私自身も作成後にこの内容を読み進めて学ぶことができ、大きな間違いはないという認識を持っています。一部、内容が短めであることはありますが、それでも十分に理解できる範囲内です。私が書いても同程度のクオリティになると思います。

これまでの「既存の本を読んで学ぶ」という学習方法から「**一番学習しやすいコンテンツを作ってもらってそれを学ぶ**」というパラダイムシフトがあっさりと成し遂げられてしまっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/950be557-3b0d-9e51-623e-67bd8ca1aaa0.png)
`タスクに寄ると思いますが、ハマれば半端ない力を発揮します`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/5203ad5d-ea95-464a-0434-4681d50d9c4f.png)
`頭の回路を切り替えましょう`


# GPT-4で本を作る手順
私が現在やっていることは、特別なものではありません。デザインパターンの本の末尾には、この本をどのように作成したかを簡潔に説明しています。手順はとても簡単で、以下にシンプルに説明します。

## 1. ストーリー案をまとめて考えてもらう
まず、23の物語のパターンがありますが、それぞれをGPT-4に考えてもらいます。プロンプトの書き方としては、英語のデザインパターンを各デザインパターンに対して物語を作ろうと思うので、各デザインパターンでどんな物語が作れるかを大まかに30文字程度でまとめてもらいます。そして、物語の設定が重複しないように、幅を持たせてもらいます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/1d2662a4-f5ed-fe0b-7667-7bb41c4d32ad.png)
`まずストーリー案を作ってもらいます`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/d8f37504-d562-a857-8768-c3b4dec428c6.png)
`今回の時の回答`

## 2. デザインパターン毎の物語を作成
続いて、1。の結果を使って各デザインパターンの物語を作成してもらいます。
下記のテンプレートに1の結果をコピペします（各パターンごとに実行する必要があります）

- プロンプト例（パターン名="State Pattern"、設定="気分で能力が変わるスーパーヒーローの冒険")
  `GoFのデザインパターン「State Pattern」が、人間ドラマ「気分で能力が変わるスーパーヒーローの冒険」でどのように機能するかを500字のエピソードとして語ってください。仕組みがわかりやすいように、コメント付きのpythonコードも適度に設定してください。内容に応じて見出しを付けてください。文体はストーリーの内容に合わせてください。`

  - 実際作業したときは英語のほうが効率が良かったので処理をさせましたが正直日本語でも実施してもいいです。
    - 英語プロンプト例（日本語のプロンプトをDeepLで英語にしたもの）
      `Tell the story of the GoF design pattern 'State Pattern' as a 500-word episode that shows how the design pattern works in the human drama 'The adventures of a superhero whose abilities change with his mood.'. Please set some  commented python code in moderation to make it easy to understand how it works. Please add headings according to the content.The style of writing should match the content of the story.`

これだけで、先ほど見たような感じの文章を、コード付きで短時間で作成してくれます。あとはmarkdownとして成形しなおして画像等を追加すればコンテンツとしてほぼ完成です。

## 3. カバー画像の作成
最後にやることは、カバー画像やキャッシュ画像を作成することです。今回は、Midjourneyという画像生成AIを利用していますが、そのプロンプトも作成してもらいます。ストーリー用のプロンプトが出力された後、以下のようにプロンプトをGPT-4に投げます。
制約として、人名などの固有名詞を含めないことを指定します。これは、絵画にする際に固有名詞が描きづらいためです。
画面内に複数のシーンを混在させないようにすることも指定しています。
全体像から記述させているのはMidjourneyが先頭の方の文言を重視しているように感じたからです（確証はありません）

- プロンプト
  ```
  Assuming that a scene from this episode is to be represented as a painting, please provide a short description (one sentence) of the painting. However, please observe the following [Restrictions].

  [Restrictions].
  - Do not include names of people or other proper nouns.
  - Do not mix multiple scenes in the screen.
  - Please start with a general overview and describe the details step by step.
  - Please write in English.
  ```

- 意味（日本語訳）
  ```
  このエピソードの1シーンを絵画として表現することを想定し、その絵画の簡単な説明（1文）を記入してください。ただし、以下の【制限事項】をお守りください。

  【制限事項】
  - 人名などの固有名詞を含めないこと。
  - 画面内に複数のシーンを混在させないでください。
  - 全体像から始めて、段階的に詳細を記述してください。
  - 英語で書いてください。
  ```

簡単な説明文が返ってきます。それをMidjourneyに貼り付けて画像を作るだけです（ほかのツールでも普通に使えると思います。私としてはMidjourney以外ではBing Image Creatorで使い問題なく作成できました）。先頭の方に絵画のスタイルを指定すると、好みのタイプの絵が生成されますので好みでつけてもいいです（つけなくてもいいです）。今回はビジュアルノベルスタイルを指定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/8bd3c29f-36c2-190a-6825-4237a8ad5043.png)
`Midjourneyで画像生成`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/09545972-269b-cd24-6fd7-86a50e552323.png)
`生成された画像`

あとは、できた記事と画像を一緒にするだけで、物語と技術解説本がサクッと作れます。後は物語毎に繰り返すだけです。繰り返すのは少しめんどくさいですが、従来の方法で同じものを作ろうとすると何十倍も時間がかかることを考えるとそこまで苦にはならないかと思います。

さらに、出来上がった物語が気に入らなかったら、プロンプトをもう一度投げるかストーリー設定ファイルを書き換えることで、ストーリーを変更できます。また、物語とソースコードだけでなく、クラス図も欲しい場合、GPT-4にMermaid形式で出力させることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/5dca63c4-4468-c0bc-f08e-faebc0da5128.png)
*Mermaidクラス図*
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/eac9474c-9eea-5888-c029-cef4047a464a.png)
*こんなMermaidコードを出力可能*


以上、本の作り方を紹介しました。ポイントは、楽に作れることと、好き勝手に差し替えができることです。本の著者に対する属人性が薄まるため、ほかの人が同じような方法でもっと良いコンテンツを作ったらそちらに乗り換えることもできるわけです。デザインパターンの本に関しては、公開リポジトリを用意し他の人が作った物語を差し替えることもできるようにしました。これにより、コンテンツを皆で作り合うような事が容易に実現できます。

[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406339/bd38b370-8db4-e99b-97bd-b31489dead30.png)
`GitHubに公開リポジトリあります`](https://github.com/mossan-hoshi/zenn-articles-public/tree/main/books/84487f17784b44)

# まとめ
GPT-4を使って技術ブログや本を作る際には、プログラミングの技術はほとんど必要なく、日本語ができれば誰でも作ることができます。正直、効率が大幅に向上し、やらない理由が思い付きません。

技術ブログの記事化や書籍の作成にGPT-4を活用することで、AIを使わない方法に比べて効率が圧倒的に向上します。そのため、技術ブログを書く際には、AIツールを使って効率化や新しいアプローチを試すことがおすすめです。

# この記事の元の動画<br/>(もちろんGPT-4に記事化してもらいました)

<iframe width="560" height="315" src="https://www.youtube.com/embed/pOVGDcVFx9M" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>