MENU
やすひら
やすひらと申します。
長靴を履いたタヌキ(ITエンジニア)です。
モノ作りの楽しさを発信中。
X(旧Twitter)のフォローもお願いします。

[人工知能]生成AIの概要と活用方法

生成AIとは、テキストや画像等の様々なコンテンツを生成することができるAIです。
生成AIは、様々な用途で利用することができるため、ビジネスでも注目されている技術です。

やすひら

生成AIの概要と活用方法を紹介します

この記事でわかること
  • 生成AIとは
  • 生成AIで生成できるもの
  • 生成AIで利用している技術
  • 生成AIのサービス
  • 生成AIの使い方
目次

生成AIとは

生成AI(ジェネレーティブAI)とは、プロンプトと呼ばれる入力データからコンテンツを生成することができる人工知能の一種です。
生成AIでは、様々なジャンルのコンテンツを生成することができます。

生成AIでできること

生成AIで生成可能なモノについて、紹介します。

テキスト生成

生成AIは文章を生成することができます。
チャットボットによる対話、記事の自動生成、詩や小説の執筆など、日常的なテキストの生成から、クリエイティブなテキストの生成まで可能です。

あなたは最高の小説家です。
以下の内容で小説を作成してください。

# 主人公
– やすひら
– 長靴を履いたタヌキ

# ストーリー
– やすひらは山に住んでいた
– 山から都会に下りて長靴とパソコンを購入した
– パソコンを使ってプログラミングを勉強した
– エンジニアとして活躍した

タイトル: 長靴を履いたタヌキ、やすひらの冒険

やすひらは、緑豊かな山の中で一人暮らしをしていたタヌキだった。彼の住む山は四季折々の美しい風景に包まれていて、春には桜が咲き誇り、夏にはせせらぎの音が心地よい涼を届けてくれた。秋には紅葉が山を彩り、冬には真っ白な雪が降り積もる。しかし、やすひらにはずっと心に秘めている夢があった。それは都会での生活だった。

「一度でいいから、あの都会という場所を見てみたい。」

ある日、やすひらはふと思い立って都会に下りることを決意した。彼は都会の生活に憧れを抱き、そこで何か新しいことを始めたいと考えていたのだ。やすひらは旅支度をし、大切にしている長靴を履いて山を下りる準備を整えた。

やすひらが都会に到着すると、彼の目には初めて見る景色が広がっていた。高層ビルが立ち並び、人々は忙しそうに行き交い、車の音や様々な機械音が響き渡っている。少し怖いと思ったが、それ以上に心が躍っていた。

「さて、まずは長靴を買い替えよう!」

都会の商店街を歩き回り、やすひらは新しい長靴を探した。彼の古い長靴は山での生活でボロボロになっていたのだ。都会の靴屋に入り、新品の黒い長靴を見つけた。足を通してみると、ちょうどぴったりだった。やすひらはすぐにその長靴を買い求め、次の目的地に向かうことにした。

「次は…パソコンだ!」

やすひらはパソコンというものに興味を持っていた。山では見たことも使ったこともなかったが、都会ではパソコンが便利で重要な道具だと聞いていた。電気店に入り、店員の説明を受けながら、やすひらは初心者向けのパソコンを手に入れた。店員からは「インターネットが使えるから、これで何でも調べられるよ」と言われた。やすひらはインターネットという言葉に少し戸惑ったが、とにかくパソコンを手に入れたことに喜びを感じていた。

パソコンを手に入れたやすひらは、早速都会のカフェに入り、パソコンを開いてみた。しかし、何から始めればいいのか全くわからない。そんなとき、隣の席に座っていた若い男性が声をかけてきた。

「初めてのパソコンですか?」

やすひらは少し恥ずかしそうにうなずいた。男性は優しく微笑んで、やすひらに基本的な使い方を教えてくれた。その中で「プログラミング」という言葉が出てきた。やすひらは興味津々でその言葉を覚えた。

「プログラミングって何ですか?」

「それはね、パソコンに指示を与えて、いろんな動きをさせることなんだ。例えば、ゲームを作ったり、ウェブサイトを作ったり…」

やすひらの目が輝いた。彼はプログラミングを学んで、都会で何か新しいことを始めたいという思いを強くした。そこでやすひらは、毎日カフェに通いながらパソコンと向き合い、プログラミングの勉強を始めた。

やすひらは日々努力を重ね、次第にプログラミングの技術を身につけていった。初めは難しく感じたが、インターネットで情報を検索し、オンラインの無料講座を受けることで、少しずつ理解できるようになった。彼の学びの姿勢はとても真剣で、周りの人々からも応援されるようになった。

半年が過ぎた頃、やすひらは小さなアプリケーションを自分で作ることができるようになった。そのアプリは、都会の生活に役立つような、簡単な地図アプリだった。やすひらは自分の作ったアプリをインターネットに公開し、都会の人々に使ってもらえるようにした。

