AI・機械学習
初級

Chatgpt Api(チャットジーピーティーエーピーアイ)

Chatgpt Apiは、人工知能・機械学習分野における重要な概念・技術です。

0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
AI
機械学習
初心者向け

ChatGPT API

概要

ChatGPT API は、OpenAI が提供する GPT シリーズの大規模言語モデルにアクセスするための REST API です。2023 年 3 月に公開されて以来、多くの Web サービス、アプリケーション、ツールが ChatGPT API を統合し、自然言語処理の民主化を推進してきました。開発者は数行のコードで GPT-3.5、GPT-4、GPT-4o、GPT-4o mini などの強力なモデルを利用できます。

利用可能なモデル(2026年)

モデル用途価格(Input / Output / 1M トークン)
GPT-4o最新・汎用$2.50 / $10.00
GPT-4o mini低コスト$0.15 / $0.60
GPT-4 Turbo長文対応$10.00 / $30.00
GPT-4標準$30.00 / $60.00
GPT-3.5 Turbo高速・安価$0.50 / $1.50
o1(推論特化)複雑な推論$15.00 / $60.00
o3-mini推論・低コスト$1.10 / $4.40

基本的な使い方

インストール

pip install openai

API キーの取得

  1. OpenAI Platform でアカウント作成
  2. API Keys ページで新しいキーを生成
  3. 環境変数に設定
export OPENAI_API_KEY='your-api-key-here'

シンプルな例

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "自作 PC の CPU は何を選ぶべき?"}
    ]
)

print(response.choices[0].message.content)

メッセージのロール

  • system: AI の振る舞いを定義
  • user: ユーザーからの入力
  • assistant: AI の過去の応答
  • tool: 関数呼び出しの結果

主要パラメータ

model

使用するモデルを指定

temperature(0〜2)

出力のランダム性:

  • 0: 決定的、最も確率の高い応答
  • 0.7: デフォルト、バランス
  • 1.5: 創造的、多様性重視

max_tokens

生成する最大トークン数

top_p(0〜1)

Nucleus sampling:

  • 1: すべてのトークンを考慮
  • 0.9: 上位 90% の確率分布

frequency_penalty(-2〜2)

繰り返しペナルティ:

  • 正: 繰り返しを避ける
  • 負: 繰り返しを促進

presence_penalty(-2〜2)

新しいトピックの促進

stream

  • true: ストリーミング応答(逐次出力)
  • false: 完全な応答後に返却

ストリーミング例

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Pythonでフィボナッチ数列を書いて"}],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end='')

Function Calling(関数呼び出し)

モデルに外部関数を呼び出させる機能:

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "指定した都市の天気を取得",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["city"]
        }
    }
}]

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "東京の天気は?"}],
    tools=tools
)

# tool_calls の処理
if response.choices[0].message.tool_calls:
    for call in response.choices[0].message.tool_calls:
        # 関数を実行
        result = get_weather(**json.loads(call.function.arguments))

Vision(画像入力)

GPT-4o、GPT-4 Turbo 等は画像を入力できる:

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "この画像を説明してください"},
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/image.jpg"}
                }
            ]
        }
    ]
)

Structured Outputs

JSON スキーマに従った構造化出力:

from pydantic import BaseModel

class Product(BaseModel):
    name: str
    price: float
    category: str

response = client.beta.chat.completions.parse(
    model="gpt-4o-2024-08-06",
    messages=[{"role": "user", "content": "iPhone 15 Pro の商品情報"}],
    response_format=Product
)

product = response.choices[0].message.parsed
print(product.name, product.price)

Assistants API

長期コンテキスト、ファイル検索、コードインタプリタを備えた高度な API:

  • Threads: 会話の管理
  • Code Interpreter: Python 実行
  • File Search: ファイル内容を検索
  • Tools: Function Calling 統合

Fine-tuning

GPT-3.5 Turbo、GPT-4o mini で可能:

  • Few-shot → Fine-tuning: 多数の例で特化
  • コスト: 学習 + 推論割増
  • 用途: ブランド口調、専門分野
# ファインチューニング開始
client.fine_tuning.jobs.create(
    training_file="file-abc123",
    model="gpt-4o-mini-2024-07-18"
)

Embeddings API

テキストをベクトル化:

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="自作 PC の選び方"
)
embedding = response.data[0].embedding  # 1536 次元

用途

  • セマンティック検索
  • 類似度計算
  • RAG(Retrieval-Augmented Generation)
  • クラスタリング

レート制限

Tier による制限

  • Tier 1(新規): 分 3 リクエスト
  • Tier 2: 分 500 リクエスト
  • Tier 3: 分 5000 リクエスト
  • Tier 4: 分 10000 リクエスト

超過時の対策

  • Retry with Exponential Backoff
  • リクエストのキューイング
  • モデルの切り替え
  • バッチ API(50% 割引)

コスト最適化

1. モデル選択

  • GPT-4o mini: GPT-3.5 Turbo より安価で高性能
  • o3-mini: 推論タスクで効果的

2. プロンプト最適化

  • 簡潔な指示: 不要なトークン削減
  • システムメッセージ再利用: Prompt Caching 活用
  • max_tokens: 必要最小限に

3. キャッシング

  • OpenAI Prompt Caching: 50% 割引(自動)
  • 自前キャッシュ: 同じ質問をキャッシュ

4. Batch API

  • 50% 割引: 24 時間以内の非同期処理
  • 用途: 大量処理、レポート生成

セキュリティのベストプラクティス

  1. API キーの管理: 環境変数、Secret Manager
  2. キーのローテーション: 定期的に更新
  3. レート制限: クライアント側でも実装
  4. 入力検証: Prompt Injection 対策
  5. 出力フィルタリング: 機密情報チェック
  6. ログ管理: API 呼び出しの記録

代替サービス

サービス特徴
OpenAI最大規模、GPT-4o
Anthropic Claude長文、安全性
Google Geminiマルチモーダル
Meta Llama APIオープンモデル
Mistral AIヨーロッパ系
Together AIオープンモデルホスティング
Ollama(ローカル)無料、プライバシー

関連用語

  • Assistants API、Function Calling
  • Embeddings、RAG
  • Fine-tuning、Prompt Engineering
  • OpenAI Playground
  • Anthropic Claude API、Gemini API
この記事について
カテゴリーAI・機械学習
難易度初級
作成日2025/7/11