見出し画像

Googleの生成AI Gemini APIで日本旅行モデルコース提案アプリを作ってみたので作り方ガイドとAPI所感

Googleの生成AI AIであるGemini API、OpenAIのAPIと違って無料枠があるということでワクワクしながらAPIで日本旅行モデルコース提案アプリを作ってみました。(APIの無料枠内でやってるのでどこかでWEBサイトは閉じます)

作ったアプリ



下記はローカルでGemini 1.5Proで動かしているやすですがこんなものを出してくれます

【3日間山口食べ尽くし&聖地巡礼の旅】東京発!過密スケジュールで最高の動画ネタGetだぜ☆彡
総予算目安:約150,000円(3人分)

1日の予算目安:約50,000円(3人分)

交通費:約15,000円
宿泊費:約15,000円
食費:約15,000円
観光費:約5,000円
【注意】

新幹線はグリーン車利用、宿泊は1室を3名で利用などを想定しています。
飛行機利用や宿泊プラン、食事内容によって金額は大きく変動します。
各自で最新情報や料金を必ずご確認ください。
Day1:食いだおれの街・下関へGO!フグもラーメンも食べ尽くすべし!

(予算目安:約45,000円)

早朝:東京駅出発!新幹線でビューンと新山口駅へ!(約4時間半)
ミッション:車内で駅弁を賭けて早食い対決!
午前:レンタカーを借りて、いざ下関へ!
唐戸市場で新鮮な海の幸を堪能!フグも忘れずに!(約5,000円/人)
ミッション:市場の人と交渉して激レア食材Getなるか!?
海響館でイルカショーに大興奮!幻想的なクラゲの世界も必見!(約1,800円/人)[1]
午後:下関ラーメンスタジアムで食べ比べ!ラーメン愛を語ろう!(約3,000円/人)
ミッション:3人で完食目指してラーメン大食いチャレンジ!
夕方:角島大橋を渡って、美しい夕日をバックに感動のフィナーレ!
ホテルへチェックイン。(約5,000円/人)
Day2:アニメの世界に飛び込もう!聖地巡礼でテンションMAX!

(予算目安:約55,000円)

早朝:絶景スポットで朝日を浴びてエネルギーチャージ!
ミッション:寝起きドッキリで爆笑を誘え!
午前:萩・津和野エリアで「エヴァンゲリオン」の聖地巡礼!
萩博物館で「エヴァンゲリオン」の世界観に浸ろう!(約300円/人)[2]
劇中に登場する旅館や風景を探して、名シーンを再現だ!(要事前確認)
ミッション:エヴァのコスプレで街ブラ!恥ずかしがらずにLet's Go!
午後:山口宇部空港から飛行機で萩・石見空港へ!(約40分)
夕方:温泉街を散策して、風情ある街並みを満喫!
地元グルメを堪能して、旅の疲れを癒やそう!(約5,000円/人)
ミッション:射的やスマートボールで童心に返って対決!
ホテルへチェックイン。(約10,000円/人)
Day3:歴史とロマンを感じる旅!秋芳洞の神秘に感動!

(予算目安:約50,000円)

早朝:秋芳洞へ!日本最大級の鍾乳洞のスケールに圧倒されよう!(約1,300円/人)[3]
ミッション:洞窟探検でドキドキ体験!恐怖映像風編集に挑戦!
午前:秋吉台でカルスト台地の大パノラマを満喫!
サイクリングやハイキングで自然を満喫!(約3,000円/人)
午後:お土産 shopping!旅の思い出をたくさん詰め込もう!
ミッション:予算内で家族へのお土産をGetできるか!?
夕方:新山口駅でレンタカーを返却。
新幹線で東京駅へ!(約4時間半)
ミッション:車内で編集会議!今回の旅の反省点を共有!
【編集ポイント】

テンション高めのBGMと効果音で動画を盛り上げよう!
早送り、スローモーション、テロップなどを駆使して、テンポよく見せる!
メンバーの個性を活かした企画で、視聴者を飽きさせない工夫を!
【情報源】 [1] 海響館:https://www.kaikyokan.net/ [2] 萩博物館:https://www.city.hagi.lg.jp/hagihaku/ [3] 秋芳洞:https://akiyoshidai.jp/

【その他】

