Open12
Chatgpt API + Twitter API で Navy-chanを作ってみるまでの考察
今回の参考記事
さぁいこう
この記事便利
.envがよく分からなかったが。
このコードでは、dotenv
ライブラリを使用して環境変数を定義しています。.env
ファイルに環境変数を定義し、load_dotenv()
関数を呼び出すことで、そのファイルから環境変数を読み込みます。
.env
ファイルは、スクリプトと同じディレクトリに配置する必要があります。ファイルの中身は以下のような形式です:
CONSUMER_KEY=your_consumer_key
CONSUMER_SECRET=your_consumer_secret
ACCESS_TOKEN=your_access_token
ACCESS_TOKEN_SECRET=your_access_token_secret
BEARER_TOKEN=your_bearer_token
各行には環境変数名とその値が、イコール(=
)で区切られています。このファイルにTwitter APIの認証情報を記述し、実行時にスクリプトがこれらの値を読み込むことができます。
load_dotenv()
関数を呼び出すことで、.env
ファイルの内容が現在の環境に読み込まれ、後続のコードでこれらの環境変数を使用することができます。
ということなので、早速作っておいた。便利だね。
Navy-chan twitterを作り、developper modeにアクセス。
利用目的は適当にnavy-chanを作るためなどとして完了
chatgptにコードを作成していただいた。
一応動き始めた。しかし、返信はまだできない
replyはこれでできると思ったらだめでした。どうしたら良いんですかね。
def reply_tweet():
client = tweepy.Client(bearer_token=bea,consumer_key=ck, consumer_secret=cs,
access_token=at, access_token_secret=ats)
print("client",client)
# Replace 'Navy_ChanAI' with the handle you're interested in
query = 'to:Navy_ChanAI'
# This will search for the 100 most recent tweets mentioning the handle
tweets = client.search_recent_tweets(query=query, max_results=100)
print("tweets",tweets)
for tweet in tweets.data:
print(tweet.text)
# Assume 'tweets' is the list of tweets you've retrieved
for tweet in tweets.data:
# The ID of the tweet you're replying to
in_reply_to_tweet_id = tweet.id
# The text of your reply
reply_text = "Thanks for your tweet!"
# This will create a new tweet in reply to the tweet with the ID 'in_reply_to_tweet_id'
response = client.create_tweet(text=reply_text, in_reply_to_tweet_id=in_reply_to_tweet_id)
print(response)```
リプライするためにはbasicプランが必要かも。悲しい。
他に方法は無いのかな。
ひとまず自動投稿まで。
ck = API_KEY
cs = API_KEY_SECRET
at = ACCESS_TOKEN
ats = ACCESS_TOKEN_SECRET
def create_tweet():
client = tweepy.Client(consumer_key=ck, consumer_secret=cs,
access_token=at, access_token_secret=ats)
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
messages=[
{'role': 'user', 'content': '130字以内で解答してください。Navy-chanとして可愛く、明るく感情表現豊かなコメントをしてください。幼い表現を用いることが大事です。それでいて、どこか大人びていて、理性的な様子が少し見えると好ましいです。ですます口調ではなく、だよ・だねなどの親しみのある口調で話しかけてください。'}],
temperature=0.8 ,
)
client.create_tweet(text=response['choices'][0]['message']['content'])
print(response['choices'][0]['message']['content'])
google functionに登録して自動で動くようにする。
結局 google colabで動かすのが最短
!pip install モジュール
import モジュール
の形式をとって無理やり毎回ダウンロードさせてるので反応は遅いが別に良しといったところ。