😃
0から環境構築しPythonからGeminiを呼び出す
目的
生成AIのチェーンプロンプト(※)を試してみたい
※チェーンプロンプトとは、生成AIに複雑なタスクを実行させる際に、タスクを複数のステップに分け、各ステップの結果を次のプロンプトに渡して処理を進める手法
背景
ChatGPTで遊ぶのが楽しい
しかし、複雑なタスクを長文のプロンプトで精度よく実行するには限界が見えた
そこで、タスクを分割するチェーンプロンプトを試してみたい。
チェーンプロンプトには、主なツールとして「LangChain」と「Guidance」があったが、プロンプトの管理がしやすいとのため「Guidance」を選択
生成AIのAPIも必要だが無償で使えるGeminiを選択
「Guidance」を使うには、PythonとGeminiのAPIキー、それと開発効率のためIDEが必要だったため、VSCodeを選択
この前提で、自分で作成したGPTsの1つプログラミング相談に相談しながら、0からの環境構築から、サンプルプログラムの実行をやってみた
・・・が、GuidanceはGeminiをサポートしていなかっため、カスタムロジックが必要とのこと。とりあえず、今回はGuidanceまでは使わず、GeminiをAPIで呼び出すところまでやってみた
環境構築の手順
1. 必要なソフトウェアのインストール
1.1 Pythonのインストール
- Python公式サイトから最新版をダウンロードします。
- インストール時に「Add Python to PATH」に必ずチェックを入れます。
- インストール後、コマンドプロンプトを開き、Pythonのバージョンを確認します:出力例:
python --version
Python 3.x.x
1.2 VSCodeのインストール
- Visual Studio Code公式サイトからVSCodeをダウンロードしてインストールします。
- インストール後、Python拡張機能をインストールします。
- VSCodeを開き、左側の「拡張機能」アイコンをクリック。
- 検索バーに「Python」と入力し、MicrosoftのPython拡張機能をインストール。
1.3 Gitのインストール
- Git公式サイトからGitをインストールします。
- インストール後、Gitのバージョンを確認します:出力例:
git --version
git version x.x.x
※インストール後、OS再起動を行い、環境変数「PATH」の再読み込みをすること
2. Python環境のセットアップ
2.1 仮想環境の作成
- プロジェクト用のディレクトリを作成します(例:
guidance_project
)。 - VSCodeのターミナルを開き、以下のコマンドを実行します:これにより、仮想環境が作成されます。
python -m venv venv
2.2 仮想環境の有効化
- 仮想環境を有効にします:有効化されると、ターミナルの左側に
venv\Scripts\activate
(venv)
が表示されます。
2.3 必要なライブラリのインストール
- GuidanceとGemini API用のライブラリをインストールします:Guidanceはチェーンプロンプトを扱うライブラリ、Google Generative AIはGemini API用のPython SDK、
pip install guidance google-generativeai requests
requests
はHTTPリクエスト用のライブラリです。
3. Gemini APIの設定
3.1 APIキーの取得
- Google Cloudのプロジェクトにアクセスし、Gemini API用のAPIキーを作成します。※詳しいAPIキーの取得方法は、別記事に記載
- APIキーをコピーしておきます。
3.2 APIキーの設定
APIキーを安全に管理するため、.env
ファイルを使用します。
- プロジェクトディレクトリに
.env
ファイルを作成。 -
.env
ファイルに以下の内容を記述します:GEMINI_API_KEY=your_actual_api_key
- Pythonコードで以下を使い、APIキーを読み込みます:
from dotenv import load_dotenv import os load_dotenv() api_key = os.getenv("GEMINI_API_KEY")
3.3 動作確認
以下のテストコードを実行し、Gemini APIが正しく動作するか確認します:
import requests
from dotenv import load_dotenv
import os
# .envファイルからAPIキーを読み込む
load_dotenv()
api_key = os.getenv("GEMINI_API_KEY")
URL = f'https://generativelanguage.googleapis.com/v1beta2/models?key={API_KEY}'
headers = {'Content-Type': 'application/json'}
response = requests.get(URL, headers=headers)
# 詳細なデバッグ出力
print(f"Status Code: {response.status_code}")
print(f"Response Text: {response.text}")
# レスポンスがJSON形式でない場合を考慮
try:
print(f"JSON Response: {response.json()}")
except Exception as e:
print(f"Failed to parse JSON: {e}")
- 正常に動作すると、Gemini APIの応答が表示されます。
今回は以上
Discussion