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の量を知る事が出来ます。制限を掛けた環境で稼働させるには必要な要素ですよね。

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

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

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



2025/02/24

Raspberry Pi 5 にpythonの仮想環境を導入する

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

Raspberry Pi 5 でpython開発をしようと思ってライブラリを導入したら、以下のエラーが発生しました。

pip3 install python-dotenv

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    For more information visit http://rptl.io/venv

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

今回の記事はこのエラーを読み解いて、Rasberry Piにpythonライブラリを導入できるようにします。

結論:pythonの仮想環境を導入する

どの階層でも良いので、ssh接続をして以下のコマンドを実行してください。
mypyに仮想環境が作られるので、作成したい名前を設定して下さいね。

python3 -m venv ~/mypy

pythonの仮想環境が必要な理由とメリット

Pythonを実行する際には、仮想環境を使用することが推奨されます。

プロジェクトごとにPythonのバージョンやライブラリを独立して管理し、他のプロジェクトやシステム全体に影響を与えないようにするためです。

例えば、あるプロジェクトでPython 3.10と特定のライブラリを使用し、別のプロジェクトでPython 3.9と異なるライブラリを使う場合でも、仮想環境を利用することでそれぞれの環境を分離できます。

また、仮想環境を使うことで、requirements.txtにパッケージ情報を記録し、他の開発者が同じ環境を簡単に再現できます。

これにより、チーム開発や本番環境へのデプロイ時に発生しやすいトラブルを防ぐことができます。さらに、システムのPython環境を変更せずに新しいライブラリを試せるため、Raspberry Piなどのデバイスでも安全かつ効率的に開発を進められるようになります。

仮想環境を導入した後にするべきこと

python環境の変更やコード実行前

source ~/mypy/bin/activate

都度、仮想環境を立ち上げるコマンドを実行します。

仮想環境が立ち上がっている間ならば、pythonライブラリのインストール等を行えます。

仮想環境の実行コマンドを打ちこむのが面倒な方は、~/.bashrcに以下のコマンドを追加してください。そうすれば、pyactivateとコマンドするだけで実行します。

alias pyactivate='source ~/mypy/bin/activate'

仮想環境を終了するとき

deactivate

pythonの仮想環境を立ち上げたら、使用しなくなる都度、終了してください。

最後に

pythonで仮想環境を導入する方法について紹介しました。

まさかローカルにpythonライブラリを導入できないのは、少しびっくりしました。正直、普通にinstallしてエラーになったので「バージョンが対応していないのか?」なんて首を傾げてしまうレベルでした。

とはいえ、英文をよくよく読んでみると解決方法がありました。個別に環境を操作出来るのであれば、プロジェクトごとに環境を構築していくのが望ましそうですね。

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

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

 

2025/02/23

Google AI StudioのAPIキーを取得して、Raspberry Pi 5の環境変数に登録する

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

AIと聞くと、心躍りませんか? 

私は不思議とワクワクしてきます。なんて面白い時代を生きているんだろうとか、これから未来はどうなるんだろうとか、意味もなく一人で妄想を繰り広げています。

そんな私ですが、最近はRaspberry Pi 5を使ってガジェット制作をしています。
ガジェットと聞くと、狂気のマッドサイエンティストを思い浮かべる方もいると思いますが、私はAIと語らう陰キャちゃんです。まずは語り合ってくれる仲間(AI)を用意しなければ、ただの独り言になってしまいます。

というわけで、今回はRaspberry Pi 5とGoogle AI Studio APIを連携して簡単なチャットボットを作ってみます。

開発環境などは過去の記事にありますので、ここまでどう来たんだろう? って感じた方はそちらも併せて参照いただけると嬉しいです。

それでは、行ってみましょうッ!

ところでGoogle AI Studioとは何?

Googleと聞けば、Androidや検索エンジン、Chromeといったものが思い浮かぶかもしれません。
そのGoogleはAI開発環境を提供しており、それがGoogle AI Studioと言います。

