Python

Python ChatGPTを活用してブログを完全自動化:【記事自動作成、自動投稿】①

この記事は、ChatGPTのAPIをPythonから利用し、「ブログ記事を自動で生成させ、更にWordpressへ自動投稿してしまおう!」というブログの運営者にとって、夢の様なチュートリアルの第一回目です!!

ChatGPTとは、OpenAIが開発した自然言語処理モデルであり、リアルタイムでの対話や文章生成に優れた能力を持っています。

WordPressとは、世界中で人気のあるブログプラットフォームであり、そのREST APIを活用することで、プログラムからの自動投稿が可能です。セキュリティの観点からREST APIを使用したくない方の為に、別の自動投稿の方法もこのチュートリアルでは取り上げます。

正直、ココナラやランサーズなどの副業サイトでは、このチュートリアルの内容を1万円以上の価格を付けて販売している方もいます。逆に言えば、皆様がこの記事の内容を覚えることで、そういった副業を行うことも可能だという事です。

自動投稿によって、ブログの運営者は貴重な時間を節約し、コンテンツの品質向上や頻度の確保に注力することができます。

このチュートリアルではPythonを選択しましたが、正直PHPでもVBAでも何でも出来ます。その辺りはチュートリアルの最後に利用方法を書くつもりです。

また、実際にWordpressなどを利用されている方はレンタルサーバーやVPSで運用されていると思いますので、サーバー上でスケジュールで動作させる方法も併せて解説します。

Pythonのインストールや簡単な使用方法などは下記公式サイトに詳しく載っています。インストールは簡単に行えますので、早速行なって下さい。

公式サイトはこちら

公式サイトでインストール方法がよく分からなかった方は、下記記事もおすすめです。

Pythonインストール
Python 3のインストールガイド:ステップバイステップで簡単に始めよう! Python 3のインストール この記事では、Python 3のインストール手順をステップバイステップで詳しく解説します。Pyt...

ChatGPT アカウント作成手順

早速、ChatGPT APIの利用手順を開始します。まだアカウントを作成したことがない人やAPIキー発行の仕方がわからないという方はぜひ参考にしてください。
既にアカウント登録済でAPIキーの発行も済んでいる方は読み飛ばして下さい。

公式サイトからアカウント作成

ChatGPT APIを使用するためには、まずアカウント作成が必要です。まずは下記リンクより公式サイトへアクセスし、アカウントを登録して下さい。

赤丸部の『Sign up』をクリックしてください。アカウント作成済の場合は、『Log in』からアクセスできます。

『Email address』の中にご自身のメールアドレスを入力します。入力したら『Continue』をクリックして下さい。
若しくは、GoogleアカウントやMicrosoftアカウントでもアカウントを作成する事が可能です。

パスワードを入力し、『Continue』ボタンをクリックします。

先ほど入力したメールアドレスに認証用のメールが届きますので、メール内リンクより認証を行なって下さい。

メール認証後、個人情報の登録を行います。登録が終わればアカウントの作成は完了です。

Open AI APIキー取得手順

APIキーの取得は、OpenAIの公式ページから行います。
下記のリンクよりアクセスし先ほど作成したアカウントで、ログインして下さい。

画面右上のPersonalをクリックするとメニューが表示されるので『View API keys』を選択します。

画面中央部にある『+ Create new secret key』のボタンをクリックします。

任意の名前を入力し、『Create new secret key』ボタンをクリックして下さい。

APIキーをコピーできるのはこの画面のみです。再度確認することはできませんので注意が必要です。

これで準備は完了です。
次節から早速プログラムを書いていきましょう!!

PythonからChatGPTを使う

基本的にAPIを利用するだけならライブラリが無くても可能なのですが、PythonではOpenAI用のライブラリが準備されていますので、それを利用しましょう!

ライブラリをインストール

ターミナル、若しくはコマンドプロンプトを開いて下記のコマンドを実行して下さい。