すると、驚いたことに、そのアプリは都会の人々から大変好評を得た。やすひらのアプリは使いやすく、デザインもシンプルでわかりやすいと評判になったのだ。彼のもとには感謝のメールが届くようになり、やすひらはますますプログラミングにのめり込んでいった。

その後もやすひらはさまざまなアプリを開発し、ついには都会のIT企業からスカウトされるまでになった。彼は山で育ったタヌキでありながら、その才能と努力によって一流のエンジニアとして認められたのだった。

やすひらは、山の自然と都会の技術を結びつけるような、新しい発想のアプリケーションを次々と生み出し、都会での生活を楽しみながらエンジニアとしてのキャリアを築いていった。

やすひらの長靴は、いつも彼の足元を支えていた。どんなに都会で忙しくなっても、彼は毎日その長靴を履いて出かけた。長靴を履いたタヌキ、やすひらの物語は、これからも続いていく。彼の冒険心と学び続ける姿勢は、きっと新しい未来を切り開くに違いない。

こうして、山から都会に下りたタヌキ、やすひらの冒険は、彼が望んだ以上に素晴らしいものとなった。彼の物語は、勇気を持って新しいことに挑戦する全ての人々に勇気を与えるだろう。

小説などのクリエイティブな文章を生成することも可能です。

画像生成

生成AIは、画像を生成することができます。
キャラクターデザインの作成、写真のような画像の生成、アイコンの生成などが可能です。

絵画を描くタヌキ

現実にはありえない画像を生成することも可能です。

ソースコードの生成

生成AIは、ソースコードの生成にも利用されています。
開発者のコーディング効率を大幅に向上させることが可能です。

あなたは最高のエンジニアです。
サイコロを振るサンプルプログラムをPythonで作成してください。

サイコロを振るシンプルなPythonプログラムを以下に示します。このプログラムは、ランダムに1から6までの数字を生成し、サイコロを振るシミュレーションを行います。

import random

def roll_dice():
    # 1から6までのランダムな整数を生成
    return random.randint(1, 6)

# サイコロを振る
dice_result = roll_dice()
print(f"サイコロの結果: {dice_result}")

プログラムの解説

  1. import random: Pythonの標準ライブラリであるrandomモジュールをインポートします。このモジュールには、乱数を生成するための関数が含まれています。
  2. def roll_dice(): roll_diceという関数を定義します。この関数はサイコロを振るシミュレーションを行い、1から6までのランダムな整数を返します。
  3. random.randint(1, 6): randomモジュールのrandint関数を使って、1から6までのランダムな整数を生成します。これがサイコロを振ったときの結果に相当します。
  4. dice_result = roll_dice(): roll_dice関数を呼び出して、サイコロの結果を取得し、dice_result変数に格納します。
  5. print(f”サイコロの結果: {dice_result}”): サイコロの結果を表示します。

実行方法

このプログラムをPython環境(例えば、PythonのインタープリタやJupyter Notebookなど)で実行すると、1から6までのランダムな数が生成され、サイコロを振った結果として表示されます。

このサンプルプログラムを改良して、サイコロを複数回振る、あるいは複数のサイコロを振る機能を追加することもできます。例えば、ユーザーに何回サイコロを振りたいかを入力してもらい、その回数分サイコロを振ることも可能です。

プロンプトで指定した内容のソースコードを生成することができます。
数秒で生成できるので、プログラミングの生産性が格段に向上します。

生成AIの仕組み

生成AIの仕組みを紹介します。

Transfomer

Transfomerを用いた生成AIの仕組みを紹介します。
Transfomerは、入力データのテキストデータを、トークンに分解して、回答のテキストデータや画像、ソースコードなどを生成することができます。
トークンに分解して処理できるため、文脈含めて解析することができ、自然な出力データを生成することができます。

大規模言語モデル(LLM)

大規模言語モデル(LLM:Large Language Model)は、膨大なテキストデータを利用して学習したニューラルネットワークのモデルです。
大量のテキストデータを学習することで、文脈を解析したり、テキストからコンテンツを生成する能力を具備します。

生成AIのサービス

生成AIを提供している代表的なサービスを紹介します。

サービステキスト画像動画検索
ChatGPT
Claude
Gemini
Copilot
Llama
Perplexity
Midjourney
Stable Diffusion

ChatGPT

ChatGPTは、OpenAI社が提供する、対話型の生成AIです。
生成AIを対話形式で利用することができます。

できること備考
文章の生成テキスト情報を生成することができます
文章の要約長文を要約することができます
文章の校正文章の誤りをチェックすることができます
翻訳外国語を翻訳することができます
プログラミング指示した内容のソースコードを生成できます
画像生成DALL-Eというモデルを利用して画像を生成できます

Claude

Claudeは、Anthropic社が提供する、対話型の生成AIです。
生成AIを対話形式で利用することができます。

できること備考
文章の生成テキスト情報を生成することができます
文章の要約長文を要約することができます
文章の校正文章の誤りをチェックすることができます
翻訳外国語を翻訳することができます
プログラミング指示した内容のソースコードを生成できます
情報の可視化図解やスライドを生成できます