Google AI Studioは、Googleが提供するクラウドベースのAI開発プラットフォームです。直感的なインターフェースと強力な機能を備え、プログラミング初心者から上級者まで幅広く利用できます。

Googleが提供するGeminiはマルチモーダルな動作をすることを目的にしているので、テキストだけでなく画像や翻訳等、様々な機能を有する点が強みです。

最大の特徴は、様々な事ができるのに無料枠が広いこと。プロジェクトごとに無料枠を設定してくれているので、今回のように「ちょっとAI開発やってみるか」という娯楽なニーズを受け止めてくれます。

ChatGPT然りCopilot然り、だいたいの生成AIはAPIを使おうとすると有料への移行を求められます。有料化の壁は高いので、あまり超えたくないですよね。カード情報を解除し忘れると気が付けば課金してしまっていると落ち込みますし……

Google AI Studioはそのような心配をせず、かつクラウド環境の開発なので特別に何かを準備しなければならない事はありません。

ホント、Googleってスゴイですね。

Google AI StudioのAPIキーを取得する

まずはGoogle AI Studioにログインしてください。普段使用しているGoogleアカウントでログインできます。

そうしたら、「Get API Key」という青いボタンをクリックします。


すると「APIキーを作成」というボタンが出てくるので、それを選択します。

しばらくするとAPIキーが生成されるので、それをコピーしてください。決して外部に公開しないようにしてくださいね。


Google AI StudioのAPIキーを Raspberry Pi の環境変数に登録する。

Google AI StudioのAPIキーを取得しましたので、さっそくRaspberry Piで活用しましょう。

とはいえ、APIキーは外部に公開してはいけないものです。あなたのAPIキーが外部に流出し、第三者によって悪用されると金銭的被害にあったり、違法行為を助長したことになったりします。

その為、いかなるAPIキーもコードに直接書き入れるのは様々なリスクが発生します。個人的にコードを打っているうちならば良いですが、何かの理由でコードを提供して「そこにAPIキーが含まれていた」なんてことになりかねません。

コードと重要なキーは分離しておくのが望ましいので、Raspberry Piの環境変数に登録しておき、必要に応じて取得する仕組みにしておきましょう。

Rasberry Piの環境変数に登録する方法は2つあります。

環境変数に一時的に登録する

一時的に環境変数に登録する方法です。ターミナルのセッションが切れると消えてしまいますので、テスト等をする際に活用します。

ssh接続をして、以下のコマンドを打ってください。

export GOOGLE_API_KEY="apiKey"

環境変数に永続的に登録する

次に永続的に環境変数を登録する方法です。何度も登録しなおすのは面倒なので、使用するAPIキーが定まったら、こちらの方法を使用してください。

~/.bashrc を開きます。

vi ~/.bashrc

このファイルの末端に、環境変数を書き込みましょう。 

export GOOGLE_API_KEY="apiKey"

書き込んだら、ターミナルに次のコマンドを打って反映させます。

pythonで環境変数の値を読み取る

登録が終わりましたら、さっそくpythonで環境変数の値を読み取ってみましょう。

Visual Studio Code(VSCode)で以下のpythonファイルを作成します。

import os 

api_key = os.getenv("GOOGLE_API_KEY")

print(api_key)

最後に

今回はRaspberry Pi 5にGoogle AI StudioのAPIキーを環境変数に登録する方法について紹介しました。

APIキーやユーザ情報、パスワードなど重要な情報をコードに書いておくと、誤って流出させてしまう可能性があります。

その為、コードとは別の環境に保持するようにするのが望ましいです。

環境変数に大切な情報を格納し、その値を読みだしてみました。今後のコーディングではこの方法を活用して必要な情報を読みだしていこうと思います。

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

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









2025/02/22

Raspberry Pi5にVisual Studio Code(VSCode)から接続して開発環境を構築する

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

あなたはRaspberry Pi 5をもう購入しましたか?

私は絶賛Raspberry Pi 5を使っています。使っているというか、遊び倒していて、そろそろSDカードが消し飛ぶんじゃないかとヒヤヒヤしています。