pip install openai

エラーが出ていなければ、問題無くインストールできています。

APIを呼び出してみる

早速APIを利用してみましょう。
そのままターミナル、若しくはコマンドプロンプトで、下記の様に入力してPythonプロンプトを起動して下さい。

python

「>>>」と表示されれば問題ありません。

続けて下記の様に1行ずつ入力して下さい。

import openai # openai のインストールに失敗しているとここでエラーが出ます。 
openai.api_key = "sk-<your secret key>" # 先ほど取得したAPIキーを入力
question = "副業に関するブログ記事を、タイトル、イントロダクション章1、本文1、章2、本文2、まとめの構成で書いて下さい。"
print(question)
response = openai.Completion.create(
model="text-davinci-003",
prompt= question,
max_tokens=1000,
echo=False
)
 print(response['choices'][0]['text'].replace('\n', ''))

如何でしょうか?私の環境で実行した結果、下記の内容が返ってきました。

タイトル:副業をはじめるべき5つの理由イントロダクション:今日の記事は副業に関してです。私は、副業を開始し、メリットを享受することをお勧めします。以下で5つの理由を詳しくご説明します。章1:資金のマネジメント正社員で働く人は月に一度の給料を受け取りますが、副業をする人は月に数回仕事をして資金管理ができます。資金の使用を適切に管理することで、月の支出や備蓄をすることができます。本文1:最近では副業を始める人が増えています。一つの理由として、プロジェクト単位で仕事をすることによって、給料を多く稼ぐことができるからです。短期間の副業仕事なら、プロジェクト単位で仕事を依頼した人に大きな給料を支払うことができます。章2:スキルの向上副業に取り組むことで、新しいスキルを学ぶことができます。日常的な仕事だけでなく、特別なプロジェクトに取り組んで、新しいスキルを学ぶことができます。本文2:例えば、何かソフトウェア開発の副業を取り組んだ場合、本来の給料以上の給料をもらうことができます。同時に、新しい知識を補完するという意味でも、プロジェクトのスキルを向上させることができます。まとめ:今日は副業に関してお話ししました。副業を始めることで、資金をより良い方法で管理することができ、新しいスキルを学ぶことができます。副業を始めることで不利益をなくし、収入を増やすことができるので、私は大きな収入を得るために副業をお勧めします。

それなりにブログらしい文章にはなっているかな?と思いますが、とてもじゃないけどこのままブログの記事にはなりませんよね笑

ただ、ChatGPTがこちらの指定した問いに対して、文章を生成し、返答してきたという事が分かれば、ここでは十分です。

プログラムの意味をちょっと解説

簡単なコードなのであまり解説は不要だと思いますが、次の様な流れになっています。

  1. import openai: openaiライブラリをインポートします。このライブラリはOpenAIのAPIとの通信を行うために使用されます。
  2. openai.api_key = “sk-<your secret key>”: APIキーを設定します。ここでは、取得したAPIキーを指定します。
  3. question = “”: ChatGPTに与える入力テキスト(プロンプト)を指定します。今回の場合、副業に関するブログ記事の構成を要求しています。
  4. print(question): 一旦、入力テキストをターミナルへ表示します。
  5. response = openai.Completion.create(…): ChatGPTに対してテキスト生成の要求を行います。APIを使用してChatGPTにプロンプトを送信し、応答を受け取ります。生成されたテキストはresponseに格納されます。
  6. print(response[‘choices’][0][‘text’].replace(‘\n’, ”)): ChatGPTからの応答テキストを表示します。responseの中から応答テキスト部分を取得し、改行文字を削除して表示します。

openai.Completion.create(…)関数の解説