Gemini

Geminiは、Google社が提供する生成AIです。
生成AIを対話形式で利用することができます。
Google社が提供するGmai/GoogleMap等の各種サービスと連携することができるのも特徴の1つです。

できること備考
文章の生成テキスト情報を生成することができます
文章の要約長文を要約することができます
文章の校正文章の誤りをチェックすることができます
翻訳外国語を翻訳することができます
プログラミング指示した内容のソースコードを生成できます
Webページの要約URL指定でWebページの要約ができます
Googleサービス連携Googleの各種サービスと連携できます

Copilot

Copilotは、Microsoft社が提供する生成AIです。
生成AIを対話形式で利用することができます。
AIモデルは、ChatGPTのGPTをもとに開発しています。
Microsoftが提供するWord/Excel/PowerPointのアプリ上でも利用することができます。

できること備考
文章の生成テキスト情報を生成することができます
文章の要約長文を要約することができます
文章の校正文章の誤りをチェックすることができます
翻訳外国語を翻訳することができます
プログラミング指示した内容のソースコードを生成できます
画像生成DALL-Eというモデルを利用して画像を生成できます
Microsoftアプリ連携Microsoftの各種アプリと連携できます

Llama

Llamaは、Meta社が提供する生成AIです。
生成AIを対話形式で利用することができます。
LlamaはGithubで公開されており、無料で利用することができます。

できること備考
文章の生成テキスト情報を生成することができます
文章の要約長文を要約することができます
文章の校正文章の誤りをチェックすることができます
翻訳外国語を翻訳することができます
プログラミング指示した内容のソースコードを生成できます

Perplexity

Perplexityは、AI搭載の検索エンジンです。
生成AIを対話形式で利用することができます。
リアルタイム情報を取得できることが最大の特徴です。

できること備考
Web検索情報ソースありでWeb検索の結果を生成できます
画像検索画像検索を自然言語で検索できます
動画検索動画検索を自然言語で検索できます

Midjourney

Midjourneyは画像生成ができる生成AIです。
プロンプトと呼ばれる入力テキストをもとに画像を生成できます。
コミュニケーションツールのDiscordを利用してプロンプトを入力します。

できること備考
画像生成プロンプトから画像を生成できます

Stable Diffusion

Stable Diffusionは画像生成ができる生成AIです。
プロンプトと呼ばれる入力テキストをもとに画像を生成できます。
オープンソースのため無料で利用することができます。
環境構築が必要ですが、ローカルコンピューターにインストールして利用することも可能です。

できること備考
画像生成プロンプトから画像を生成できます

生成AIの活用例

生成AIを用いた活用法を紹介します。
本記事では、主に筆者の生成AIの活用法のを紹介します。

ソースコードの生成

ソースコードの作成に、生成AIを利用しています。
処理内容をプロンプトとして、ソースコードを生成することができます。

生成AIがない時代は、書籍やWeb検索でサンプルプログラムを調査したり、他エンジニアのソースコードを参考にしたりして、試行錯誤しながらプログラミングを行っていました。
生成AIの登場により、処理内容をプロンプトとして入力することで、数秒でソースコードが生成できるようになりました。
完璧なソースコードの生成や、複雑な処理の実装は難しい場合があるので、手動でソースコードを修正する必要はありますが、ゼロから作成するよりは、爆発的に生産性が向上しました。

あなたは最高のエンジニアです。
サイコロを振るサンプルプログラムをPythonで作成してください。

サイコロを振るシンプルなPythonプログラムを以下に示します。このプログラムは、ランダムに1から6までの数字を生成し、サイコロを振るシミュレーションを行います。

import random

def roll_dice():
    # 1から6までのランダムな整数を生成
    return random.randint(1, 6)

# サイコロを振る
dice_result = roll_dice()
print(f"サイコロの結果: {dice_result}")

プログラムの解説

  1. import random: Pythonの標準ライブラリであるrandomモジュールをインポートします。このモジュールには、乱数を生成するための関数が含まれています。
  2. def roll_dice(): roll_diceという関数を定義します。この関数はサイコロを振るシミュレーションを行い、1から6までのランダムな整数を返します。
  3. random.randint(1, 6): randomモジュールのrandint関数を使って、1から6までのランダムな整数を生成します。これがサイコロを振ったときの結果に相当します。
  4. dice_result = roll_dice(): roll_dice関数を呼び出して、サイコロの結果を取得し、dice_result変数に格納します。
  5. print(f”サイコロの結果: {dice_result}”): サイコロの結果を表示します。

実行方法

このプログラムをPython環境(例えば、PythonのインタープリタやJupyter Notebookなど)で実行すると、1から6までのランダムな数が生成され、サイコロを振った結果として表示されます。

このサンプルプログラムを改良して、サイコロを複数回振る、あるいは複数のサイコロを振る機能を追加することもできます。例えば、ユーザーに何回サイコロを振りたいかを入力してもらい、その回数分サイコロを振ることも可能です。

