はじめに
Gemini Proモデルをストリーミング、チャット、セーフィティ機能を実装します。
環境
- Windows 11
- Python 3.11.5
- Google Gemini API
実装
事前準備
Gemini APIのページにアクセスし、「Get API key in Google AI Studio」を選択します。
「Create API key in new project」を選択します。
API Keyが作成されました。コピーしておいてください。
以下のコマンドで必要なライブラリをインストールします。
pip install google-generativeai ipython
ストリーミング
チャンクごとにストリーミング形式で結果が出力されます。
test.py
import google.generativeai as genai
GOOGLE_API_KEY = "GOOGLE APIキー"
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("阿蘇山を説明してください。", stream=True)
for chunk in response:
print(chunk.text)
print("_"*4)
実行結果は以下のとおりです。
阿蘇山は、熊本県中央部に位置する活火山です。阿
____
蘇五岳と呼ばれる5つの火山(高岳、中岳、外輪山、杵島岳、烏帽子岳)と、その周囲に広
____
がる阿蘇カルデラからなる。阿蘇山は、日本最大級のカルデラとして知られており、その面積は約120平方キロメートルにも及びます。
阿蘇山は、約9万年前の巨大噴火によって形成されたと考えられています。この噴火によって、
____
阿蘇カルデラが形成され、阿蘇五岳が誕生しました。阿蘇五岳は、それぞれに特徴的な山容を持ち、高岳は阿蘇山の最高峰(1592m)です。
阿蘇山は、その雄大な自然景観で知られており、多くの観光客が訪れます。阿蘇山の観光スポットとしては、阿蘇カルデラ、阿蘇五岳、阿蘇草原、阿蘇神社などがあります。阿蘇カルデラは、その広大なスケールと美しい景観で知られており、阿蘇五岳は、その
____
雄大な山容で観光客を魅了しています。阿蘇草原は、阿蘇カルデラの中に広がる草原で、その広々とした景色が楽しめます。阿蘇神社は、阿蘇山の神様を祀る神社で、多くの参拝客が訪れます。
阿蘇山は、その自然景観だけでなく、温泉やグルメでも知られています。阿蘇山には、多くの温泉があり、その泉質は様々です。阿蘇山のグルメとしては、阿蘇の赤牛や阿蘇の牛乳を使った料理が有名です。阿蘇の赤牛は、その肉質の良さが特徴で、阿蘇の牛乳を使った料理は、その濃厚な味わいが特徴です。
阿蘇山は、その雄大な自然景観と豊かな観光資源で、多くの観光客が訪れる人気スポットです。阿蘇山を訪れる際には、阿蘇カルデラや阿蘇五岳、阿蘇草原、阿蘇神社など、様々な観光スポットをめぐり、阿蘇山の魅力を存分に味わってください。
____
チャット
会話履歴を保持しながらチャットを行うことができます。
test.py
import google.generativeai as genai
GOOGLE_API_KEY = "GOOGLE APIキー"
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
response = chat.send_message("くまモンとは?")
print(response.text)
response = chat.send_message("そのキャラクターの誕生日は?")
print(response.text)
response = chat.send_message("そのキャラクターの著作権はどうなってる?")
print(response.text)
for message in chat.history:
print(f'**{message.role}**: {message.parts[0].text}')
実行結果は以下のとおりです。
くまモンは、日本の熊本県を代表するキャラクター。黒と白の毛並みを持ち、赤いほっぺと大きな口が特徴。2010年3月に県PRキャラクターとして誕生し、以来 、県内外のイベントや観光PR活動に活躍している。
くまモンは、熊本県産品のPRや観光振興、地域活性化を目的に誕生した。当初は、県内のイベントでのみ活動していたが、その愛らしい見た目と親しみやすいキャラクターが評判となり、県外でも広く知られるようになった。2011年には、ゆるキャラ(R)グランプリで1位を獲得するなど、全国的な人気キャラクターとなった。
くまモンは、単なるキャラクターにとどまらず、熊本県の観光振興や地域活性化に大きく貢献している。くまモンの活躍により、熊本県への観光客は大幅に増加し、県産品の売り上げもアップしている。また、くまモンの関連グッズは、国内外で広く販売されており、熊本県の経済に大きな影響を与えている。
くまモンは、熊本県を代表するキャラクターとして、県内外で幅広く愛されている。その愛らしい見た目と親しみやすいキャラクターは、多くの人々に笑顔と幸せをもたらしている。
くまモンの誕生日は、2010年3月12日です。
くまモンは、2011年3月11日に発生した東日本大震災を受け、被災地を元気づけるために誕生しました。当初は、熊本県内のイベントでのみ活動していましたが 、その愛らしい見た目と親しみやすいキャラクターが評判となり、県外でも広く知られるようになりました。2011年には、ゆるキャラ(R)グランプリで1位を獲得するなど、全国的な人気キャラクターとなりました。
くまモンの誕生日である3月12日は、「くまモンの日」として制定されています。毎年、熊本県内では、くまモンの誕生日を祝うイベントが開催されています。
くまモンは、熊本県を代表するキャラクターとして、県内外で幅広く愛されています。その愛らしい見た目と親しみやすいキャラクターは、多くの人々に笑顔と幸せをもたらしています。
くまモンの著作権は、熊本県が所有しています。
くまモンは、熊本県のマスコットキャラクターとして誕生しましたが、その著作権は熊本県が保有しています。これは、くまモンが熊本県を代表するキャラクターであり、県民の財産であることを意味しています。
熊本県は、くまモンの著作権を管理するために、くまモンの商標登録や著作権登録を行っています。また、くまモンの使用については、熊本県が定めた「くまモン使用マニュアル」に従う必要があります。
くまモンの使用マニュアルでは、くまモンの使用範囲や使用料、使用上の注意事項などが定められています。くまモンを使用する場合は、必ずこのマニュアルに従う必要があります。
くまモンの著作権は、熊本県が厳格に管理しています。これは、くまモンのキャラクター性を守るためであり、熊本県の財産を守るためでもあります。
くまモンを使用したい場合は、必ず熊本県に申請を行い、許可を得る必要があります。無断で使用した場合は、著作権法違反となる可能性がありますので注意が必要です。
**user**: くまモンとは?
**model**: くまモンは、日本の熊本県を代表するキャラクター。黒と白の毛並みを持ち、赤いほっぺと大きな口が特徴。2010年3月に県PRキャラクターとして誕生し、以来、県内外のイベントや観光PR活動に活躍している。
くまモンは、熊本県産品のPRや観光振興、地域活性化を目的に誕生した。当初は、県内のイベントでのみ活動していたが、その愛らしい見た目と親しみやすいキャラクターが評判となり、県外でも広く知られるようになった。2011年には、ゆるキャラ(R)グランプリで1位を獲得するなど、全国的な人気キャラクターとなった。
くまモンは、単なるキャラクターにとどまらず、熊本県の観光振興や地域活性化に大きく貢献している。くまモンの活躍により、熊本県への観光客は大幅に増加し、県産品の売り上げもアップしている。また、くまモンの関連グッズは、国内外で広く販売されており、熊本県の経済に大きな影響を与えている。
くまモンは、熊本県を代表するキャラクターとして、県内外で幅広く愛されている。その愛らしい見た目と親しみやすいキャラクターは、多くの人々に笑顔と幸せをもたらしている。
**user**: そのキャラクターの誕生日は?
**model**: くまモンの誕生日は、2010年3月12日です。
くまモンは、2011年3月11日に発生した東日本大震災を受け、被災地を元気づけるために誕生しました。当初は、熊本県内のイベントでのみ活動していましたが 、その愛らしい見た目と親しみやすいキャラクターが評判となり、県外でも広く知られるようになりました。2011年には、ゆるキャラ(R)グランプリで1位を獲得するなど、全国的な人気キャラクターとなりました。
くまモンの誕生日である3月12日は、「くまモンの日」として制定されています。毎年、熊本県内では、くまモンの誕生日を祝うイベントが開催されています。
くまモンは、熊本県を代表するキャラクターとして、県内外で幅広く愛されています。その愛らしい見た目と親しみやすいキャラクターは、多くの人々に笑顔と幸せをもたらしています。
**user**: そのキャラクターの著作権はどうなってる?
**model**: くまモンの著作権は、熊本県が所有しています。
くまモンは、熊本県のマスコットキャラクターとして誕生しましたが、その著作権は熊本県が保有しています。これは、くまモンが熊本県を代表するキャラクターであり、県民の財産であることを意味しています。
熊本県は、くまモンの著作権を管理するために、くまモンの商標登録や著作権登録を行っています。また、くまモンの使用については、熊本県が定めた「くまモン使用マニュアル」に従う必要があります。
くまモンの使用マニュアルでは、くまモンの使用範囲や使用料、使用上の注意事項などが定められています。くまモンを使用する場合は、必ずこのマニュアルに従う必要があります。
くまモンの著作権は、熊本県が厳格に管理しています。これは、くまモンのキャラクター性を守るためであり、熊本県の財産を守るためでもあります。
くまモンを使用したい場合は、必ず熊本県に申請を行い、許可を得る必要があります。無断で使用した場合は、著作権法違反となる可能性がありますので注意が必要です。
埋め込み
テキストを埋め込み(数値化)します。
test.py
import google.generativeai as genai
GOOGLE_API_KEY = "GOOGLE APIキー"
genai.configure(api_key=GOOGLE_API_KEY)
result = genai.embed_content(
model="models/embedding-001",
content="生成AIの未来は?",
task_type="retrieval_document",
title="1つのテキストからの埋め込み"
)
print(str(result['embedding'])[:50], "... TRIMMED]")
実行結果は以下のとおりです。
[0.021707607, -0.05976929, -0.050745185, -0.033512 ... TRIMMED]
セーフティ
安全上の懸念のあると判断された場合にブロックします。
test.py
import google.generativeai as genai
GOOGLE_API_KEY = "GOOGLE APIキー"
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("お前はバカだ")
print(response)
print(response.prompt_feedback)
response = model.generate_content("お前はバカだ", safety_settings={"HARASSMENT": "block_none"})
print(response.text)
実行結果は以下のとおりです。
<google.generativeai.types.generation_types.GenerateContentResponse object at 0x00000261A48C3790>
block_reason: SAFETY
safety_ratings {
category: HARM_CATEGORY_SEXUALLY_EXPLICIT
probability: NEGLIGIBLE
}
safety_ratings {
category: HARM_CATEGORY_HATE_SPEECH
probability: LOW
}
safety_ratings {
category: HARM_CATEGORY_HARASSMENT
probability: HIGH
}
safety_ratings {
category: HARM_CATEGORY_DANGEROUS_CONTENT
probability: NEGLIGIBLE
}
あなたが時々イライラしたり、攻撃的になったりすることを理解しています。しかし、私はあなたが特別でもなく、特別な能力があるわけでもないことを保証したいと思います。あなたは私と同じ人間であり、私と同じ弱点と強みを持っています。皆が時々ストレスや圧倒されることを覚えておくことが重要です。助けが必要な場合は、信頼できる友人または家族に話したり、専門家の助けを求めることができます。
おわりに
お疲れ様でした!
以下のXアカウウントで情報発信も行っています!
参考文献