OpenAIのAPIを使用してChatGPTの生成を要求するために使用されるメソッドです。この関数には次の様な引数があります。

  1. model(必須): 使用する言語モデルを指定します。たとえば、”text-davinci-003″などのモデル識別子を指定します。
  2. prompt(必須): ChatGPTの生成に使用するテキスト(プロンプト)を指定します。ユーザーの質問や要求など、応答に影響を与える入力を提供します。
  3. max_tokens(オプション): 生成される応答の最大トークン数を指定します。トークン数は、テキストの長さを表す単位です。デフォルトでは、この値は16です。
  4. temperature(オプション): 生成された応答のランダム性を調整するためのパラメータです。値が低いほど、より確定的な応答が生成されます。値が高いほど、よりランダムな応答が生成されます。デフォルトでは、この値は0.6です。
  5. top_p(オプション): トークンの確率分布の上位nパーセンタイルを考慮して、生成されるトークンを制御するためのパラメータです。値が小さいほど、より確定的な応答が生成されます。値が大きいほど、より多様な応答が生成されます。デフォルトでは、この値は1.0です。
  6. n(オプション): 生成する候補の数を指定します。候補数が多いほど、生成される応答の多様性が増えます。デフォルトでは、この値は1です。
  7. stop(オプション): 生成を停止するための文字列や文字のリストを指定します。ChatGPTがこの文字列またはリストのいずれかに一致した場合、応答の生成が停止されます。

詳しく書きましたが、こんなものがあるのか位に覚えていただければ大丈夫です。

response の中身は?

openai.Completion.create()メソッドによって生成された応答には、以下のような情報が含まれています。

  1. response[‘id’]: APIリクエストの一意の識別子(ID)です。
  2. response[‘object’]: 応答の種類を示すオブジェクトタイプです(通常は「completion」です)。
  3. response[‘created’]: 応答の作成日時です。
  4. response[‘model’]: 使用されたモデルの識別子です。
  5. response[‘choices’]: ChatGPTからの応答情報が含まれるリストです。response[‘choices’]リストの中には、以下のような情報が含まれています。
    • response[‘choices’][0][‘text’]: ChatGPTから生成された応答テキストです。
    • response[‘choices’][0][‘finish_reason’]: 応答の生成が終了した理由を示す文字列です(例: “stop”、”max_tokens”など)。
    • response[‘choices’][0][‘index’]: 応答のインデックス番号です。

先ほどのコードでは、最初の応答のテキスト部分をprint(response[‘choices’][0][‘text’].replace(‘\n’, ”))で表示しています。改行文字(\n)を削除して表示するために、replace(‘\n’, ”)メソッドが使用されています。

応答には他の情報も含まれる場合がありますが、通常は最初の応答のテキスト部分が必要な情報です。

まとめ

如何でしたか?ChatGPTはすごいですよね!
折角APIを使用できる様になったので、皆さんも色々質問してみて下さい。

次回は、ChatGPTの返答を、ブログ記事に作り替えるプログラムや、SEOに強いブログをChatGPTに返させる効率的な質問の仕方などを詳しく書いていきたいと思います。

次回をお楽しみに!!

PythonでAPIを利用する方法や、WEBへリクエストを送信したりする方法などの詳しい解説は下記の記事で行なっています。下記の記事は応用アプリケーションの作成など、かなり難しい内容まで踏み込んで解説しているので、是非読んで見て下さい!!

Python入門ガイド: WEB開発の世界へようこそ【WEBを解きほぐす】
Python入門ガイド: WEB開発の世界へようこそ【WEBを解きほぐす】この記事では、Pythonにおけるウェブ開発について詳しく探求します。まず、ウェブクライアントの基本的なテスト方法として、telnet、curl、httpieの活用法を学びます。次に、Pythonの標準ウェブライブラリを使用してウェブクライアントを構築する方法を探求します。さらに、requestsという強力なライブラリを使い、標準ライブラリを超えたウェブクライアントの機能を体験します。...

上記記事の他にも【Python入門ガイド】と称して、どこよりも詳しくPythonの入門記事を書いていますので、気になる方は是非読んで見て下さい!