プロンプトで指定した内容のソースコードを生成することができます。
数秒で生成できるので、プログラミングの生産性が格段に向上します。

ソースコードの解析

ソースコードを解析して、処理内容を解説してもらうことも可能です。
ソースコードから処理の内容を知るためには、コードを1行ずつ確認していく必要がありますが、生成AIを利用すれば、自然言語でソースコードの内容を解説してくれます。

あなたは最高のエンジニアです。
以下のソースコードを解析して解説してください。

# ソースコード
import random
def roll_dice():
# 1から6までのランダムな整数を生成
return random.randint(1, 6)

# サイコロを振る
dice_result = roll_dice()
print(f”サイコロの結果: {dice_result}”)

このソースコードは、Pythonを使用してサイコロを振るシミュレーションを行う簡単なプログラムです。以下にコードの各部分について詳細に解説します。

import random
def roll_dice():
    # 1から6までのランダムな整数を生成
    return random.randint(1, 6)

# サイコロを振る
dice_result = roll_dice()
print(f"サイコロの結果: {dice_result}")

コードの詳細解説

1.import random:
randomモジュールをインポートしています。このモジュールはPythonの標準ライブラリの一部であり、乱数の生成をサポートするさまざまな関数を提供します。ここでは、サイコロの目をランダムに生成するために使用されています。

2.def roll_dice()::
roll_diceという名前の関数を定義しています。この関数は、サイコロを振るシミュレーションを行い、1から6までのランダムな整数(サイコロの目)を返します。

3.random.randint(1, 6):
randomモジュールのrandint関数を使用して、1から6までの整数をランダムに生成します。randint(a, b)は、aからbの間のすべての整数の中からランダムに1つの整数を返します。この場合、1から6までの範囲でランダムな数が生成されるため、サイコロの目に相当します。

4.return random.randint(1, 6):
生成されたランダムな整数を返します。この値は、roll_dice関数の呼び出し元に返されます。

5.dice_result = roll_dice():
roll_dice関数を呼び出して、サイコロを1回振るシミュレーションを行います。その結果として得られたランダムな整数をdice_result変数に代入します。

6.print(f”サイコロの結果: {dice_result}”):
print関数を使用して、サイコロの結果を出力します。f文字列(フォーマット文字列)を使用して、dice_result変数の値を文字列の中に挿入しています。出力されるテキストは「サイコロの結果: 4」(例:4の場合)などになります。

プログラムの実行例

このプログラムを実行すると、サイコロを1回振った結果として1から6のいずれかの整数が表示されます。例えば、プログラムを何度か実行すると、次のような出力が得られるでしょう:

サイコロの結果: 3
サイコロの結果: 6
サイコロの結果: 1

各実行ごとに結果が異なるのは、random.randint(1, 6)がランダムな数を生成するためです。

まとめ

このサンプルプログラムは、Pythonでの簡単な乱数生成と関数の使用方法を学ぶのに役立ちます。さらに、このコードを拡張して、サイコロを複数回振ったり、他の種類の乱数シミュレーションを行ったりすることもできます。

ソースコードの処理内容を解析することができます。
デバッグやソースコードの解析で有効な利用方法です。

ソースコードのレビュー

ソースコードのレビューに、生成AIを利用しています。
ソースコードを作成した後に他エンジニアとレビューを行いますが、事前に生成AIを用いてレビューすることもできます。
ケアレスミスや単純なバグは、他エンジニアとのレビュー前に修正しておくと、生産性も向上します。

あなたは最高のエンジニアです。
以下のソースコードをレビューしてください。
改善点があれば提案してください。

# ソースコード
import random
def roll_dice():
# 1から6までのランダムな整数を生成
return random.randint(1, 10)

# サイコロを振る
dice_result = roll_dica()
print(“サイコロの結果: {dice_result}”)

このソースコードは、サイコロを振るシミュレーションを行うプログラムですが、いくつかの問題点があります。以下にコードの改善点と修正方法を提案します。
問題点と改善点

1.サイコロの範囲の誤り:
現在のコードでは、random.randint(1, 10)を使用しています。これは1から10までの整数を生成します。しかし、通常のサイコロは1から6までの範囲です。このため、生成する範囲を1から6に変更する必要があります。

2.関数名のタイプミス:
サイコロを振る関数の呼び出し部分でroll_dica()としていますが、正しくはroll_dice()です。このタイプミスを修正する必要があります。

3.文字列フォーマットの誤り:
print(“サイコロの結果: {dice_result}”)では、{dice_result}が単なる文字列として扱われています。変数dice_resultの値を出力するために、f文字列(フォーマット文字列)を使用するか、formatメソッドを使用する必要があります。

改善されたコード

import random

def roll_dice():
    # 1から6までのランダムな整数を生成
    return random.randint(1, 6)

# サイコロを振る
dice_result = roll_dice()
print(f"サイコロの結果: {dice_result}")

改善点の説明

