top of page

Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#17)/Base64って何?

Google AI studioのプログラムをGoogle Colabに移植したが、どうやってプロンプト修正?

前回の「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#15)/Google AI studioのプログラムをGoogle Colabに移植」で、Google AI Studioで開発したプロンプトを、Google Colabに移植しました。そして、前回は、そのまま実行しました。


ところで、この時にみなさんのGoogle Driveには、"aistudio_gemini_prompt_freeform_b64.ipynb のコピー"という、ファイルができているはずです。

aistudio_gemini_prompt_freeform_b64.ipynb のコピー ファイル
aistudio_gemini_prompt_freeform_b64.ipynb のコピー ファイル

このファイルを修正すれば、より多くの画像ファイルについて、Geminiの生成AIによる推定が行えるはずです。今回は、その方法を、少しのプログラム修正で、行なってみましょう。


Google AI Studioから移植したPythonのプログラムは、プロンプトがBse64で記述

このプログラムファイル、よく見ると、プログラムの中に、日本語で記述したプロンプトが見つかりません。実際には、上記の図の中の、contents_b64という変数に、"製品の写真とターゲット層を想定し、魅力的なマーケティングのコピー文を書いてください。"という日本語の指示が、書かれています。しかし、人が読める文字列(ascii)ではなく、コンピューターが理解できるBse64というコードに変換されています。


contents_b64
contents_b64


今回は、このBse64をGoogle Colabで、取りか使うプログラム改良を今回は行いましょう。


Google Colabのファイル名を変更

まずは、この"aistudio_gemini_prompt_freeform_b64.ipynb のコピー"というファイルは、また使うかもしれないので、ファイル名を別名に変更しましょう。


ここでは、ファイル名を、"改良マーケティング コピーの作成.ipynb"と変更しましょう。


Google Colabのファイル名を変更
Google Colabのファイル名を変更

Base64をアスキーに変更するプログラムを入力

まず、最初に、Contnets_b64という変数に何が書かれているのか、解読するプログラムを入力しましょう。


Parse the arggumentsという段落説明の直下に、コード欄を作り、以下のプログラムを書きます(コピー&ペースト)。

data_b64 = 'W3sicGFydHMiOlt7InRleHQiOiLoo73lk4Hjga7lhpnnnJ/jgajjgr/jg7zjgrLjg4Pjg4jlsaTjgpLmg7PlrprjgZfjgIHprYXlipvnmoTjgarjg57jg7zjgrHjg4bjgqPjg7PjgrDjga7jgrPjg5Tjg7zmlofjgpLmm7jjgYTjgabjgY/jgaDjgZXjgYTjgIIifSx7InRleHQiOiLoo73lk4Hjga7lhpnnnJ86ICJ9LHsiaW1hZ2UiOnsiaW1hZ2VfdXJsIjoiaHR0cHM6Ly90MC5nc3RhdGljLmNvbS9saWNlbnNlZC1pbWFnZT9xPXRibjpBTmQ5R2NTOWpMc0dJcWM5WmtOYzlVYW4weHF3TWhMRktwcE1HT0xCWE5VUll2bGpCS0xhbGtVY3R4VTM2ZE5Xcm10NndURW1rYTlaM3N5b1p6Y3Q4THBhNkEifX0seyJ0ZXh0Ijoi44K/44O844Ky44OD44OI5bGkOiDkuK3lubTnlLfmgKcifSx7InRleHQiOiLjg57jg7zjgrHjg4bjgqPjg7PjgrDjga7jgrPjg5Tjg7zmloc6IOODkeODr+ODvOOBqOa0l+e3tOOBrue4ruWbs+OAgea1gem6l+OBp+mtheaDkeeahOOBquOCueODneODvOODhOOCq+ODvOOCkuOBlOe0ueS7i+OBl+OBvuOBmeOAguOBneOCjOOBr+WNmOOBquOCi+OCr+ODq+ODnuOBp+OBr+OBquOBj+OAgeOBguOBquOBn+OBruS6uueUn+OBuOOBruaDheeGseOBqOaPuuOCi+OBjuOBquOBhOWNk+i2iuaAp+OBuOOBruOCs+ODn+ODg+ODiOODoeODs+ODiOOBruixoeW+tOOBp+OBmeOAguOCueODquODq+OCkuWRs+OCj+OBhOOAgeeptualteOBruODieODqeOCpOODk+ODs+OCsOODl+ODrOOCuOODo+ODvOOCkua6gOWWq+OBl+OBpuOBj+OBoOOBleOBhOOAgiJ9LHsidGV4dCI6IuijveWTgeOBruWGmeecnzogIn0seyJpbWFnZSI6eyJpbWFnZV91cmwiOiJodHRwczovL3QyLmdzdGF0aWMuY29tL2xpY2Vuc2VkLWltYWdlP3E9dGJuOkFOZDlHY1M3MjJwRHlHM0dsYUM5MTEwSDhFTkhqVjI5YnlSWWhtekJrd3h2YTlFak9VTEFkOTlwQVhUZkM1TE81VWpPcWFUZU5zaVFfaktUTFhoVkYyWHBmdyJ9fSx7InRleHQiOiLjgr/jg7zjgrLjg4Pjg4jlsaQ6IOeSsOWig+S/neitt+S4u+e+qeiAhSJ9LHsidGV4dCI6IuODnuODvOOCseODhuOCo+ODs+OCsOOBruOCs+ODlOODvOaWhzog5oyB57aa5Y+v6IO944Gn55Kw5aKD44Gr5YSq44GX44GE56e75YuV5omL5q6144KS44GK5o6i44GX44Gn44GZ44GL77yf44GT44Gu6buS44GE6Ieq6Lui6LuK44Gv44GE44GL44GM44Gg44KN44GG44CC6Ieq6Lui6LuK44Gv44CB5LqM6YW45YyW54Kt57Sg5o6S5Ye66YeP44KS5YmK5rib44GX44CB5ZCM5pmC44Gr5YGl5bq35aKX6YCy44Gr44KC44Gk44Gq44GM44KL57Sg5pm044KJ44GX44GE5pa55rOV44Gn44GZ44CC55Kw5aKD5L+d6K235Li7576p6ICF44Gq44KJ44CB6Ieq6Lui6LuK44Gr5Yud44KL56e75YuV5omL5q6144Gv44Gq44GE77yBIn0seyJ0ZXh0Ijoi6KO95ZOB44Gu5YaZ55yfOiAifSx7ImltYWdlIjp7ImRyaXZlX2lkIjoiMWVRU3Fpb3lHT09iRlNZSjVDTTZCX0dtV2xzVjFWR2JCIn19LHsidGV4dCI6IuOCv+ODvOOCsuODg+ODiOWxpDog5peF6KGM5aW944GN44Gu55S35oCnIn0seyJ0ZXh0Ijoi44Oe44O844Kx44OG44Kj44Oz44Kw44Gu44Kz44OU44O85paHOiAifV19XQ=='
#data_enc = data.encode('utf-8')
#data_b64 = base64.b64encode(data_enc)
#print(data_b64)

