Googleの生成AI Gemini APIで日本旅行モデルコース提案アプリを作ってみたので作り方ガイドとAPI所感
Googleの生成AI AIであるGemini API、OpenAIのAPIと違って無料枠があるということでワクワクしながらAPIで日本旅行モデルコース提案アプリを作ってみました。(APIの無料枠内でやってるのでどこかでWEBサイトは閉じます)
下記はローカルでGemini 1.5Proで動かしているやすですがこんなものを出してくれます
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は20%ぐらいしか正解率がないですね、gemini 1.5proで75%といったところ。
恐ろしいのが宮崎の旅行を指定しただけで、「宮崎に宮崎駿の博物館があるからアニメ聖地巡礼にいけ!」みたいなファンタジーを作り出すgemini1.5flash君・・・。
アニメ、Vtuberの聖地巡礼のデータはgemmini1.5-proもやばいgemini1.5flashはめちゃくちゃ
一般的なグルメや観光名所のガイドは結構あってると思いますが、アニメ系になるととたんにポンコツになるので、ここらへんはRAGなどデータを読み込ませて正確性をあげるしかなさそうです。
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で動いているものはパブリックレポジトリなので下記においています
この記事が気に入ったらサポートをしてみませんか?