2025/02/25

Google AI StudioとRaspberry pi 5 で簡易チャットを行う

こんにちは、Akira(Type-EDGE)です。

最近のAI技術はすさまじい勢いで発展している感じませんか。

私が初めてDeeplearningという言葉を聞いたのが、今から4年前くらいですが、その頃には今のような時代が到来するとは思っていませんでした。

AI開発というと、迷路探索とかエキスパートシステムとかがありましたが、その延長線上に過ぎないかなって甘く考えていたのが事実です。

それが、AIが自ら何かを生成したり、私たちの生活の手助けをしてくれたり、もう私たちの生活にはなくてはならない存在になっていると、私は考えています。

そんなAIの内、Google AI Studioを使って、簡易的なチャットを行ってみます。

Google AI Studioのライブラリを導入する。

google-generativeaiのライブラリを導入します。

導入に際し、pythonの仮想環境を起動する必要があります。以前の記事で仮想環境の準備を済ませていますので、まだの方はこちらの記事を参考に環境を構築して下さい。

https://www.type-edge.com/2025/02/raspberry-pi-5-python.html

仮想環境を立ち上げたら、以下のコマンドを実行します。

pip install google-generativeai

Google AI StudioのAPIキーは既にRaspberry Piに登録済みです。以前の記事でAPIキーを環境変数として登録する方法を纏めていますので、まだの方はこちらの傷を参考に環境を構築して下さい。

https://www.type-edge.com/2025/02/google-ai-studio-apiapiraspberry-pi-5.html

Google Geminiとチャットするpythonコード

まずはコード全容を掲載します。

from dotenv import load_dotenv
import os
import google.generativeai as ggai  # google ai studio

# .envを読み込む
load_dotenv()

# apiキーの読込
google_api_key=os.getenv("GOOGLE_API_KEY")
if not google_api_key:
    print("Google API Keyが設定されていません")
    exit()

ggai.configure(api_key=google_api_key)      # apiキーの設定
generation_config={                         # modelの設定
    "temperature":1,
    "top_p":0.95,
    "top_k":40,
    "max_output_tokens":8192,
    "response_mime_type":"text/plain",
}

# model作成
model=ggai.GenerativeModel(
    model_name="gemini-1.5-pro",
    generation_config=generation_config,
)

# chat開始
chat_session=model.start_chat(history=[])

def chat_with_gemini(prompt):
    """Geminiにメッセージを送り、応答を取得する"""
    response = chat_session.send_message(prompt)
    return response.text

# CLIでチャットを開始
if __name__ == "__main__":
    print("Geminiとのチャットを開始します。終了するには 'exit' と入力してください。")
    while True:
        user_input = input("あなた: ")
        if user_input.lower() == "exit":
            break
        response = chat_with_gemini(user_input)
        print("Gemini: " + response)

 

googleのライブラリを使用するには、import google.generativeai が必要です。名前が長いので、as ggaiで"ggai"に名前を略しました。

ggaiにはAPIキーとmodel設定を与える必要があります。

APIキーは環境変数から取得して下さい。modelの設定はgeneration_configにて設定値を作成しています。

"temperature":1 → modelのランダム性
"top_p":0.95 → 解答の確率の度合い。高い方が一貫性があり、低いとランダムになる。
"top_k":40 → 解答の個数の度合い。AIが選択する解答の個数なので、少ないと一貫性があり、高いとランダムになる。
"max_output_tokens":8192 → 応答に使用する最大トークン
"response_mime_type":"text/plain" → 応答形式

ここまで行えばGoogle Ai Studio APIとちゃっとが出来るようになります。

以下の関数がチャット開始です。

chat_session=model.start_chat(history=[])

後はユーザのinputを取得し、プロンプトとしてメッセージを送信。その応答を受け取り続けています。

プロンプトや応答のtokenを把握する方法

無料で使えるGeminiとはいえ、無料枠を超えてしまわないか心配ですよね。

一応、tokenを出力して、どの程度かを可視化しておくと安心できます。

def chat_with_geminiを以下のコードにして下さい。

def chat_with_gemini(prompt):
    """Geminiにメッセージを送り、応答を取得する"""
    response = chat_session.send_message(prompt)

    response = chat_session.send_message(full_prompt)   # 応答内容

    prompt_tokens = response.usage_metadata.prompt_token_count  # プロンプトのトークン数
    response_tokens = response.usage_metadata.candidates_token_count  # 応答のトークン数
    total_tokens = response.usage_metadata.total_token_count  # 合計のトークン数

    return response.text

プロンプトのトークン量, 応答に使用したトークン量をそれぞれ取得しています。

ざっくりとやっていましたが、短文では合計100も越えませんでしたので、心配せずに使っていけるかなって思っています。

最後に

今回はRaspberry Pi 5 のpython環境で、Google AI StudioのAPIを使った簡易チャットについて記事にしました。

Raspberry Pi 5は歴代のRaspberry Piに比べて高性能とはいえ、自然言語処理をローカルで動かすほどの力はありません。よって、今回は無料で使用できるGoogle AI StudioのAPIを活用しました。

Googleはgenerationaiライブラリを用意してくれているので、難しいことを考えずに関数で投げるだけでした。こんなに簡単にチャットシステムが完成してしまい、本当に大丈夫かなって不安になるレベルです。

戻り値は応答だけでなく、使用したtokenの量を知る事が出来ます。制限を掛けた環境で稼働させるには必要な要素ですよね。

プロンプトでもっともらしく書いておけば、ユーザの入力に対してある程度操作できるかもしれません。ここは少し研究の余地がありそうですね。

今回の記事は如何でしたか?
もし今回の記事が良かったと思った方や評価したいと思った方は、コメントを残して頂けると嬉しいです。 

また、私はパソコン以外にも記事を書いていますので、そちらも読んでいただけると幸いです。



0 件のコメント:

コメントを投稿

PythonのWEBフレームワーク「Fastapi」開発環境の構築して、http経由で接続する

 こんにちは、Akira(Type-EDGE)です。  あなたはPythonを使っていますか? 私はRaspberry Pi 5とPythonを組み合わせて、Google AI Studioとつないだり、音声をテキストにしたりしています。 文字通り、Pythonで遊んでいる状態で...