パイソン初心者の私がgeminiを動かせるようにするために、海外のyoutubeを見ながら実装した話をシェアします。他のサイトでは、ただ実験で動かしているものが多いですが、これは準備するプロンプト用のテキストファイルと、入力データ用のテキストを自由に設定したら柔軟にどんな処理もできるようになる基本のpythonファイルを提供してます。この記事をchatgptやgeminiで読み込ませて、作りたいpythonファイルを自由に作ることができる。
Gemini Pro API とは
Gemini Pro API は、Google AI が提供する大規模言語モデル (LLM) の API です。テキストの生成、翻訳、要約、質問への回答など、さまざまなタスクに利用できます。今回はジェミニ(欧米人はジェミナイって言うけどw)に絞って書きます。
GeminiProAPIをローカルで動かすメリット
ローカルで動かすメリットは、以下のとおりです。
- API の応答時間が短い
- エラーが出たときのチェックをしやすい
- ネットワークの制約を受けない
- 重い動画やファイルを前処理してからgeminiを使うときにわざわざ重いファイルをアップロードしないでもいい
- 自分の環境に合わせてカスタマイズできる
GeminiProAPIをローカルで動かす方法
ローカルで動かすには、以下の手順で行います。
apiの取得と事前のファイルを準備する
- パイソンを使えるようにする
- API キーを作成してダウンロードする
- Python のライブラリ「google-generativeai」をインストールする
Python のライブラリ管理ツール pip を使用して、google-generativeaiをインストールします。パイソンの動かし方が怖い、とかパイソンってアナコンダとかのへびでしょ?と言う人はこちらの記事を見て使えるようにしましょう。まじ簡単です。。
まずは以下をmacやwindowsに入ってるターミナルのアプリを開いて以下を実行してください。実行するとgeminiが使える環境が整備されます。
pip install google-generativeai
- もしPythonはインストールされているが、pipがない場合(コマンド ノット ファウンドって出たよって人は)、先に以下のコマンドをシェルスクリプトに使ってpipをインストールします。以下のコマンドを順番に実行してください。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py
- Python スクリプトを実行する前のデータを準備。
処理.txtの中身の文章やデータから、プロンプト.txtの中の処理をさせるような仕組みのパイソンスクリプトを作ります。実行したいテキストファイルを以下の写真のように用意して、一つのフォルダに入れてください。ファイル名は写真と同じようにしてください。そうしないと動きません。ファイルの内容はなんでもいいです。今回はフルーツのリストを渡してレアなフルーツは何かを特定させます。。
できた二つのテキストファイルを一つのフォルダに入れました。そのフォルダはデスクトップの中に入れてます。
Pythonスクリプトを実行する
以下のスクリプトをコピーして、Windowsならメモ帳やmacならtextedit.appで貼り付けて、geminipro.pyという名前でファイルを保存してください。名前がpyでできない場合は、.txtで保存してから、名前を保存してください。
AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXを実際のAPIkeyに置き換えてください!
Python
import os
import google.generativeai as genai
# Google Generative AIの設定
def configure_genai():
try:
# ハードコードされたAPIキー
api_key = 'AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
genai.configure(api_key=api_key)
except Exception as e:
print(f'Error in configuring Generative AI: {e}')
# Prompt内容の読み込み
def read_prompt():
try:
with open('prompt.txt', 'r') as file:
return file.read()
except Exception as e:
print(f'Error in reading prompt file: {e}')
return None
# Gemini Proモデルを使用したコンテンツ生成
def generate_content(prompt, text_content):
try:
combined_prompt = f"{prompt}\n処理するテキストは以下の通り\n{text_content}"
model_gemini_pro = genai.GenerativeModel('gemini-pro')
response = model_gemini_pro.generate_content(
combined_prompt,
generation_config=genai.types.GenerationConfig()
)
return response.text
except Exception as e:
print(f'Error in generating content: {e}')
return None
# テキストファイルの処理
def process_text_file():
configure_genai()
prompt = read_prompt()
if prompt:
text_file = '未処理.txt'
try:
with open(text_file, 'r', encoding='utf-8') as file:
text_content = file.read()
except UnicodeDecodeError:
try:
with open(text_file, 'r', encoding='latin1') as file:
text_content = file.read()
except Exception as e:
print(f'Error reading file {text_file}: {e}')
return
except Exception as e:
print(f'Error processing file {text_file}: {e}')
return
generated_content = generate_content(prompt, text_content)
if generated_content:
output_file_path = '完成.txt'
with open(output_file_path, 'w', encoding='utf-8') as output_file:
output_file.write(generated_content)
print(f'Generated content written to {output_file_path}')
if __name__ == '__main__':
process_text_file()
このスクリプトは、以下の処理を行います。
- google-generativeaiライブラリをインポートします。
- API キーを設定します。
- client オブジェクトを作成します。
- テキストの生成をリクエストします。
- 生成されたテキストを表示します。
実行結果
以下のようにPython スクリプトを実行するときに、作ったgeminipro.pyが存在するリンク先を置き換えてください。ファイルをクリックして選択してから、Windowsなら[Alt]+[D]キーmacなら、⌥option+⌘command+C で取得したリンクを以下の、/Users/ユーザー名/Desktop/gemini/geminipro.py で置き換え。
python3 /Users/ユーザー名/Desktop/gemini/geminipro.py
そうすると完成.txtという名前でテキストファイルが生成されます。
まとめ
Gemini Pro API を Python でローカルに動かすことで、API の応答時間が短くなり、ネットワークの制約を受けなくなり、自分の環境に合わせてカスタマイズできるようになります。
また、Python スクリプトを実行するだけで、すぐに Gemini Pro API を利用することができます。
ぜひ、試してみてください。