1.範囲の修正:
random.randint(1, 10)をrandom.randint(1, 6)に修正しました。これにより、サイコロの目として適切な1から6の範囲で乱数が生成されます。

2.関数呼び出しの修正:
roll_dica()をroll_dice()に修正しました。これにより、正しく定義された関数が呼び出されるようになります。

3.f文字列を使用した出力の修正:
文字列のフォーマットを改善しました。print(f”サイコロの結果: {dice_result}”)を使用することで、dice_resultの値が正しく出力されます。

まとめ

この改善されたコードでは、サイコロの範囲を適切に設定し、タイプミスを修正し、出力のフォーマットを正しく行うことで、期待通りの動作をするようになりました。これらの修正により、プログラムがより正確かつ意図通りに動作するようになっています。

ソースコードのレビューを生成AIと実施することができます。
生成AIを用いたレビューは、手軽でいつでもレビューできます。
他エンジニアとのレビュー前に単純なバグを除去しておくことで、本質的な議論ができると思います。

コマンド仕様の調査

コマンド仕様の調査に、生成AIを利用しています。
Linuxのコマンドの仕様や使い方が知りたい場合、生成AIに聞くことで、コマンドの概要やコマンドラインも解説してくれます。

あなたは最高のエンジニアです。
lsコマンドの概要と使い方を教えてください。

lsコマンドは、UNIX系オペレーティングシステム(LinuxやmacOSなど)でファイルやディレクトリのリストを表示するために使用される基本的なコマンドです。このコマンドを使用すると、現在のディレクトリや指定したディレクトリ内のファイルやフォルダの一覧を表示できます。

概要

コマンド名: ls
機能: ファイルとディレクトリのリストを表示する
使い方: ls [オプション] [パス]

lsコマンドの使い方
基本的な使い方

現在のディレクトリのファイル一覧を表示:

ls

これにより、現在のディレクトリ内のファイルとディレクトリの名前が表示されます。

指定したディレクトリのファイル一覧を表示:

ls /path/to/directory

これにより、指定したパスのディレクトリ内のファイルとディレクトリがリストされます。

よく使われるオプション

lsコマンドにはさまざまなオプションがあります。以下は、よく使用されるオプションのいくつかです。

-l: 詳細な情報を表示

ls -l

各ファイルとディレクトリの詳細(パーミッション、リンクの数、所有者、グループ、サイズ、最終更新日時など)が表示されます。

-a: 隠しファイルも含めてすべてのファイルを表示

ls -a

「.」で始まる隠しファイルも含めて、すべてのファイルとディレクトリが表示されます。

-h: 人間が読みやすい形式でサイズを表示

ls -lh

ファイルサイズをKB、MB、GBの形式で表示します(-lオプションと組み合わせて使用)。

-R: 再帰的にサブディレクトリ内のファイルを表示

ls -R

指定したディレクトリ内のサブディレクトリも含めて、再帰的にすべてのファイルとディレクトリを表示します。

-t: ファイルを最終更新日時でソートして表示

ls -lt

ファイルを最終更新日時の新しい順に並べて表示します。

-r: ファイルを逆順で表示

ls -lr

ファイルを通常の順序と逆に表示します(例:-ltオプションと組み合わせると、最終更新日時の古い順に並べます)。

オプションの組み合わせ

lsコマンドのオプションは組み合わせて使用することができます。たとえば、詳細な情報を人間が読みやすい形式で、すべてのファイル(隠しファイルを含む)を表示するには、以下のようにします。

ls -alh

これにより、すべてのファイル(隠しファイルを含む)が詳細な情報(パーミッション、所有者、サイズなど)とともに表示され、サイズは人間が読みやすい形式になります。
まとめ

lsコマンドは、ファイルやディレクトリのリストを表示するための非常に基本的かつ強力なツールです。多くのオプションを活用することで、ファイルの一覧表示を詳細にカスタマイズできます。LinuxやmacOSなどのUNIX系システムでの作業を効率的に行うためには、このコマンドの使い方をマスターしておくことが重要です。

Web検索でもコマンド仕様を調査できますが、生成AIでも確認することができます。
生成AIでのコマンド仕様調査は、自然言語で調査できる点がメリットです。

仕様案の作成

仕様の案をテキスト形式で作成することができます。
手動で仕様検討すると、考慮漏れや機能漏れの懸念がありますが、生成AIで作成することで、ケアレスミスの発生率が減少します。

あなたは最高のエンジニアです。
以下の機能で仕様書を作成してください。

# 開発内容
生成AIを用いたブログ記事作成

# 機能
– 生成AIの APIを利用して記事タイトルを作成
– 生成AIのAPIを利用して記事見出しを作成
– 生成AIを利用して記事本文を見出し毎に作成
– 記事本文にはハルシネーション対策として検索機能を設ける

# プログラミング言語
Python

仕様書
プロジェクト名

生成AIを用いたブログ記事作成システム
プロジェクト概要

