【ブログ自動化】openAIAPIでレビュー記事を安価に量産する仕組みを考えた
皆様ハロー、AIで作ったスタッフと毎日仕事しているスマイルです('ω')ノ
wordpressの更新をAIに代行させたくてopenaiのassistantAPIを勉強しております、今回はこいつを使って"wordpress記事の生成&投稿機能"を作ってみました。
「タイトル・リード文・見出し・アイキャッチ画像・本文・商品リンク・レビュー文・まとめ」を含んだ、10,000文字程度の記事を約90円で作れるようになったので個人的には満足です。
出力結果サンプルはこちら、まったく手を加えてない状態です。
記事が面白かったらフォロー&♥よろしくお願いしますm(_ _)m
仕上がりはこんな感じ
おーん、悪くないねぇ!
ちなみに運営中のサイトはこちら。
これはこれでちゃんと運営してレポートをまとめる予定です。
自動投稿システムの仕組み
今回はassistantsAPIの機能を最大限活用し、なるべくオートマチックな構成を目指してみました。ブログ執筆に関わる工程ごとに専門のassistantsAPIを用意する事で精度を上げています。
全体の流れはこんな感じ。
今回のシステムはpythonで作ってみました。wordpressといえばPHPですがサーバーにスクリプトを設置するのも面倒だし、プラグインまで作り込む予定はないので、手元で調整しながら簡単にいじれるpythonにしました。
assistants APIで記事生成
今回は1人の人間と6機のAIで役割を分担し、商品レビュー記事を執筆するチームとしての編成を意識してみました。
執筆という作業をここまで分担・細分化させた理由は記事のクオリティを上げるためで、AIで読み応えのある記事を作るコツは、個々の役割ごとに特化したプロンプトを与える事だと分かりました。
それぞれのassistantsが出力した情報をスクリプト側で統合し、最終的に人間が目視で校正するスタイルが現状の最適解なのかな、とやってみて思いました。
外部APIの呼び出し
今回のシステムでは2か所の工程で外部APIの呼び出しを行っています。
1のおかげでwordpressのURLを指定するだけで簡単に外付けが可能になりましたし、2は当システムのメインコンテンツを作るのに必須なデータを自動で収集しています。
実際に触ってみた感じだと、functions経由で外部APIを実行できる恩恵が強烈で、web系で思い付くような事は一通りassistantsAPIで実装できそうなくらい自由度高いと思いました。
ではfunctionsを活かせばどんな事が出来るようになるのか?こんな疑問もchatGPTに聞いちゃえばいいのですよ。
なるほどぉ、色々作ってみたくなってきた!
WordPress REST APIで投稿
assistantsAPIでブログコンテンツが完成しましたらwordpressに投稿するワケですが、WordPressにもAPIが標準装備されてまして、管理画面を経由せずに外部から簡単に記事を投稿する事が可能です。
この辺は難しくないですし情報もいっぱいあるので、検索するかchatGPTに聞くか本を読んで勉強してみて下さい。
定期実行について
今回は定期実行を行っても楽にならないので実装はしませんでした。
chatGPTはハルシネーションの問題があり、記事の公開前には目視チェックが必要です。つまり、記事の生成&投稿を定期実行化しても内容確認の手作業工程がボトルネックになるため、実装する意味が薄いんですよ。
記事を自動で生成してくれるだけで十分な省力化になってますから、今回はわざわざ設定しなくてもいいかなと思いました。
それでも定期実行したい方は、"wp-cron,クーロン,スケジューラー"辺りのキーワードで調べると捗ると思います。
実際のコスト
今回考えたシステムはassistantsAPIを使いまくるので従量課金でコストが発生します、課金の基準はこちら。
課金のベースはこんな感じでございまして、冒頭でも書きましたが当システムの実測値では、記事を1本生成するとおおよそ90円程度の費用が発生していました。
これがどれくらいの安さかと言いますと、10,000文字程度の記事を外注サイトでライターさんに依頼すると大体10,000-20,000円くらいは必要になります。
画像とか商品リンクも込みで90円という破格の安さ!1ヶ月毎日更新してもランニングコストは3,000円を切ります、めっちゃリーズナブル!
ちなみに1本記事を生成するのに10分くらいかかりますが、スマホ弄ってれば一瞬ですので特に負担にはならないと思います。
レビュー記事生成システムの作り方
ここまでで概要は説明させて頂きましたが、実際に自動商品レビュー記事生成システムを作ってみましょうか。
利用上の注意!
ご紹介するシステムは僕が実際にアフィリエイトサイトの運営で活用している物ですが、chatGPTのレスポンスの関係などでエラーが出て処理が途中で止まる事がありました。
その場合でも途中まで利用したトークンの分は課金されてしまいます。つまり、記事は出来てないのにお金だけ消費されるという事が起こり得るシステムになっています。
"エラーをキャッチして処理を続ければいいでしょう"と思われる方もいると思いますが、内容の欠けた記事を投稿しても手作業で補完する時間がかかっちゃいますし、今回はエラー出たら処理停止としております。
実際に処理が止まる事は数十回に1回程度ですが、浪費が発生する可能性もある仕組みなので当システムのご利用は自己責任とさせて頂きますm(_ _)m
必要な物
構築に必要な材料は下記の通り。
python
openAIのAPIキー
PAAPI用の各種キー
wordpress
◆ python環境の構築
すでに手元でpythonが使えるという前提で話を進めますが、準備が整っていない方はとりあえず入門書を1冊持っておくのがいいですよ。
◆ openaiAPIキーの取得
openAIのアカウント作成やAPIキーの入手方法は下記の記事が分かりやすいのでオススメ。
◆ PAAPI用の各種キー
すぐに取得できない物はPAAPIの各種キーですね、これはamazonアソシエイトに合格していないとPAAPIが利用できない仕組みになっているからです。
僕はyoutubeのアカウントからアソシエイトを突破しましたが、noteからでもアソシエイトに合格している方もいるようです。
◆ wordpressの設置
レンサバの準備やwordpressの設置は情報が豊富なのでここでは省略しますが、ネットの記事をナナメ読みしても情報が古かったり、サイトに書いてある事が自分の環境と合わなかったり時間が無駄になる事もあるので、ちゃんとした書籍で覚えるのがいいと思います。
openaiAPIにクレジットをチャージする
材料がすべて揃いましたら次にopenAIへお布施しましょう。
openaiAPIは基本的に先払いの仕組みになっています。オートチャージの設定もありますが、慣れるまでは浪費が発生しないよう都度課金にしといた方が良い気がします。
https://platform.openai.com/settings/organization/billing/overview
最小で$5からチャージできるようです。
ちなみにチャージしたクレジットはplaygroundでassistantsを調整するだけでも消費されてしまうので、がちゃがちゃ自力で弄るよりも当記事のコピペスクリプトをパクった方が安上がりかもしれません。
画像のプロンプトとかも弄り出したら数分でこれくらいなります。
usage見ながら注意しとかないと一瞬で数千円溶けちゃう。。。
ちなみにチャージした分を使い切るとエラーが出て処理を止めてくれます、デフォでは使った分を無限に自動課金とかじゃないので安心。
Error code: 400 - {'error': {'code': 'billing_hard_limit_reached', 'message': 'Billing hard limit has been reached', 'param': None, 'type': 'invalid_request_error'}}
使用するモデルを決める
今回はランニングコストを抑えるために安価なGPT-3.5をメインに使い、重要なポイントだけGPT-4oを使いました。3.5と4oではコストが10倍も違うのでなるべく節約したい。
記事の中で使用している画像もopenAIAPIで作成しており、こっちはDALL·E 3のStandardモデルを使っています。
まとめるとこんな感じ。
本音を言えば全部4o使いたいですよ、使った方が絶対記事のクオリティ上がりますし。ただ財布が死んでしまいます笑
早く新しいモデル出て4o安くして欲しいなー。
assistantsAPIの作り方
ここまでで準備が整ったので実際にassistantsAPIを作っていきましょう、こっから先の作業はopenAIのplaygroundで行います。
スクリプトからassistantsAPIの作成や設定を行う事も出来るんですが、僕は分かりにくかったんでUI上から操作する方法がオススメです。
==それではこっから作業スタート!==
■ playground > assistants にアクセスし"+create"ボタンを押す
■ "Untitled assistant"が今作ったやつ、画面右側でassistantsの設定を行う
■ assistantsは5種類作成するので"Untitled assistant"を5機作っとく
◆ 1機目:suzukiの作成(記事タイトル・アウトライン担当)
設定する値は一通りコピペで用意しました、画面右側のassistantの設定欄にペシペシ張り付けてって下さい。
【Name】
記事タイトル・アウトライン担当:suzuki
【Instructions】
ここから先は
よろしければサポートお願いします、頂いたサポートは活動費として使用させて頂きより有意義な記事を書けるように頑張ります!