25230 ChatGPT搭載自動ツイートの仕組み
25230のコミュニティプロバイダーがLETでオファーを共有する際は、ぜひ世界に発信したいと考えます。その方法の一つとして、Twitterにスレッドへのリンクを投稿する方法があります。これは、Twitter APIと連携するPythonスクリプトを使って行います。
1 時間に 1 回、LET オファー カテゴリ内のすべてのスレッド (RSS フィード経由、Python のfeedparserモジュールを使用) を確認し、それをすでにツイートされているオファーのリストと比較して、最も古い未投稿のオファーを選択し、それについてツイートします。
ちなみに、Python 経由で自分でオファーを監視することもできます。 公開したチュートリアルを確認してください。
リンクをそのまま投稿することもできますが、オファーであることを明確にしておきたいと思います。元々のコードはこんな感じでした。
possible_tweet_bodies = [ '驚き!' 、 "新しい取引が掲載されました!' 、 「このお買い得品をチェックしてください!」など tweet_body = ランダム選択 (可能性のあるツイート本文)
これは効果はありますが、明らかに繰り返しが多く、読者にオファーについて何も伝えません。
ChatGPTの登場…そしてハードル
より便利にするために、ChatGPTを使って実験してみることにしました。このコードは投稿のテキストを取得してChatGPTに渡すようになっています。当初はChatGPTに「これについてツイートを書いてください:(投稿の内容)」といったプロンプトを与えていました。
動作はしますが、問題は280文字をはるかに超えるコンテンツが返される可能性があることです。残念ながら、ChatGPTは文字数をうまくカウントできません。API呼び出しではトークンの最大数を指定できますが、トークンは単語であり、「a」から「antidisestablishmentarianism」まで何でも構いません。
また、リンクについても考慮する必要があります。Twitterはこれを23文字のt.coリンクに短縮します。t.coリンクを事前に取得するAPIはなく、たとえ23文字未満のリンクが生成されたとしても、Twitterは23文字を「予算」として割り当てます。つまり、リンクを使用する場合、コンテンツは257文字を超えることはできません。
残念ながら、ChatGPTに「…について257文字以内のツイートを書いてください」と指示してもうまくいきません。それでも280文字以上(時には800文字以上!)のツイートが返ってきます。
257で強制的に切り取ることはできません。文の途中になってしまう可能性があるからです。「短いツイート」「とても短いツイート」などの組み合わせを試してみましたが、うまくいきませんでした。「ハッシュタグなし」も試してみましたが、効果はありませんでした。
でも、これは生成的なので、無限大は使えるツールです。コードは次のようになります。
応答 = ""
start = "仮想ホスティングのこのセールについて短いツイートを書く"カウンタが範囲(1、31)の場合: chatgpt_query = "{0:s} {0:s}: {1:s}".format(開始、オファータイトル、オファー概要) chatgpt_response = get_tweet_body (chatgpt_query) chatgpt_content = chatgpt_response.content.replace('"','') len(chatgpt_content) > 257の場合: debug("命令 [{0:d}]: 応答の長さ {1:d}、スキップします".format(counter,len(chatgpt_content))) それ以外: レスポンス = chatgpt_content 壊す 応答 == "の場合": info("エラー: 257文字未満のツイートは生成されませんでした") sys.exit(1)
つまり、30回試行します。257文字未満のテキストを取得できなかった場合は終了しますが、今回の場合は1時間後に再試行するので問題ありません。1週間ほど運用していますが、このようなことは一度も発生していません。
ご興味があれば、get_tweet_body 関数は非常にシンプルです。
def get_tweet_body (入力):
デバッグ ("get_tweet_body() 入力: {0:s}".format(input))
レスポンス = openai.ChatCompletion.create(
モデル='gpt-3.5-turbo',
メッセージ=[ {
'役割': 'ユーザー',
'コンテンツ': 入力
} ],
温度=1.5
)
応答を返す['選択肢'][0]['メッセージ']多様性を高めるために温度を少し上げました。OpenAIのBroodを使った実験に基づいて、GPT 3.5 Turboモデルを使用しています。
いくつか、ちょっと変わった外れ値もありました。例えば、「企業の重要なウェブサイトすべてに、ローストビーフの匂いがするまで、最高性能で信頼性の高いネットワーク保護を提供!」など。全体的に見て、ツイートはどれも的を射ています。
KVM VPSセールでパリで超高速仮想ホスティングを手に入れよう!RAMは16~128GBからお選びいただけます。7日間の無料トライアルもご利用いただけます。Windows/Linux版もご用意しています。今すぐhttps://t.co/Dqkq6aF8z6でご確認ください。 #virtualhosting #KVMVPS #techdeals https://t.co/YFHnrRjpZt
— ウェブサイト(@LowEndNetwork) 2023年4月9日
🐰 ハッピーイースター!🐰 EasyVMが仮想ホスティングのクリアランスセールを開催中!ダラス、ラスベガス、タンパのパッケージを割引価格で、短期間で導入できます。クーポンコードなど、詳しくはリンクをクリックしてください。https ://t.co/DiDiOFWC1u
— ウェブサイト(@LowEndNetwork) 2023年4月9日
5つの拠点で、月額わずか2ドルから、無制限の帯域幅を備えた強力なVPSをご利用ください! コード26AHD2CWR2を使用すると、初回注文が6ヶ月間50%オフになります。☁️ #virtualprivateserver #cheapvps #inexpensivehosting #limitedtimeoffer https://t.co/AUxNGczmYe
— ウェブサイト(@LowEndNetwork) 2023年4月7日
ChatGPTを何に使っていますか?