今回はChatGPTのベースであるGPT3(文章生成AI)を使ってTwitterのリプに自動返信しました。
【コードはこちら】
# インストールがまだの方
pip install openai
pip install schedule
pip install tweepy
# モジュールをインポート
import openai
import schedule
import time
import tweepy
# Twitter認証(APIキー等の取得方法は概要欄へ)
API_KEY=”取得したAPI_KEYを記入してください”
API_SECRET=”取得したAPI_SECRETを記入してください”
ACCESS_TOKEN=”取得したACCESS_TOKENを記入してください”
ACCESS_TOKEN_SECRET=”取得したACCESS_TOKEN_SECRETを記入してください”
auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)
# OpenAIのAPIキーを記入(取得方法は概要欄へ)
openai.api_key = “取得したAPI_KEYを記入してください”
# モデル設定
model = “text-davinci-003”
# 自動返信するツイートのID
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)
【Twitter APIの取得方法】
https://arika-blog.com/twitter-api/
【OpenAIのAPY keyの取得方法】
https://arika-blog.com/openai/
【Completion.create()のパラメータについて】
https://beta.openai.com/docs/api-reference/completions/create
【価格について】
https://openai.com/api/pricing/
【トークン数を調べる】
https://beta.openai.com/playground
blog
https://arika-blog.com/
Twitter
Tweets by python_academia
#python
#ChatGPT
#GPT3
#Twitter
#API
#OpenAI
#自動化
#文章生成AI
#twitterbot
#bot