この記事ではChatGPTを使用してAIにTwitterのAPIを使用したPythonのプログラミングコードを書かせてみた結果を共有しています。ChatGPTにプログラミングを書かせる方法やコツなども解説。
もう人間がプログラミングを書かなくていい時代がすぐそこまで来ているかもしれません。
ChatGPTとは
ChatGPTは2022年11月末にOpenAIがリリースしたAIを使用した自然言語処理ツールです。
簡単に言うとAIと会話できるサービスと思っていただければいいです。
皆さんもLINEなどでAIが自動返信して会話を楽しめるサービスを使ったことがあるかもしれません。
OpenAIより2022年11月30にリリースされ、登録さえすれば現在は無料で誰でも使用が可能です。
リクエストごとに開発者側に料金が発生しているので将来は有料になるようです。
この記事の本題でもありますが、ChatGPIの凄いところ質問すればプログラミングのコードもChatGPTが書いてくれます。
使い方
https://openai.com/blog/chatgpt/
ChatGPTのサイトで会員登録をしたらすぐに使用できます。記事執筆時の2023年1月現在は無料で使用でき、クレジットカードなどの登録も不要です。
ログインしたらコンソールに画面に遷移するので後はチャットを始めるだけです。
日本語対応はしてる?
ユーザーインターフェイスは英語ですが質問は日本語でもできるので英語が苦手な人も安心ですね。
Googleの機能を使用すればインターフェイスも日本語に翻訳することも可能です。
実際にPythonコードを書かせてみた
ChatGPTとのやり取り
命令文
Write python programme to reteweet tweets that includes a chosen word using tweepy. (Pythonで選んだワードが含まれているツイートをリツイートするプログラムをTweepy(ライブラリ)使用して書いて)
英文的には赤字のtweetsを入れた方が綺麗そうだけど問題なく読み取ってくれました。
実際のコード
import tweepy
# Authenticate with Twitter
consumer_key = "YOUR_CONSUMER_KEY"
consumer_secret = "YOUR_CONSUMER_SECRET"
access_token = "YOUR_ACCESS_TOKEN"
access_token_secret = "YOUR_ACCESS_TOKEN_SECRET"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Search for tweets that include a chosen word
word = "Python"
search_results = api.search(q=word, count=100)
# Retweet the tweets
for tweet in search_results:
try:
api.retweet(tweet.id)
print("Retweeted: " + tweet.text)
except tweepy.TweepError as e:
print(e)
かなりシンプルで綺麗なコードですね。こちらのコードを使用するにはTwitterのAPIの登録が必要ですが私は既に登録済みなのKEYさえ入れればそのまま使用できそうです。
Word =’Python’のPythonを好きなワードに変更するとそのツイートがリツイートできそうです。count=100とは100件と言うことなのでこのままだと100件もリツイートするのでテスト用であれば5件程度で十分でしょうか。
レスポンス
In this example, I’m using the search method to search for tweets that include the word “Python” and limiting the number of results to 100. Then I iterate over the search results and use the retweet method to retweet each tweet.You should replace YOUR_CONSUMER_KEY, YOUR_CONSUMER_SECRET, YOUR_ACCESS_TOKEN, YOUR_ACCESS_TOKEN_SECRET with your actual Twitter API credentials.Also you can change the word that you want to search for, by replacing “Python” in the word variableKeep in mind that this is a basic example and you should add error handling and other functionality as needed for your specific use case, such as rate limit handling.
ChatGPTはコードの解説まで丁寧にレスポンスしてくれます。要約すると「’Python’が含まれているツイートを100件リツートするよ。APIのKEYは自分のに変えてから使ってね。指定ワードを変えるときは’Python’を変更してね。これは基本的な例だからユースケースに合わせて必要に応じて自分で変更してね。」と言った感じでしょうか。非常に丁寧にコードの使い方まで解説してくれています。
実際に動かしてみた
AttributeError: 'API' object has no attribute 'search'
エラーが出ました。searchメソッドが存在しないようです。
TwitterAPIの公式ドキュメントを見るとsearch_tweetsというメソッドがあるのでそちらに変更しました。
変更前
search_results = api.search(q=word, count=5)
変更後
search_results = api.search_tweets(q=word, count=5)
変更後は無事にプログラムが動き、特定のツイートをリツイートすることができました。
今回は’NIKE’というワードが含まれているツイートをリツイートしてみました。
感想
私は普段、プログラミングとはかけ離れた仕事をしているのでたまに趣味でプログラミングを書く度に「ループってどうやるんだっけ?」と調べながらやっているので毎回、かなり時間がかかります。
最近はプログラミングすること自体が億劫となっていましたが久しぶりにプログラミングが楽しいと思えました。
ChatGPTを使った感想としては命令文を少し変えるだけでアウトプットがかなり変わるので命令を出す側の技術も必要になってきます。
プログラミングの実行自体は自身のクライアントで行うのでプログラミング未経験の人には少しハードルが高いかもしれません。
言語はPythonに限らず色々な言語で書かせることができ、数字の計算系のプログラムなどはかなり高い精度で求めているプログラミングを書いてくれる印象です。
APIを使用したプログラミングを他にもいくつか書かせましたが、少しでも複雑になると存在しないメソッドが含まれていることがよくありました。ですが公式のドキュメントを見て少し修正すれば問題ないレベルが多かったです。
メソッドを独自に作成するのもそうですが、ChatGPTのアウトプット必ずしも正しいとは限りません。解答が分からない場合でもあたかも正解のような返答を返すことがあるので注意が必要です。
Pythonのrequestsライブラリを使用してHTML解析的なこともしましたがあまり上手くいきませんでした。これは私が指定したプログラミングが複雑だっただけかも?
Excelの関数を作成したりも出来るので、仕事でも活躍しそうですね。
AIもここまで来たかと個人的にはとても感動しました。最近は趣味のNBAの事で頭がいっぱいで新しい技術への関心が薄れているのでこれを機にまた色々、勉強していきたいと思いました。
もっと複雑なコードもその内AIが書いてくれて人間のプログラマーに頼らなくてもいい日が近い将来、現実になるかもしれませんね。
まとめ
・誰でも無料で使用(将来有料になる可能性あり)できる
・簡単なプログラミングを書かせることができる
・プログラミングを書かせる側にも技術が必要
・質問は日本語にも対応(インターフェイスは英語)
・実行はクライアント側で行うので多少のプログラミング知識が必要
・複数のプログラミング言語に対応
・質問・プログラミングの解答が正しいとは限らない
・複雑な長いプログラミングは向かない