このモデルコースはあくまでも一例です。
興味や体力に合わせて、自由にアレンジしてください!
現地の観光情報は事前にご確認ください。
最高の旅の思い出を動画に残して、みんなにシェアしよう!

Gemini APIの無料枠は結構シビア、あるだけマシなレベル

GeminiAPIはGemini1.5 flashとGemini1.5Proがありますが
性能的には名前のとおり flash  < pro 
でフリーのレート制限があります。

問題になるのはトークンよりも Proの1日あたりのリクエストが50回まで、Flashのリクエストが1500までという部分でないでしょうか。
ちなみに今回の旅行ガイドアプリはトークンに関しては入力で1000、出力で1000ぐらいで1回2000トークンです。

Gemini ProはGPT4レベル?基本そこまで嘘をつかないがGemini Flashはやばい、嘘吐きまくり。


gemini1.5 flash(streamlit)とgemini1.5 pro(ローカル)での比較

得に目立つのがアニメの聖地巡礼に関してはgemini1.5 flashは20%ぐらいしか正解率がないですね、gemini 1.5proで75%といったところ。

恐ろしいのが宮崎の旅行を指定しただけで、「宮崎に宮崎駿の博物館があるからアニメ聖地巡礼にいけ!」みたいなファンタジーを作り出すgemini1.5flash君・・・。

午前: 宮崎県高千穂町にある「高千穂峡」へ。雄大な自然と神秘的な雰囲気
午前: 「青島」へ。奇岩が連なる海岸線を散策し、パワースポット「鬼の洗濯板」を訪れる。
昼: 青島で、新鮮な海の幸を味わえるランチを楽しむ。
午後: 「宮崎アニメパーク」で、宮崎駿監督作品の展示やアトラクションを楽しむ。
夜: 宮崎空港から東京へ (飛行機 約2時間30分)。
予算内訳:

gemini1.5flash君

アニメ、Vtuberの聖地巡礼のデータはgemmini1.5-proもやばいgemini1.5flashはめちゃくちゃ

一般的なグルメや観光名所のガイドは結構あってると思いますが、アニメ系になるととたんにポンコツになるので、ここらへんはRAGなどデータを読み込ませて正確性をあげるしかなさそうです。

1.5Pro で佐賀旅行を提案してもらったとき

Gemini APIで国内旅行してもらうコンソールで動かすためのシンプルなPythonコード

import google.generativeai as genai
import os
import dotenv

# 環境変数からAPIキーを読み込み
dotenv.load_dotenv()
genai.configure(api_key=os.environ["GEMINI_API_KEY"])

def create_travel_prompt(start, destination, num_people, interests, duration, special_requests):
    # Gemini AIに送信するプロンプトのテンプレートを生成
    prompt = f"""
    日本旅行モデルコースを作成してください。
    - 出発する都道府県: {start},
    - 旅行先の都道府県: {destination}
    - 人数: {num_people}
    - 興味の対象: {interests}
    - 滞在日数: {duration}
    - 特別リクエスト: {special_requests}
    以上の条件に基づき、訪れるべき場所やアクティビティを含んだおすすめの旅行モデルコースと日ごとの予算と合計予算を提案してください。
    予算には交通費、宿泊費も含めてください。
    """

    return prompt

# 入力情報(例)
start = "東京"
destination = "熊本"
num_people = "1人"
interests = "歴史、食、博物館、アニメ"
duration = "3日"
special_requests = "ゆっくり観光したい" #なし、できるだけ多くまわりたい

# プロンプトを生成
travel_prompt = create_travel_prompt(start, destination, num_people, interests, duration, special_requests)

# Gemini AIを使用してモデルコースを生成
# gemini-1.5-pro-latest
model = genai.GenerativeModel("gemini-1.5-pro")

print("total_tokens: ", model.count_tokens(travel_prompt))

response = model.generate_content(
    travel_prompt,
        generation_config=genai.types.GenerationConfig(
            temperature=1.0,
    ),
    )
print(response.text)

print(response.usage_metadata)

temperatureは0.0~2.0まで指定可能。0.0が創造性高い、2.0が正確性が高い。

Gemini APIのAPI使用状況の確認方法

GCPの API / サービスの詳細 画面でみれる


Streamlitで動いているソースコード

Streamlitで動いているものはパブリックレポジトリなので下記においています


この記事が気に入ったらサポートをしてみませんか?