このプロジェクトは、生成AIを利用してブログ記事を自動生成するシステムを開発することを目的としています。Pythonを使用して、記事タイトル、見出し、および本文をAIにより生成し、ハルシネーション(誤情報)の防止を目的とした検索機能も組み込みます。

使用技術

プログラミング言語: Python
使用API: 生成AIのAPI(例: OpenAI GPT, GPT-4)
ライブラリ: requests(APIリクエスト用)、beautifulsoup4(検索結果の解析用)、re(正規表現でのテキスト処理)

機能仕様

記事タイトルの生成
概要: 生成AIのAPIを利用して、ブログ記事のタイトルを自動生成します。
入力: ユーザーが指定したキーワードまたはテーマ。
出力: 生成された記事タイトル(文字列)。
処理の流れ:
ユーザーからキーワードを取得。
生成AIのAPIにリクエストを送信し、指定されたキーワードに基づいた記事タイトルを生成。
生成されたタイトルを返却。

記事見出しの生成
概要: 生成AIのAPIを使用して、記事の見出しを生成します。
入力: 生成された記事タイトル。
出力: 生成された複数の見出し(リスト形式)。
処理の流れ:
生成された記事タイトルを元に、生成AIのAPIにリクエストを送信。
APIから返された複数の見出しを取得し、リスト形式で返却。

記事本文の生成
概要: 生成AIを利用して、各見出しごとに記事本文を生成します。
入力: 各見出し(リスト内の各項目)。
出力: 各見出しに対応する記事本文(辞書形式、見出しをキー、本文をバリューとする)。
処理の流れ:
各見出しに対して、生成AIのAPIにリクエストを送信。
APIから返された各見出しに対応する本文を収集。
生成された本文を見出しごとに辞書形式で返却。

ハルシネーション対策としての検索機能
概要: 生成AIが生成した情報に誤りがないかを確認するための検索機能を提供します。
入力: 生成された記事本文。
出力: 検索結果の一覧、または本文中のハルシネーションの疑いがある部分の指摘。
処理の流れ:
生成された本文をパースして、主要なキーワードやフレーズを抽出。
各キーワードやフレーズを検索エンジン(例: Google API)を使用して検索。
検索結果を解析し、生成された内容の信頼性を評価。
ハルシネーションが疑われる部分があれば、ユーザーに警告を表示。

非機能要件

パフォーマンス: 各APIリクエストは5秒以内に応答すること。
信頼性: ハルシネーション防止機能の精度を80%以上とする。
可用性: 24時間稼働を保証。

設計方針

モジュール設計
article_generator.py: 記事タイトル、見出し、本文の生成機能を提供する。
search_validation.py: 検索機能を実装し、生成された記事のハルシネーションチェックを行う。
main.py: ユーザーインターフェースを提供し、全体のフローを制御する。

エラーハンドリング
生成AIのAPIからの応答が不正な場合やエラーが発生した場合の例外処理を実装。
検索APIが応答しない場合のリトライ機能を実装。

API使用計画

生成AI API
エンドポイント: /generate
メソッド: POST
パラメータ:
input: タイトルまたは見出し生成に必要なキーワードやテーマ。
応答形式: JSON
title: 生成された記事タイトル
headlines: 生成された記事見出しのリスト
content: 生成された記事本文

検索エンジン API
エンドポイント: /search
メソッド: GET
パラメータ:
query: 確認したいキーワードやフレーズ
応答形式: JSON
results: 検索結果のリスト

インターフェース

CLI(Command Line Interface)
コマンドラインからの操作を可能とし、記事生成プロセスをシームレスに進行。

セキュリティ

生成されたデータはローカルで保存し、外部アクセスを遮断。
APIキーの保護と、通信の暗号化(HTTPS)を使用。

今後の拡張

自然言語処理を強化し、より高品質な記事生成を目指す。
ウェブインターフェースの追加により、ユーザー体験の向上を図る。

この仕様書を基に開発を進め、生成AIを用いた効率的で高品質なブログ記事作成システムを目指します。

完璧ではありませんが、仕様書を作成することができます。
生成AIが作成した仕様案をもとにヒトがカスタマイズすることで、より良いシステムを構築できると思います。

ブログ記事案の生成

ブログ記事の案をテキスト形式で作成することができます。
ブログの記事タイトルや本文、見出しの案を生成AIで作成することができます。

あなたは技術ブログを運営している最高のWEBライターです。
以下の内容のブログ記事の見出しを5個提案してください。

# タイトル
生成AIとは

# 内容
– 生成AIの概要
– 生成AIの活用法
– 生成AIの種類
– 生成AIのエンジニアの活用方法
– まとめ

# ターゲット
エンジニア初心者

ブログ記事の見出し提案

1.生成AIとは?基礎から学ぶエンジニア初心者向けガイド
2.生成AIの実用例とその可能性を探る
3.生成AIの種類とそれぞれの特徴について解説
4.エンジニアが生成AIを活用するための実践方法
5.まとめ:生成AIの未来とエンジニアとしての関わり方

