LoginSignup
1
0

Gemini Proモデルを試してみた(ストリーミング、チャット、埋め込み、セーフィティ)

Last updated at Posted at 2023-12-20

はじめに

Gemini Proモデルをストリーミング、チャット、セーフィティ機能を実装します。

環境

  • Windows 11
  • Python 3.11.5
  • Google Gemini API

実装

事前準備

Gemini APIのページにアクセスし、「Get API key in Google AI Studio」を選択します。

image.png
  
規約に同意して、「Continue」を選択します。

image.png
  
「Create API key in new project」を選択します。

image.png

API Keyが作成されました。コピーしておいてください。

image.png

以下のコマンドで必要なライブラリをインストールします。

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アカウウントで情報発信も行っています!

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0