😃

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のインストール

  1. Python公式サイトから最新版をダウンロードします。
  2. インストール時に「Add Python to PATH」に必ずチェックを入れます。
  3. インストール後、コマンドプロンプトを開き、Pythonのバージョンを確認します:
    python --version
    
    出力例: Python 3.x.x

1.2 VSCodeのインストール

  1. Visual Studio Code公式サイトからVSCodeをダウンロードしてインストールします。
  2. インストール後、Python拡張機能をインストールします。
    • VSCodeを開き、左側の「拡張機能」アイコンをクリック。
    • 検索バーに「Python」と入力し、MicrosoftのPython拡張機能をインストール。

1.3 Gitのインストール

  1. Git公式サイトからGitをインストールします。
  2. インストール後、Gitのバージョンを確認します:
    git --version
    
    出力例: git version x.x.x

※インストール後、OS再起動を行い、環境変数「PATH」の再読み込みをすること

2. Python環境のセットアップ

2.1 仮想環境の作成

  1. プロジェクト用のディレクトリを作成します(例: guidance_project)。
  2. VSCodeのターミナルを開き、以下のコマンドを実行します:
    python -m venv venv
    
    これにより、仮想環境が作成されます。

2.2 仮想環境の有効化

  1. 仮想環境を有効にします:
    venv\Scripts\activate
    
    有効化されると、ターミナルの左側に (venv) が表示されます。

2.3 必要なライブラリのインストール

  1. GuidanceとGemini API用のライブラリをインストールします:
    pip install guidance google-generativeai requests
    
    Guidanceはチェーンプロンプトを扱うライブラリ、Google Generative AIはGemini API用のPython SDK、requests はHTTPリクエスト用のライブラリです。

3. Gemini APIの設定

3.1 APIキーの取得

  1. Google Cloudのプロジェクトにアクセスし、Gemini API用のAPIキーを作成します。※詳しいAPIキーの取得方法は、別記事に記載
  2. APIキーをコピーしておきます。

3.2 APIキーの設定

APIキーを安全に管理するため、.env ファイルを使用します。

  1. プロジェクトディレクトリに .env ファイルを作成。
  2. .env ファイルに以下の内容を記述します:
    GEMINI_API_KEY=your_actual_api_key
    
  3. 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