OpenAIのGPT3を使ってPythonで自動リプを作成・投稿する方法
ChatGPTで有名なOpenAIが開発したGPT3を使って、指定したツイートにもらったリプに対して、自動で文章を生成して、返事を返すbotを作っていきましょう
これまでのnoteで自動化が図れている方は、簡単にできると思います。
前提として、以前のnoteでTwitter APIを取得している前提で話を進めていきます。
もし、まだTwitter APIを取得していない場合には、こちらから取得しておきましょう
今回はGPT3の使い方に慣れる、という目的で実施していきます。
また、GPT3は文字数によって金額が変わりますが、初回登録で18ドル分のクレジットが付与されます。
僕も試しましたが、100件くらいリプが来ても1ドル程度だったので、無料クレジットをオーバーする心配はないです。
openAIのAPI取得
https://openai.com/api/
上記URLからopenaiのAPIを取得します
sign upはgoogleのアカウントでOKです
ログイン後にpersonal→view API keysをクリック
「+ create new secret key」をクリック
これでopenAIのAPIも取得できました
ツイートIDの取得
ツイートIDが必要になりますので、以下のように取得しましょう
パソコンからtwitterにログイン
自動リプしたいツイートを選択
選択したツイートのURL後半にある数字をコピペ
これで準備はOKです
google colaboratory環境で実行します
pip install openai
pip install schedule
pip install tweepy
import openai
import schedule
import time
import tweepy
CONSUMER_KEY = ''
CONSUMER_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_SECRET = ''
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)
openai.api_key = ""
model = "text-davinci-003"
tweet_id =
#自動返信が終わったリプのツイートIDを入れる
finish_list=[]
def gpt3_reply():
#自分宛のリプを取得
mentions=tweepy.Cursor(api.mentions_timeline).items(10)
#対象のツイートIDでまだ返信をしていなければGPT3が自動返信
for mention in mentions:
if mention.in_reply_to_status_id == tweet_id:
if mention.id in finish_list:
pass
else:
prompt = mention.text
#文章生成 completions = openai.Completion.create(
model=model,
prompt=prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)
#生成結果を取得してツイート
message = completions.choices[0].text
if len(message)<140:
api.update_status(status='@'+mention.user.screen_name+message, in_reply_to_status_id=mention.id)
finish_list.append(mention.id)
else:
pass
return finish_list
#定期実行
schedule.every(1).minutes.do(gpt3_reply)
while True:
schedule.run_pending()
time.sleep(6)
この記事が気に入ったらサポートをしてみませんか?