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 キーの取得
- OpenAI Platform でアカウント作成
- API Keys ページで新しいキーを生成
- 環境変数に設定
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 時間以内の非同期処理
- 用途: 大量処理、レポート生成
セキュリティのベストプラクティス
- API キーの管理: 環境変数、Secret Manager
- キーのローテーション: 定期的に更新
- レート制限: クライアント側でも実装
- 入力検証: Prompt Injection 対策
- 出力フィルタリング: 機密情報チェック
- ログ管理: 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