ハルシネーションの懸念はあるため、ファクトチェックは必須ですが、ブログの見出し案や記事内容を生成することができます。

アイキャッチ画像の生成

ブログのアイキャッチ画像を生成することができます。
画像生成系の生成AIを活用して、アイキャッチ画像を作成することができます。

研究所にいるタヌキのロボット

アイキャッチ画像

アイキャッチ画像に使用する画像を、生成AIで生成することができます。
必要に応じてカスタマイズして、アイキャッチ画像とします。

SNSの分析

SNSの投稿文を分析することができます。
投稿文に炎上リスクがあるか、より良い文章があるかを生成AIで分析できます。

あなたは最高のSNSアドバイザーです。
以下のツイートについて炎上するかチェックしてください。

# ツイート
ブログを更新しました。
生成AIの概要と活用方法について紹介しています。
良かったらぜひチェックしてみてください!!

このツイートは、一般的なブログ更新の告知であり、内容自体に炎上リスクはほとんどありません。文面も礼儀正しく、問題となる表現や攻撃的な内容も含まれていないため、安全な投稿と言えるでしょう。

ただし、生成AIに関する話題は、場合によってはAIの倫理的側面や人々の仕事への影響などに敏感な方々から反応があるかもしれません。そのため、具体的な内容によっては、倫理面やAIの影響についてのコメントが寄せられる可能性があります。しかし、このツイートだけで炎上するリスクは非常に低いです。

SNSの炎上リスクをチェックしてくれます。
炎上の有無や、投稿内容の懸念点などを回答してくれます。

Web検索

Web検索した結果を生成することができます。
生成AIのモデルによりますが、Web検索機能を具備した生成AIがあります。
Web検索機能を用いて回答を出力してもらえれば、複数のWebサイトを1つずつ確認する手間が省けて、調査時間が短縮できます。

今日の東京の天気を教えてください。
天気情報はweb検索で調査してください。

今日の東京の天気は、気温が約26.8°Cと比較的涼しい日になっています。曇りがちで、湿度は74%とやや高めです。9月の東京は、平均して12.5日間の降雨があり、今日も雨の可能性がありますので、外出の際は傘を持っていくと良いでしょう。

Web検索して調査したいリアルタイム情報も、生成AIで調査することができます。

翻訳

外国語を日本語に翻訳することができます。
世界標準のドキュメントや仕様書は、英語で記載されていることが多いため、翻訳する必要があります。
英語の文章を日本語に翻訳にも、生成AIを利用することができます。

あなたは最高の翻訳家です。
以下の英語を日本語に翻訳してください。

# 文章
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!

このテキストは、「The Zen of Python」として知られるPythonプログラミング言語の設計哲学の一部です。内容を日本語に翻訳すると以下のようになります。

美しい方が醜いよりも良い。
明示的な方が暗黙的よりも良い。
単純な方が複雑よりも良い。
複雑な方がややこしいよりも良い。
フラットな方がネストされたものよりも良い。
疎な方が密なよりも良い。
可読性は重要である。
特別なケースがルールを破るほど特別ではない。
実用性は純粋性に勝る。
エラーは決して黙って通過してはならない。
明示的に無視される場合を除いて。
曖昧な状況においては、推測の誘惑を拒否せよ。
それを行う明白な方法は1つだけあるべきであり、できればその方法は1つだけであるべきだ。
その方法は最初は明白ではないかもしれないが、オランダ人でない限り。
今が一番良いが、「今すぐ」より「一度もない」方が良いこともある。
実装が説明しにくいなら、それは悪いアイデアだ。
実装が説明しやすいなら、それは良いアイデアかもしれない。
名前空間は素晴らしいアイデアだ。もっと名前空間を使おう!

このテキストは、Python開発者がプログラムを書く際に心に留めておくべき基本的なガイドラインを示しています。

外国語を日本語に、日本語を外国語に翻訳することができます。

要約

文章を要約することができます。
長文のドキュメントを全て目を通すのは、時間がかかるため、まずは要約を読むことで確認時間を短縮することができます。

以下の文章を要約してください。
要約は200文字程度でお願いします。

