#25 Pythonで学ぶAI API(ChatGPT等)の呼び出し方の基本

はじめに

ChatGPTのようなAI(人工知能)を、自分のPythonプログラムから呼び出せたら便利だと思ったことはありませんか。実は「API(エーピーアイ)」という仕組みを使えば、初心者でも数行のコードでAIに質問を投げて答えを受け取ることができます。APIとは「Application Programming Interface」の略で、簡単に言うと「あるサービスの機能を、プログラムから使わせてもらうための窓口」のことです。この記事では、PythonからAI APIを呼び出す基本的な流れを、初めての人にもわかるように解説します。

AI APIを使う前に知っておきたいこと

APIキーとは何か

多くのAIサービスは、誰でも自由に使えるわけではなく「APIキー」と呼ばれる、いわば合言葉のような文字列を発行しています。このキーをリクエスト(サービスへの依頼)に添えることで、「あなたが誰で、どれだけ利用したか」をサービス側が把握できる仕組みです。APIキーは家の鍵のようなものなので、他人に見せたり、そのままコードに書いてSNSやGitHubに公開したりしないよう注意しましょう。

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

APIキーをコードに直接書き込む(ハードコーディングと呼びます)のは避けたい書き方です。代わりによく使われるのが「環境変数」という、OS(パソコンの基本ソフト)側にこっそり値を保存しておく仕組みです。Pythonではosという標準ライブラリ(あらかじめPythonに用意されている機能集)を使って、次のように環境変数からキーを読み込めます。

import os

api_key = os.environ.get("OPENAI_API_KEY")

この方法なら、コード自体にはキーが書かれないため、他の人とコードを共有しても安全です。環境変数の設定方法はOSによって異なります。多くの場合、ターミナル(コマンドを入力する画面)で1行コマンドを実行するか、.envというファイルに書いて専用ライブラリで読み込む方法が使われます。

Pythonからの呼び出し方の基本

方法1: requestsライブラリを使う

Pythonにはrequestsという、Webサービスとやり取りするための定番の外部ライブラリ(標準では入っておらず、自分でインストールして使う追加機能)があります。多くのAI APIはこのrequestsで直接呼び出すことができます。

import requests
import os

api_key = os.environ.get("OPENAI_API_KEY")
url = "https://api.example.com/v1/chat"
headers = {"Authorization": f"Bearer {api_key}"}
data = {"message": "こんにちは"}

response = requests.post(url, headers=headers, json=data)
print(response.json())

requests.postは「このURLにデータを送って」という意味の命令で、返ってきた結果(レスポンス)はresponse.json()でPythonの辞書型(キーと値のペアで情報を扱う形)として取り出せます。

方法2: 公式SDKを使う

OpenAIなど多くのAIサービスは、requestsよりさらに簡単に使える「公式SDK(ソフトウェア開発キット)」というライブラリを提供しています。SDKを使うと、URLやヘッダーの細かい設定を意識せずに済み、コードもすっきりします。

from openai import OpenAI

client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "こんにちは"}]
)
print(response.choices[0].message.content)

他の言語でも似たようなSDKが用意されていることが多いですが、Pythonは文法がシンプルです。そのため、AI系のSDKやサンプルコードがPython向けに真っ先に公開されることも多く、これもPythonの特徴のひとつです。初心者が学び始めるにはうってつけの分野と言えるでしょう。

エラー時に気をつけたいこと

API呼び出しは必ず成功するとは限りません。APIキーが間違っている、利用回数の上限に達した、通信が不安定、といった理由でエラーが返ることがあります。こうした場合に備えて、tryexceptという「エラーが起きても処理を止めずに対応する」ための構文を使うのが安心です。

try:
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": "こんにちは"}]
    )
    print(response.choices[0].message.content)
except Exception as e:
    print("エラーが発生しました:", e)

また、APIには「1分間に何回まで」といった利用制限が設定されていることが多く、これを超えるとエラーになります。エラーメッセージにはたいてい原因のヒントが含まれているので、まずは落ち着いて内容を読んでみましょう。

まとめ

PythonからAI APIを呼び出す基本の流れは、次の4ステップです。

  1. APIキーを環境変数で安全に管理する
  2. requestsか公式SDKでリクエストを送る
  3. 返ってきたレスポンスから必要な情報を取り出す
  4. try/exceptでエラーに備える

最初は難しく感じるかもしれませんが、公式SDKを使えばコード自体はとてもシンプルです。まずは無料枠や少額の範囲で試しながら、少しずつ使い方に慣れていくとよいでしょう。

関連記事

コメント

このブログの人気の投稿

#11 Rustで学ぶエラーハンドリングの基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本

#19 Goで学ぶテスト(単体テスト)の基本