そんな私ですが、前回はvnc接続をできる環境を構築しました。

やっぱりRaspberry Pi上で開発環境を整えて操作する上でvncを介して操作できた方が良いかなって思ったからです。思ったのですが、よくよく調べてみると、そこまでいらなかったかなと感じています。

Visual Studio Codeはご存じでしょうか?
Microsoftが提供する開発環境の一つで、最近では結構主流なんじゃないかなって私は思っています。

Visual Studio CodeもといVSCodeがあればvnc接続せずとも開発できることに気付いてしまいました。

この記事では、Raspberry Piにマウスやキーボードを接続せず、かつvnc接続をせずに開発環境を整える方法について記載します。

Raspberry Piは可愛いし楽しい。けれど低スペックマシンを使っているのはキーボードを叩き割るほどの苦痛以外でも何者でもありません。
この記事を読んで、あなたの開発環境を正常な速度に戻しましょう。

それでは、行ってみましょうッ!

Visual Studio Code(VSCode)からRaspberry Pi 5にSSH接続する

VSCodeにRemote Developmentプラグインを導入する。

まずはVSCodeにMicrosoftが提供するRemote Developmentプラグインを導入します。

 

Remote Developmentプラグインを導入すると、画面左端のリモートエクスプローラーで「リモート(トンネル/SSH)」が選択できるようになります。

「リモート(トンネル/SSH)」を選択し、SSHの歯車マークを押して更新するSSH構成ファイルの中から以下の値を選択してください。

C:\Users\ユーザー名\.ssh\config

configファイルが表示されるので、以下のように入力してください。


Host 任意(接続時の名前)

HostName Host名に.localを付ける、またはIpアドレス

User 接続するユーザ名

port 接続するport番号

IdentitiesOnly  公開キー認証のみにするか

PasswordAuthentication パスフレーズ認証にするか

TCPKeepAlive TCP Keep Aliveを送るか

接続に成功すると画面左下にSSH: Hostと表示されます。

 

 この状態で「フォルダを開く」を選択すると、Raspberry Piのファイル階層にアクセスできるようになります。

途中でユーザにログインする行為を何度か求められると思いますが、ユーザのパスワードを通常通りに入れて頂ければ大丈夫です。

python環境の確認

せっかくなのでpython環境がRaspberry Piにあるか確認してみましょう。

teratermなどでRaspberry Piに接続して以下のコマンドを打ちます。

sudo python3 --version

もしもpythonがインストールされている場合には、そのバージョンが出力されます。
インストールされていない場合には、以下のコマンドでpythonを入れましょう

sudo apt install python3

次にライブラリ管理ツールをインストールします。
pipはpythonで使用するライブラリを簡単に管理する為のツールです。実際にコーディングする過程で様々なライブラリを使用していく事になりますが、その都度、ライブラリを探し当ててインストールするのは面倒です。

pipを使うとリクエストするだけで、そのライブラリを導入できるようになり、煩雑な作業から解放されます。

sudo apt install python3-pip 

さらにRaspberry Pi OS のアップデートやアップグレードも済ませておきましょう。
可能であれば最新版で行っておいた方が、セキュリティ面も安心ですし、変なエラーで躓かなくなります。

sudo apt update

sudo apt upgrade

とりあえず、ここまでやればpythonコードを使った開発環境は完成です。

 最後に

今回はVisual Studio CodeからsshでRaspberry Pi 5に接続する方法について記載致しました。

確かにRaspberry Piにvnc等、グラフィカルな環境に接続して開発できますが、どうしても低スペック故の遅さが目立ってしまいます。

開発のように時間のかかる行為は、ラグのような短い時間ロスが積もり重なると大きな損失となってしまうので、可能な限りレスポンスの良い環境で行うべきです。

なので、VSCodeからssh接続して開発するのが、開発環境も変わらず、普段使いのマシンも使えるし、とても良い方法だと感じました。

さらにこれならば、新たにキーボードやマウスを用意せずに済みますしね。

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

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

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

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