Open12

Chatgpt API + Twitter API で Navy-chanを作ってみるまでの考察

Reyt0mReyt0m

.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ファイルの内容が現在の環境に読み込まれ、後続のコードでこれらの環境変数を使用することができます。

Reyt0mReyt0m

ということなので、早速作っておいた。便利だね。

Reyt0mReyt0m

Navy-chan twitterを作り、developper modeにアクセス。
利用目的は適当にnavy-chanを作るためなどとして完了

Reyt0mReyt0m

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)```
Reyt0mReyt0m

ひとまず自動投稿まで。

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'])
Reyt0mReyt0m

結局 google colabで動かすのが最短
!pip install モジュール
import モジュール
の形式をとって無理やり毎回ダウンロードさせてるので反応は遅いが別に良しといったところ。