見出し画像

楽天APIを利用したホテルの空室検索ができるLINE BOT ~ ChatGPTを利用したPythonプログラミング

概要

以前作成した楽天トラベルの空室検索APIを利用したLINE BOTを、今回はChatGPTを利用してPythonで作成します。ChatGPTを使わずに作成したLINE BOTの詳細な内容・解説は前回の記事を確認してください。

前回の記事と見比べながら読み進めていただけるとより分かりやすくなると思います。

ChatGPTについて

ChatGPTは、対話型で自由にAIがテキストを応答してくれるサービスです。あらゆる分野に応用されていますが、様々なプログラミング言語のコードも出力してくれるのでプログラミング分野でも活用されています。
ChatGPTには、2023年5月現在、無料版のGPT-3.5と有料版のGPT-4の二種類があります。GPT-4の方がより回答が正確になるため、より高性能かつ正確で高度なプログラミングにも応用が可能です。今回の記事でもGPT-4を利用しています。

作成するプログラムの仕様

ChatGPTに作成してもらうプログラムを指示するのに、まずは仕様を決めなければなりません。前回の記事に準じて以下の仕様を指示することにしました。

  • 楽天トラベルの空室検索APIを利用したLINE BOT

  • ユーザーは「場所」、「チェックイン日」、「宿泊日数」に3つを送信

  • BOTはホテル名とURLを返信(最大5件)

ファイル構成を考えてもらう

まずは、上記の仕様をもとにChatGPTにファイル構成を考えてもらいます。

すると、4つのファイルに分けて具体的なコードとともに回答してくれました。前回の記事では作成していなかった`config.py`という、APIキーなどを記述した設定ファイルも用意してくれました。この程度の長さの設定ファイルであれば、別ファイルに分けるまでもないので前回は特に作成しませんでしたが、このほうが後からの変更などが容易になるなどのメリットもあるので今回はこのままファイルを分けて進めてみます。

なお、今回の記事では特に利用はしませんが、4つのファイルのコードの後には具体的な実行方法まで記述してくれています。

ChatGPTの回答は長すぎると途中で切れてしまいます。このような場合は「続き」などと質問すると続きの回答を書いてくれます。

rakuten_api.pyを修正する

ざっとコードを眺めると、rakuten_api.pyに以下の欠陥があることが分かります。

  • 引数として設定されているlocationがどこにも使われていない

  • 変数pdがどこにも定義されていない

これらの点を指示して再度修正してもらいます。また、楽天APIでは単なる場所名でホテルの検索をすることはできないため、前回の記事では場所を緯度・経度に変換してからAPIにリクエストしました。今回も同様にそのように修正してもらいます。

これならよさそうです。ただし注意深く見ていくと、APIに渡すパラメータとして指定地点からの距離(searchRadius)の単位はkmであるのにもかかわらず3000になっている点、緯度・経度タイプ(datumType)が指定されておらずデフォルトの日本測地系(2)になっている点など不備があります。

ここから先は

10,061字 / 12画像

¥ 1,200

この記事が気に入ったらチップで応援してみませんか?