# 文章
やすひらは、緑豊かな山の中で一人暮らしをしていたタヌキだった。彼の住む山は四季折々の美しい風景に包まれていて、春には桜が咲き誇り、夏にはせせらぎの音が心地よい涼を届けてくれた。秋には紅葉が山を彩り、冬には真っ白な雪が降り積もる。しかし、やすひらにはずっと心に秘めている夢があった。それは都会での生活だった。
「一度でいいから、あの都会という場所を見てみたい。」
ある日、やすひらはふと思い立って都会に下りることを決意した。彼は都会の生活に憧れを抱き、そこで何か新しいことを始めたいと考えていたのだ。やすひらは旅支度をし、大切にしている長靴を履いて山を下りる準備を整えた。
やすひらが都会に到着すると、彼の目には初めて見る景色が広がっていた。高層ビルが立ち並び、人々は忙しそうに行き交い、車の音や様々な機械音が響き渡っている。少し怖いと思ったが、それ以上に心が躍っていた。
「さて、まずは長靴を買い替えよう!」
都会の商店街を歩き回り、やすひらは新しい長靴を探した。彼の古い長靴は山での生活でボロボロになっていたのだ。都会の靴屋に入り、新品の黒い長靴を見つけた。足を通してみると、ちょうどぴったりだった。やすひらはすぐにその長靴を買い求め、次の目的地に向かうことにした。
「次は…パソコンだ!」
やすひらはパソコンというものに興味を持っていた。山では見たことも使ったこともなかったが、都会ではパソコンが便利で重要な道具だと聞いていた。電気店に入り、店員の説明を受けながら、やすひらは初心者向けのパソコンを手に入れた。店員からは「インターネットが使えるから、これで何でも調べられるよ」と言われた。やすひらはインターネットという言葉に少し戸惑ったが、とにかくパソコンを手に入れたことに喜びを感じていた。
パソコンを手に入れたやすひらは、早速都会のカフェに入り、パソコンを開いてみた。しかし、何から始めればいいのか全くわからない。そんなとき、隣の席に座っていた若い男性が声をかけてきた。
「初めてのパソコンですか?」
やすひらは少し恥ずかしそうにうなずいた。男性は優しく微笑んで、やすひらに基本的な使い方を教えてくれた。その中で「プログラミング」という言葉が出てきた。やすひらは興味津々でその言葉を覚えた。
「プログラミングって何ですか?」
「それはね、パソコンに指示を与えて、いろんな動きをさせることなんだ。例えば、ゲームを作ったり、ウェブサイトを作ったり…」
やすひらの目が輝いた。彼はプログラミングを学んで、都会で何か新しいことを始めたいという思いを強くした。そこでやすひらは、毎日カフェに通いながらパソコンと向き合い、プログラミングの勉強を始めた。
やすひらは日々努力を重ね、次第にプログラミングの技術を身につけていった。初めは難しく感じたが、インターネットで情報を検索し、オンラインの無料講座を受けることで、少しずつ理解できるようになった。彼の学びの姿勢はとても真剣で、周りの人々からも応援されるようになった。
半年が過ぎた頃、やすひらは小さなアプリケーションを自分で作ることができるようになった。そのアプリは、都会の生活に役立つような、簡単な地図アプリだった。やすひらは自分の作ったアプリをインターネットに公開し、都会の人々に使ってもらえるようにした。
すると、驚いたことに、そのアプリは都会の人々から大変好評を得た。やすひらのアプリは使いやすく、デザインもシンプルでわかりやすいと評判になったのだ。彼のもとには感謝のメールが届くようになり、やすひらはますますプログラミングにのめり込んでいった。
その後もやすひらはさまざまなアプリを開発し、ついには都会のIT企業からスカウトされるまでになった。彼は山で育ったタヌキでありながら、その才能と努力によって一流のエンジニアとして認められたのだった。
やすひらは、山の自然と都会の技術を結びつけるような、新しい発想のアプリケーションを次々と生み出し、都会での生活を楽しみながらエンジニアとしてのキャリアを築いていった。
やすひらの長靴は、いつも彼の足元を支えていた。どんなに都会で忙しくなっても、彼は毎日その長靴を履いて出かけた。長靴を履いたタヌキ、やすひらの物語は、これからも続いていく。彼の冒険心と学び続ける姿勢は、きっと新しい未来を切り開くに違いない。
こうして、山から都会に下りたタヌキ、やすひらの冒険は、彼が望んだ以上に素晴らしいものとなった。彼の物語は、勇気を持って新しいことに挑戦する全ての人々に勇気を与えるだろう。

やすひらというタヌキが山の自然豊かな環境から都会に移り住み、新しい生活を始める物語です。彼は都会で新しい長靴とパソコンを購入し、プログラミングを学びます。初めてのパソコンに戸惑いながらも、やすひらは毎日カフェで勉強を重ね、やがて自分でアプリを作成するまでに成長しました。都会の人々にそのアプリが好評となり、彼は一流のエンジニアとして認められ、IT企業からスカウトされるようになります。やすひらの冒険は、挑戦する勇気と学び続ける姿勢が未来を切り開くというメッセージを伝えています。

長文を要約して、短文にまとめることができます。

まとめ

生成AIの概要と活用方法について紹介しました。

生成AIは
  • クリエイティブなコンテンツを生成できる
  • プロンプトと呼ばれる入力データが必要
  • 様々な活用法がありヒトの活動を拡張できる

生成AIは、テキストや画像、動画などのクリエイティブなコンテンツを生成することができます。
自分が苦手な分野の作業の補完も、生成AIで実行することができるため、有効なツールです。
生成AIの発展により、大きなメリットがある一方でデメリットも存在しますが、一度利用してみて、活用方法を試行錯誤しながら利用していくのが良いと思います。

  • URLをコピーしました!
目次