Gemini API : Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
翻訳 : クラスキャット セールスインフォメーション
作成日時 : 03/12/2024
* 本ページは、ai.google.dev の以下のページを参考にしてまとめ直し、適宜、補足説明したものです :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Website: www.classcat.com ; ClassCatJP
Gemini API : Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
このクイックスタートは Gemini API 用の Python SDK を使用する方法を示します、これは Google の Gemini 大規模言語モデルへのアクセスを与えます。このクイックスタートでは、以下の方法を学習します :
- Gemini を使用するために開発環境と API アクセスをセットアップする。
- テキスト入力からテキスト応答を生成する。
- マルチモーダル入力 (テキストと画像) からテキスト応答を生成する。
- マルチターン会話 (チャット) のために Gemini を使用する。
- 大規模言語モデルのために埋め込みを使用する。
要件
このクイックスタートを Google Colab で実行できます、これはこのノートブックをブラウザで直接実行し、追加の環境設定は必要としません。
あるいは、このクイックスタートをローカルで完了するには、開発環境が以下の要件を満たすことを確実にしてください :
- Python 3.9+
- ノートブックを実行するために jupyter のインストール。
セットアップ
Python SDK のインストール
Gemini API 用 Python SDK は google-generativeai パッケージに含まれます。pip を使用して依存関係をインストールします :
pip install -q -U google-generativeai
パッケージのインポート
必要なパッケージをインポートします。
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# Used to securely store your API key
from google.colab import userdata
API キーのセットアップ
Gemini API を使用する前に、まず API キーを取得する必要があります。また一つも持っていない場合、Google AI Studio でワンクリックでキーを生成します。
Colab では、キーを左側のパネルの “🔑” の下にあるシークレット・マネージャに追加します。GOOGLE_API_KEY と名前づけします。
API キーを持てば、それを SDK に渡します。2 つの方法でそれを行うことができます :
- キーを GOOGLE_API_KEY 環境変数に配置する (SDK はそこから自動的にそれを選択します)。
- キーを genai.configure(api_key=…) に渡す。
# Or use `os.getenv('GOOGLE_API_KEY')` to fetch an environment variable.
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
モデルのリストアップ
Gemini API を呼び出す準備ができました。list_models を使用して利用可能な Gemini モデルを確認できます :
- gemini-pro: テキスト only なプロンプトに最適化されています。
- gemini-pro-vision: テキストと画像のプロンプトに最適化されています。
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
models/gemini-1.0-pro models/gemini-1.0-pro-001 models/gemini-1.0-pro-latest models/gemini-1.0-pro-vision-latest models/gemini-pro models/gemini-pro-vision
⭐️ Note : 利用可能なモデルの詳細情報については、それらの機能やレート制限も含めて、Gemini モデル をご覧ください。レート制限の引き上げ をリクエストするオプションがあります。Gemini-Pro モデルのレート制限は毎分 60 リクエスト (RPM) です。
genai パッケージはまた PaLM ファミリーのモデルもサポートしますが、Geimini モデルだけが generateContent メソッドの汎用、マルチモーダル機能をサポートします。
テキスト入力からのテキスト生成
テキスト-only プロンプトのためには、gemini-pro モデルを使用します :
model = genai.GenerativeModel('gemini-pro')
generate_content メソッドは、基礎モデルが何をサポートするかに依存して、マルチターンチャットやマルチモーダル入力を含む、広範囲な種類のユースケースを扱うことができます。利用可能なモデルは入力としてテキストと画像、そして出力としてテキストをサポートするだけです。
最も単純なケースでは、プロンプト文字列を GenerativeModel.generate_content メソッドに渡すことができます :
%%time
response = model.generate_content("What is the meaning of life?")
CPU times: user 110 ms, sys: 12.3 ms, total: 123 ms Wall time: 8.25 s
最も単純な場合、response.text アクセサだけで十分です。フォーマットされたマークダウンテキストを表示するには、to_markdown 関数を使用します :
to_markdown(response.text)
The query of life's purpose has perplexed people across centuries, cultures, and continents. While there is no universally recognized response, many ideas have been put forth, and the response is frequently dependent on individual ideas, beliefs, and life experiences.Ultimately, the meaning of life is a personal journey, and different individuals may discover their own unique purpose through their experiences, reflections, and interactions with the world around them.
- Happiness and Well-being: Many individuals believe that the goal of life is to attain personal happiness and well-being. This might entail locating pursuits that provide joy, establishing significant connections, caring for one's physical and mental health, and pursuing personal goals and interests.
- Meaningful Contribution: Some believe that the purpose of life is to make a meaningful contribution to the world. This might entail pursuing a profession that benefits others, engaging in volunteer or charitable activities, generating art or literature, or inventing.
- Self-realization and Personal Growth: The pursuit of self-realization and personal development is another common goal in life. This might entail learning new skills, pushing one's boundaries, confronting personal obstacles, and evolving as a person.
- Ethical and Moral Behavior: Some believe that the goal of life is to act ethically and morally. This might entail adhering to one's moral principles, doing the right thing even when it is difficult, and attempting to make the world a better place.
- Spiritual Fulfillment: For some, the purpose of life is connected to spiritual or religious beliefs. This might entail seeking a connection with a higher power, practicing religious rituals, or following spiritual teachings.
- Experiencing Life to the Fullest: Some individuals believe that the goal of life is to experience all that it has to offer. This might entail traveling, trying new things, taking risks, and embracing new encounters.
- Legacy and Impact: Others believe that the purpose of life is to leave a lasting legacy and impact on the world. This might entail accomplishing something noteworthy, being remembered for one's contributions, or inspiring and motivating others.
- Finding Balance and Harmony: For some, the purpose of life is to find balance and harmony in all aspects of their lives. This might entail juggling personal, professional, and social obligations, seeking inner peace and contentment, and living a life that is in accordance with one's values and beliefs.
日本語のプロンプトでも試してみましょう :
%%time
response = model.generate_content("人生の意味とは?")
CPU times: user 146 ms, sys: 24.9 ms, total: 171 ms Wall time: 10.6 s
to_markdown(response.text)
人生の意味は人によって異なり、普遍的に受け入れられる正解はありません。ただし、人々が人生に意味を見つけるために一般的に挙げられる共通のテーマをいくつか紹介します。人生の意味は、時間の経過とともに変化することがあることに注意することが重要です。人は成長し、経験を積み、優先順位が変化するにつれて、人生の意味も進化します。また、人生に普遍的に受け入れられる単一の目的はないことを認識することも重要であり、各人が自分自身の目的を見つける必要があります。
- 人間関係: 家族、友人、愛する人とのつながりや愛情 社会的グループやコミュニティへの所属感
- 目的: 仕事、趣味、ボランティア活動など、有意義な活動に取り組む 他人を助ける、世界に影響を与える、遺産を残す
- 成長と発展: 学習、経験、スキルの向上を通して個人的な成長を追求する 課題や逆境から学び、より強く回復力のある人間になる
- 自己実現: 個人の可能性を最大限に引き出し、独自の才能や情熱を追求する 自分らしく生き、充実感を見つける
- 精神性と哲学: 人生や世界のより深い意味や目的を追求する 価値観、信念、宗教的または哲学的信念を形成する
- 喜びと幸福: 充実感、喜び、感謝の感情を経験する 人生を楽しみ、瞬間瞬間を味わう
- 他者への貢献: 社会に貢献し、他者を助けることに充実感を見つける ボランティア活動、慈善活動、アドボカシーに参加する
API が結果を返すことに失敗した場合、GenerateContentRespose.prompt_feedback を使用してプロンプトに関して安全性の懸念でそれがブロックされたか確認します。
response.prompt_feedback
safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE }
Gemini は単一のプロンプトに対して複数の可能な応答を生成することができます。これらの可能性のある応答は候補 (candidates) と呼ばれ、応答として最も適切なものを選択するためにそれらをレビューできます。
GenerateContentResponse.candidates を使用して応答候補を表示します :
response.candidates
[content { parts { text: "The meaning of life is a deeply personal question that has been pondered by philosophers, religious leaders, and individuals throughout history. There is no single, universally accepted answer, as the meaning of life can vary depending on one\'s values, beliefs, and experiences. However, some common themes that emerge when people discuss the meaning of life include:\n\n* **Finding purpose and fulfillment:** Many people find meaning in life by pursuing their passions, contributing to society, or making a difference in the world.\n\n* **Building relationships:** Strong relationships with family, friends, and loved ones can provide a sense of purpose and connection.\n\n* **Living in the present moment:** Some people believe that the meaning of life is simply to enjoy the present moment and experience life to the fullest.\n\n* **Making a positive impact:** Others believe that the meaning of life is to leave a positive legacy and make a contribution to the world.\n\n* **Seeking spiritual growth:** For some, the meaning of life is connected to spiritual beliefs and practices, such as meditation, prayer, or seeking enlightenment.\n\nUltimately, the meaning of life is a deeply personal question that can only be answered by each individual. There is no right or wrong answer, and the meaning of life can change and evolve over time." } role: "model" } finish_reason: STOP index: 0 safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE } ]
response.candidates[0].content.parts[0].text
The meaning of life is a deeply personal question that has been pondered by philosophers, religious leaders, and individuals throughout history. There is no single, universally accepted answer, as the meaning of life can vary depending on one's values, beliefs, and experiences. However, some common themes that emerge when people discuss the meaning of life include: * **Finding purpose and fulfillment:** Many people find meaning in life by pursuing their passions, contributing to society, or making a difference in the world. * **Building relationships:** Strong relationships with family, friends, and loved ones can provide a sense of purpose and connection. * **Living in the present moment:** Some people believe that the meaning of life is simply to enjoy the present moment and experience life to the fullest. * **Making a positive impact:** Others believe that the meaning of life is to leave a positive legacy and make a contribution to the world. * **Seeking spiritual growth:** For some, the meaning of life is connected to spiritual beliefs and practices, such as meditation, prayer, or seeking enlightenment. Ultimately, the meaning of life is a deeply personal question that can only be answered by each individual. There is no right or wrong answer, and the meaning of life can change and evolve over time.
以下は日本語プロンプトの場合です :
response.candidates
[content { parts { text: "\344\272\272\347\224\237\343\201\256\346\204\217\345\221\263\343\201\257\343\200\201\345\200\213\344\272\272\343\201\253\343\202\210\343\201\243\343\201\246\345\244\247\343\201\215\343\201\217\347\225\260\343\201\252\343\202\212\343\201\276\343\201\231\343\200\202\346\231\256\351\201\215\347\232\204\343\201\253\345\275\223\343\201\246\343\201\257\343\201\276\343\202\213\345\215\230\344\270\200\343\201\256\343\200\214\347\255\224\343\201\210\343\200\215\343\201\257\343\201\202\343\202\212\343\201\276\343\201\233\343\202\223\343\200\202\344\273\245\344\270\213\343\201\257\343\200\201\344\272\272\343\200\205\343\201\214\344\272\272\347\224\237\343\201\253\346\204\217\345\221\263\343\202\222\350\246\213\343\201\244\343\201\221\343\202\213\343\201\237\343\202\201\343\201\253\345\210\251\347\224\250\343\201\231\343\202\213\344\270\200\350\210\254\347\232\204\343\201\252\346\226\271\346\263\225\343\201\256\343\201\204\343\201\217\343\201\244\343\201\213\343\201\247\343\201\231\343\200\202\n\n**\347\233\256\347\232\204\343\202\204\346\203\205\347\206\261\343\202\222\350\277\275\345\217\212\343\201\231\343\202\213:**\n\n* \346\203\205\347\206\261\343\202\222\344\273\225\344\272\213\343\202\204\350\266\243\345\221\263\343\201\252\343\201\251\343\200\201\343\202\204\343\202\212\343\201\214\343\201\204\343\201\256\343\201\202\343\202\213\346\264\273\345\213\225\343\201\253\345\244\211\343\201\210\343\202\213\343\200\202\n* \347\244\276\344\274\232\343\202\204\344\273\226\344\272\272\343\201\253\350\262\242\347\214\256\343\201\231\343\202\213\347\233\256\347\232\204\343\202\222\350\246\213\343\201\244\343\201\221\343\202\213\343\200\202\n* \347\237\245\350\255\230\343\202\204\343\202\271\343\202\255\343\203\253\343\202\222\347\277\222\345\276\227\343\201\231\343\202\213\343\200\202\n\n**\344\273\226\350\200\205\343\201\250\343\201\256\343\201\244\343\201\252\343\201\214\343\202\212\343\202\222\347\257\211\343\201\217:**\n\n* \345\217\213\344\272\272\343\200\201\345\256\266\346\227\217\343\200\201\343\202\263\343\203\237\343\203\245\343\203\213\343\203\206\343\202\243\343\201\250\343\201\256\345\274\267\343\201\204\344\272\272\351\226\223\351\226\242\344\277\202\343\202\222\347\257\211\343\201\217\343\200\202\n* \343\203\234\343\203\251\343\203\263\343\203\206\343\202\243\343\202\242\346\264\273\345\213\225\343\202\204\347\244\276\344\274\232\346\264\273\345\213\225\343\201\253\345\217\202\345\212\240\343\201\227\343\201\246\344\273\226\350\200\205\343\201\253\346\211\213\343\202\222\345\267\256\343\201\227\344\274\270\343\201\271\343\202\213\343\200\202\n* \346\204\233\346\203\205\343\201\256\343\201\223\343\202\202\343\201\243\343\201\237\351\226\242\344\277\202\343\202\222\347\257\211\343\201\217\343\200\202\n\n**\350\207\252\345\267\261\346\210\220\351\225\267\343\201\250\345\206\205\347\234\201:**\n\n* \350\207\252\345\267\261\347\237\245\350\255\230\343\201\250\350\207\252\350\246\232\343\202\222\346\267\261\343\202\201\343\202\213\343\201\237\343\202\201\343\201\253\346\231\202\351\226\223\343\202\222\345\217\226\343\202\213\343\200\202\n* \350\207\252\345\210\206\343\201\256\344\276\241\345\200\244\350\246\263\343\200\201\344\277\241\345\277\265\343\200\201\347\233\256\346\250\231\343\202\222\346\244\234\350\250\216\343\201\231\343\202\213\343\200\202\n* \350\207\252\345\210\206\343\201\256\351\225\267\346\211\200\343\201\250\347\237\255\346\211\200\343\202\222\350\252\215\350\255\230\343\201\227\343\200\201\346\224\271\345\226\204\343\201\253\345\217\226\343\202\212\347\265\204\343\202\200\343\200\202\n\n**\344\275\223\351\250\223\343\201\253\346\262\241\351\240\255\343\201\231\343\202\213:**\n\n* \346\227\205\350\241\214\343\200\201\346\226\260\343\201\227\343\201\204\343\201\223\343\201\250\343\202\222\350\251\246\343\201\231\343\200\201\346\226\207\345\214\226\343\202\222\344\275\223\351\250\223\343\201\231\343\202\213\343\201\252\343\201\251\343\200\201\345\271\205\345\272\203\343\201\204\347\265\214\351\250\223\343\202\222\347\251\215\343\202\200\343\200\202\n* \347\217\276\345\234\250\343\201\253\347\204\246\347\202\271\343\202\222\345\275\223\343\201\246\343\200\201\347\236\254\351\226\223\343\202\222\346\245\275\343\201\227\343\202\200\343\200\202\n* \346\204\237\350\254\235\343\201\256\346\260\227\346\214\201\343\201\241\343\202\222\346\214\201\343\201\241\343\200\201\346\214\201\343\201\243\343\201\246\343\201\204\343\202\213\343\202\202\343\201\256\343\201\253\346\204\237\350\254\235\343\201\231\343\202\213\343\200\202\n\n**\345\211\265\351\200\240\346\200\247\343\202\222\347\231\272\346\217\256\343\201\231\343\202\213:**\n\n* \350\212\270\350\241\223\343\200\201\351\237\263\346\245\275\343\200\201\345\237\267\347\255\206\343\200\201\343\201\235\343\201\256\344\273\226\343\201\256\345\211\265\351\200\240\347\232\204\343\201\252\350\277\275\346\261\202\343\202\222\351\200\232\343\201\227\343\201\246\350\207\252\345\267\261\350\241\250\347\217\276\343\201\231\343\202\213\343\200\202\n* \347\213\254\350\207\252\343\201\256\345\225\217\351\241\214\350\247\243\346\261\272\347\255\226\343\202\204\351\235\251\346\226\260\347\232\204\343\201\252\343\202\242\343\202\244\343\203\207\343\202\242\343\202\222\347\224\237\343\201\277\345\207\272\343\201\231\343\200\202\n* \344\270\226\347\225\214\343\201\253\344\275\225\343\201\213\343\202\222\346\256\213\343\201\231\343\200\202\n\n**\343\202\271\343\203\224\343\203\252\343\203\201\343\203\245\343\202\242\343\203\252\343\203\206\343\202\243\343\202\222\350\277\275\346\261\202\343\201\231\343\202\213:**\n\n* \343\202\210\343\202\212\351\253\230\343\201\204\345\212\233\343\202\204\350\201\226\343\201\252\343\202\213\343\202\202\343\201\256\343\201\250\343\201\256\343\201\244\343\201\252\343\201\214\343\202\212\343\202\222\346\204\237\343\201\230\343\202\213\343\200\202\n*\347\236\221\346\203\263\343\200\201\347\245\210\343\202\212\343\200\201\343\201\235\343\201\256\344\273\226\343\201\256\343\202\271\343\203\224\343\203\252\343\203\201\343\203\245\343\202\242\343\203\253\343\201\252\346\205\243\350\241\214\343\201\253\345\276\223\343\201\206\343\200\202\n* \344\272\272\347\224\237\343\201\256\346\204\217\345\221\263\343\202\204\347\233\256\347\232\204\343\201\253\343\201\244\343\201\204\343\201\246\345\223\262\345\255\246\347\232\204\343\201\276\343\201\237\343\201\257\345\256\227\346\225\231\347\232\204\343\201\252\350\246\226\347\202\271\343\202\222\346\216\242\346\261\202\343\201\231\343\202\213\343\200\202\n\n\344\272\272\347\224\237\343\201\256\346\204\217\345\221\263\343\201\257\343\200\201\343\201\227\343\201\260\343\201\227\343\201\260\346\216\242\346\261\202\343\201\250\347\231\272\350\246\213\343\201\256\347\266\231\347\266\232\347\232\204\343\201\252\343\203\227\343\203\255\343\202\273\343\202\271\343\201\247\343\201\231\343\200\202\350\207\252\345\210\206\343\201\256\344\276\241\345\200\244\350\246\263\343\200\201\344\277\241\345\277\265\343\200\201\347\265\214\351\250\223\343\201\253\347\205\247\343\202\211\343\201\227\343\201\246\343\200\201\350\207\252\345\210\206\343\201\253\343\201\250\343\201\243\343\201\246\346\204\217\345\221\263\343\201\256\343\201\202\343\202\213\347\255\224\343\201\210\343\202\222\350\246\213\343\201\244\343\201\221\343\202\213\343\201\223\343\201\250\343\201\214\351\207\215\350\246\201\343\201\247\343\201\231\343\200\202\346\231\256\351\201\215\347\232\204\343\201\252\347\255\224\343\201\210\343\201\257\343\201\252\343\201\204\343\201\223\343\201\250\343\202\222\350\246\232\343\201\210\343\201\246\343\201\212\343\201\215\343\201\276\343\201\227\343\202\207\343\201\206\343\200\202" } role: "model" } finish_reason: STOP index: 0 safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE } ]
response.candidates[0].content.parts[0].text
人生の意味は、個人によって大きく異なります。普遍的に当てはまる単一の「答え」はありません。以下は、人々が人生に意味を見つけるために利用する一般的な方法のいくつかです。 **目的や情熱を追及する:** * 情熱を仕事や趣味など、やりがいのある活動に変える。 * 社会や他人に貢献する目的を見つける。 * 知識やスキルを習得する。 **他者とのつながりを築く:** * 友人、家族、コミュニティとの強い人間関係を築く。 * ボランティア活動や社会活動に参加して他者に手を差し伸べる。 * 愛情のこもった関係を築く。 **自己成長と内省:** * 自己知識と自覚を深めるために時間を取る。 * 自分の価値観、信念、目標を検討する。 * 自分の長所と短所を認識し、改善に取り組む。 **体験に没頭する:** * 旅行、新しいことを試す、文化を体験するなど、幅広い経験を積む。 * 現在に焦点を当て、瞬間を楽しむ。 * 感謝の気持ちを持ち、持っているものに感謝する。 **創造性を発揮する:** * 芸術、音楽、執筆、その他の創造的な追求を通して自己表現する。 * 独自の問題解決策や革新的なアイデアを生み出す。 * 世界に何かを残す。 **スピリチュアリティを追求する:** * より高い力や聖なるものとのつながりを感じる。 *瞑想、祈り、その他のスピリチュアルな慣行に従う。 * 人生の意味や目的について哲学的または宗教的な視点を探求する。 人生の意味は、しばしば探求と発見の継続的なプロセスです。自分の価値観、信念、経験に照らして、自分にとって意味のある答えを見つけることが重要です。普遍的な答えはないことを覚えておきましょう。
デフォルトでは、モデルは生成プロセス全体を完了したあとで応答を返します。応答が生成されているときにそれをストリームすることもできて、モデルは応答が生成されたらすぐに応答のチャンクを返します。
応答をストリームするには、GenerativeModel.generate_content(…, stream=True) を使用します。
%%time
response = model.generate_content("What is the meaning of life?", stream=True)
CPU times: user 102 ms, sys: 25.1 ms, total: 128 ms Wall time: 7.94 s
for chunk in response:
print(chunk.text)
print("_"*80)
The query of life's purpose has perplexed people across centuries, cultures, and ________________________________________________________________________________ continents. While there is no universally recognized response, many ideas have been put forth, and the response is frequently dependent on individual ideas, beliefs, and life experiences ________________________________________________________________________________ . 1. **Happiness and Well-being:** Many individuals believe that the goal of life is to attain personal happiness and well-being. This might entail locating pursuits that provide joy, establishing significant connections, caring for one's physical and mental health, and pursuing personal goals and aspirations. 2. **Meaning ________________________________________________________________________________ ful Contribution:** Some believe that the purpose of life is to make a meaningful contribution to the world. This might entail pursuing a profession that benefits others, engaging in volunteer or charitable activities, generating art or literature, or inventing. 3. **Self-realization and Personal Growth:** The pursuit of self-realization and personal development is another common goal in life. This might entail learning new skills, exploring one's interests and abilities, overcoming obstacles, and becoming the best version of oneself. 4. **Connection and Relationships:** For many individuals, the purpose of life is found in their relationships with others. This might entail building ________________________________________________________________________________ strong bonds with family and friends, fostering a sense of community, and contributing to the well-being of those around them. 5. **Spiritual Fulfillment:** For those with religious or spiritual beliefs, the purpose of life may be centered on seeking spiritual fulfillment or enlightenment. This might entail following religious teachings, engaging in spiritual practices, or seeking a deeper understanding of the divine. 6. **Experiencing the Journey:** Some believe that the purpose of life is simply to experience the journey itself, with all its joys and sorrows. This perspective emphasizes embracing the present moment, appreciating life's experiences, and finding meaning in the act of living itself. 7. **Legacy and Impact:** For others, the goal of life is to leave a lasting legacy or impact on the world. This might entail making a significant contribution to a particular field, leaving a positive mark on future generations, or creating something that will be remembered and cherished long after one's lifetime. Ultimately, the meaning of life is a personal and subjective question, and there is no single, universally accepted answer. It is about discovering what brings you fulfillment, purpose, and meaning in your own life, and living in accordance with those values. ________________________________________________________________________________
以下は日本語プロンプトの場合です :
%%time
response = model.generate_content("人生の意味とは?", stream=True)
CPU times: user 148 ms, sys: 17.4 ms, total: 165 ms Wall time: 10.1 s
for chunk in response:
print(chunk.text)
print("_"*80)
人生の意味については普遍的に受け入れられている単一の答えはありません。それは個人によって ________________________________________________________________________________ 大きく異なります。以下に、人々が人生に意味を見つけるいくつかの一般的な方法を示します。 **個人的な成長と自己実現:** * 自分自身 ________________________________________________________________________________ を理解し、可能性を最大限に引き出す。 * 目標を設定し、それらに向かって努力する。 * 学び続け、知的および感情的に成長する。 **他者とのつながり:** * 愛する人と有意義な関係を築く。 * コミュニティ ________________________________________________________________________________ に参加し、周囲の人々とつながる。 * 他者を助けたり、社会に貢献したりする。 **目的意識:** * 自分より大きなものに参加している感覚を持つ。 * 情熱を持ち、それが世界にプラスの影響を与えるような仕事をする。 * 人生に明確な目的と方向性を見つける。 **体験と喜び:** * 新しいことを試し、新しい体験をする。 * 人生を楽しむことや幸福感に焦点を当てる。 * 肉体的、精神的、感情的な健康を維持する。 **意味創造:** * 自分で意味を作り出す。 * ________________________________________________________________________________ 芸術、音楽、執筆など、創造的な活動に参加する。 * 独自の世界観や価値観を構築する。 **スピリチュアリティと宗教:** * より高い力や存在とつながりを持っていると感じる。 * 精神的な実践に従い、自分自身のより深い理解を得る。 **永続的な遺産:** * 子供や芸術作品など、自分を超えたものを作成する。 * 世界に何らかの形で貢献し、自分の存在を永続させる。 最終的には、人生の意味は各個人が自分自身で発見するものです。それは時間の経過とともに変化し、成長する可能性があります。重要なのは、自分にとって有意義で充実した人生を送るために、自分の価値観や優先順位を理解することです。 ________________________________________________________________________________
ストリーミングの際、幾つかの応答属性はすべての応答チャンクについてイテレートするまで利用可能ではありません。これは以下で示されます :
response = model.generate_content("What is the meaning of life?", stream=True)
prompt_feedback 属性は機能します :
response.prompt_feedback
safety_ratings { category: HARM_CATEGORY_SEXUALLY_EXPLICIT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HATE_SPEECH probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_HARASSMENT probability: NEGLIGIBLE } safety_ratings { category: HARM_CATEGORY_DANGEROUS_CONTENT probability: NEGLIGIBLE }
しかし text のような属性はそうではありません :
try:
response.text
except Exception as e:
print(f'{type(e).__name__}: {e}')
IncompleteIterationError: Please let the response complete iteration before accessing the final accumulated attributes (or call `response.resolve()`)
以上