Amazonでお得な買い物

【Python中級】OpenAI APIをPythonで使ってみる〜テキスト生成入門〜

目次
スポンサーリンク

OpenAI APIとは?

OpenAI APIは、ChatGPTを動かしているAI技術をプログラムから直接操作できるサービスです。

主な用途は以下の通りです。

  • テキスト生成・要約・翻訳
  • コードの自動生成・レビュー
  • チャットボットの構築

料金は従量課金制です。使った分だけ課金される仕組みで、入門用途なら月数百円程度に収まることがほとんどです。今回使用するgpt-4o-miniはコストパフォーマンスが高くおすすめです。

事前準備

APIキーの発行

  1. OpenAI Platform にアクセスしてアカウントを作成
  2. ダッシュボードから「API Keys」→「Create new secret key」でAPIキーを発行
  3. 発行されたキーは一度しか表示されないので必ずメモしておく

ライブラリのインストール

以下の2つをインストールします。

pip install openai python-dotenv
  • openai:OpenAI APIを呼び出すための公式ライブラリ
  • python-dotenv:APIキーを環境変数で安全に管理するためのライブラリ

APIキーを環境変数で管理する

APIキーをコードに直接書くのはNGです。誤ってGitHubに公開してしまうリスクがあります。.envファイルで管理しましょう。

プロジェクトのルートに.envファイルを作成し、以下のように記述します。

OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx

また、.gitignore.envを追加して、誤って公開しないようにしておきましょう。

.env

テキスト生成のコード

では実際にAPIを呼び出してみましょう。以下のコードをそのまま実行できます。

from openai import OpenAI
from dotenv import load_dotenv
import os

# .envファイルの内容を読み込む
load_dotenv()

# クライアントの初期化
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

# APIリクエスト
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "あなたは親切なアシスタントです。"},
        {"role": "user", "content": "Pythonの魅力を一言で教えて"}
    ]
)

# レスポンスの表示
print(response.choices[0].message.content)

実行するとこのような出力が得られます。

シンプルな文法と豊富なライブラリで、アイデアをすぐにカタチにできる言語です。

messagesの構造について

messagesはリスト形式で、各メッセージにrole(役割)とcontent(内容)を指定します。

role役割
systemAIの振る舞いや前提条件を設定する(「丁寧に答えて」「日本語のみで回答して」など)
userユーザーからの入力(質問・指示)
assistantAIの過去の返答(会話履歴を持たせるときに使用)

主要パラメータの解説

よく使うパラメータをまとめます。

パラメータ役割推奨値・目安
model使用するモデルの指定gpt-4o-mini(コスパ良・入門向け)
temperature出力のランダム性(0〜2)創作:1.0〜1.5 / 要約・翻訳:0.0〜0.3
max_tokens出力の最大トークン数用途に応じて調整(未指定で自動)

temperatureを変えて試してみましょう。

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "user", "content": "短い詩を書いて"}
    ],
    temperature=1.5,   # 高いほど創造的・ランダムな出力になる
    max_tokens=200
)

まとめ

今回やったことを振り返ります。

  • OpenAI APIキーを発行し、.envで安全に管理した
  • openaiライブラリを使ってテキスト生成を実行した
  • system/userロールの使い分けと主要パラメータを学んだ

次回は会話履歴を管理して、文脈を理解するChatbotを作る方法を解説します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内の精密機器を作っている会社に勤務している14年目のエンジニアです。趣味は美味しいものを食べることとゴルフ。プログラムについて今まで学んだことをわかりやすく発信するサイトを目指しています。

コメント

コメントする

目次