銀河鉄道

dotenv+venvで始めるGPT開発|Python×OpenAI API接続の最小構成ログ

サムネイル
dotenv: yourprivate keyhole
dotenvで
OpenAIを

dotenv?

APIキーを
安全に隠せるの

Step 0. プロジェクトフォルダ作成

VSCodeを開いて
フォルダを作る

remind_bot/

Step 1|仮想環境(venv)を作成&有効化

仮想環境を作成する

python3 -m venv .venv

意味と目的

要素意味
python3Python本体の呼び出し(macOSではpythonではなくpython3が多い)
-mPythonが標準で持ってるモジュール(venv)を直接実行してね!というお願い
venvPythonに標準搭載されてる「仮想環境(Virtual Environment)」作成モジュール
.venv作りたい仮想環境の名前(=作成されるフォルダ名)

仮想環境とは

  • 「このプロジェクトだけで使う専用のPython(とpip)」をつくる仕組み
  • activateで仮想環境に入る
  • 仮想環境に入るほうが、わかりやすくなる

-m とは?

  • 「Pythonが標準で持ってるモジュール」を直接実行する
  • -m で、Python内蔵のWebサーバーが起動する

.venv という名前にする理由

  • .venv/ は慣例的に「このフォルダは仮想環境だよ〜」という意味
  • VSCode や他のツールが 自動で認識してくれるから、拡張機能との連携もスムーズになる
  • myenvenv_py3 でもいい。ただ、.venv が一番スマート&見慣れてる

仮想環境を有効化(activate)する

source .venv/bin/activate

意味

  • 仮想環境のPythonを使えるようにする
  • ターミナルが (.venv) 表記になればOK!

Step 2|必要なパッケージ(python-dotenv)のインストール

pipでインストールする

pip install openai 

意味

パッケージ用途
openaiGPTと通信するための公式ライブラリ
python-dotenv.env ファイルからAPIキーなどを読み込むためのライブラリ

Step 3|.env ファイル(秘密の引き出し)の作成

.env をプロジェクトルート直下に作成する

APIキーは大切なものだから
.env に書いて隠す

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

.env とは?

  • 「APIキーを安全にコード外に保管する」ための専用ファイル
  • これを dotenv で読み込んで、os.getenv("OPENAI_API_KEY") で取り出す

Step 4|GPT疎通用のPythonファイルを作成

gpt_helper.py を作ってコードを書く

import os
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()  # .envファイルを読み込む
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))  # キーをセット

def test_gpt_connection():
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": "Hello, GPT!"}]
    )
    print(response.choices[0].message.content)

if __name__ == "__main__":
    test_gpt_connection()

dotenv(ドットエヌブイ)とは?

  • .env に書かれた設定値(環境変数)を、Pythonプログラムから安全に読み取る
  • 秘密の引き出し
使う理由説明
秘密を隠せるAPIキーやパスワードなどをソースコードに直書きせずに済む
共有しやすい.env はGitに含めず、他の人とコードを安全に共有できる
設定の切り替えが楽環境ごとに.env.dev, .env.prod と分けて管理できる

if __name__ == "__main__": とは

  • 「このファイルを直接実行したときだけ、この下の処理を動かしてね!」

Pythonには「2つの実行モード」がある

状態__name__ の中身
直接実行"__main__"python gpt_helper.py
他ファイルからimport"gpt_helper"import gpt_helper
if name == “main“: を書くと…

他のファイルからインポートされたときは動かない(←ここ重要)

Step 5|実行してAPI疎通確認

python を叩く

python gpt_helper.py

こんな返事がくる

Hello! How can I assist you today?

意味

  • gpt_helper.py の中で GPT に「Hello, GPT!」を送ってみる
  • 応答が返ってきたら、API接続成功

ここまでのフォルダ構成

remind_bot/
├── .venv/              # 仮想環境
├── .env                # APIキー(安全な設定ファイル)
├── gpt_helper.py       # GPT接続テストスクリプト

dotenvを使わずに
簡単に書くこともできる
でもAPIキーを隠すならdotenvがいい

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。