data_b64_dec = base64.b64decode(data_b64)
data_dec = data_b64_dec.decode('utf-8')
print(data_dec)
base64からアスキー文字に変換するプログラム
base64からアスキー文字に変換するプログラム

この、不思議な長い文字列は、その下のコードのcontents_b64に入力されている文字列から、最初の[']と、最後の[']を除いた文字になります。


このプログラムは、ここだけで実行可能です。実行してみましょう。

base64からアスキー文字に変換を実行
base64からアスキー文字に変換を実行

この出力された、文字列が、Google Geminiに渡していた、プロンプトになります。


ASCII文字列をBase64文字列に変更するプログラム

では、このプロンプトを修正可能なプログラムを書きましょう。次にすでに書かれているプログラムの上に、下記の3つの行を加えてみましょう。

data = '[{"parts":[{"text":"製品の写真とターゲット層を想定し、非常に魅力的なマーケティングのコピー文を書いてください。"},{"text":"製品の写真: "},{"image":{"image_url":"https://t0.gstatic.com/licensed-image?q=tbn:ANd9GcS9jLsGIqc9ZkNc9Uan0xqwMhLFKppMGOLBXNURYvljBKLalkUctxU36dNWrmt6wTEmka9Z3syoZzct8Lpa6A"}},{"text":"ターゲット層: 中年男性"},{"text":"マーケティングのコピー文: パワーと洗練の縮図、流麗で魅惑的なスポーツカーをご紹介します。それは単なるクルマではなく、あなたの人生への情熱と揺るぎない卓越性へのコミットメントの象徴です。スリルを味わい、究極のドライビングプレジャーを満喫してください。"},{"text":"製品の写真: "},{"image":{"image_url":"https://t2.gstatic.com/licensed-image?q=tbn:ANd9GcS722pDyG3GlaC9110H8ENHjV29byRYhmzBkwxva9EjOULAd99pAXTfC5LO5UjOqaTeNsiQ_jKTLXhVF2Xpfw"}},{"text":"ターゲット層: 環境保護主義者"},{"text":"マーケティングのコピー文: 持続可能で環境に優しい移動手段をお探しですか?この黒い自転車はいかがだろう。自転車は、二酸化炭素排出量を削減し、同時に健康増進にもつながる素晴らしい方法です。環境保護主義者なら、自転車に勝る移動手段はない!"},{"text":"製品の写真: "},{"image":{"drive_id":"1eQSqioyGOObFSYJ5CM6B_GmWlsV1VGbB"}},{"text":"ターゲット層: 旅行好きの男性"},{"text":"マーケティングのコピー文: "}]}]' # @param {isTemplate: true}
data_enc = data.encode('utf-8')
data_b64 = base64.b64encode(data_enc)
print(data_b64)
ASCII文字列をBase64に変更するプログラムを追加
ASCII文字列をBase64に変更するプログラムを追加

このdataという変数は、先ほど出力した日本語になったプロンプトをそのまま書いています。


このプロンプトを修正するのは、簡単です。右にdataという入力欄があるので、ここを修正すれば良いのです。


この入力プログラムももともとは「魅力的な」という部分を、「非常に魅力的な」に変更してあります。みなさんも、このプロンプトを修正してみましょう。

プロンプトの変更
プロンプトの変更

これで、プロンプトの修正が、Google Colabで行えるようになりました。


Google Geminiにプロンプトを渡す

最後に、もともと書かれていた、今書き加えたプログラムの直下に少しだけ修正を加えます。


今修正しているプログラムの、5行目に先頭に#を入力して、この行を注釈に変えます。そして、その下に、以下の行を書きます。

contents_b64 = data_b64

完成すると、以下のようになります。

プロンプトの支持ブログラムの修正
プロンプトの支持ブログラムの修正

これで、今回のプログラミンは終了です。


Google Colabを実行

あとは、いつものように、上から実行させていくだけです。うまく実行できれば、以下のような出力ブロックが出てくるはずです。


Google ColabでGoogle Geminiを実行した事例
Google ColabでGoogle Geminiを実行した事例


これで、Google AI Studioで開発したプロンプトを、Google Colabに移植して、改良し、Google Geminiが実行できるようになりました。そうしている間に、Google Geminiのモデルが進化し、 使えるプロンプトも増えたので、そちらの実行も行いましょう。


閲覧数:27回0件のコメント
bottom of page