2026年現在、生成AIのAPIは多数存在しますが、実際の開発で使われているのは主にGoogleのGeminiとOpenAIのGPT系モデルです。本記事では両者を徹底比較し、あなたのプロジェクトに最適なAPIを選ぶためのガイドを提供します。
モデル・料金比較(2026年5月時点)
| モデル | 提供元 | 入力料金(1M tokens) | 出力料金(1M tokens) | コンテキスト長 |
|---|---|---|---|---|
| Gemini 2.0 Flash | $0.10 | $0.40 | 1M tokens | |
| Gemini 1.5 Pro | $1.25 | $5.00 | 2M tokens | |
| GPT-4o | OpenAI | $2.50 | $10.00 | 128K tokens |
| GPT-4o mini | OpenAI | $0.15 | $0.60 | 128K tokens |
| o1 | OpenAI | $15.00 | $60.00 | 200K tokens |
Gemini APIの使い方
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
// テキスト生成
async function generateContent(prompt: string): Promise<string> {
const model = genAI.getGenerativeModel({ model: "gemini-2.0-flash" });
const result = await model.generateContent(prompt);
return result.response.text();
}
// マルチモーダル(画像+テキスト)
async function analyzeImage(imageBase64: string, prompt: string) {
const model = genAI.getGenerativeModel({ model: "gemini-2.0-flash" });
const result = await model.generateContent([
{ inlineData: { data: imageBase64, mimeType: "image/jpeg" } },
prompt
]);
return result.response.text();
}
// チャット形式
const chat = model.startChat({
history: [
{ role: "user", parts: [{ text: "こんにちは" }] },
{ role: "model", parts: [{ text: "こんにちは!何かお手伝いできますか?" }] }
]
});
const response = await chat.sendMessage("TypeScriptについて教えてください");
OpenAI APIの使い方
import OpenAI from 'openai';
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
// テキスト生成
async function generateText(userMessage: string): Promise<string> {
const completion = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "あなたはプログラミングの専門家です。" },
{ role: "user", content: userMessage }
],
temperature: 0.7,
max_tokens: 2000
});
return completion.choices[0].message.content;
}
// ストリーミング
async function streamResponse(prompt: string) {
const stream = await client.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: prompt }],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
}
// 画像生成(DALL-E 3)
const image = await client.images.generate({
model: "dall-e-3",
prompt: "エンジニアが快適に作業しているオフィスの風景",
size: "1024x1024"
});
ユースケース別おすすめAPI
| ユースケース | おすすめ | 理由 |
|---|---|---|
| コスト重視の大量処理 | Gemini 2.0 Flash | 最安値クラスで高性能 |
| 長文ドキュメント処理 | Gemini 1.5 Pro | 2Mトークンのコンテキスト |
| 日本語チャットボット | GPT-4o mini | 自然な日本語表現 |
| 複雑な推論タスク | o1 | 高度な思考能力 |
| 画像解析 | Gemini 2.0 Flash | コスパが高い |
実践的なAIアプリ開発のポイント
- プロンプトエンジニアリング:System promptで役割を明確に定義する
- エラーハンドリング:APIレート制限・タイムアウトへの対応が必須
- コスト管理:トークン数の監視・最大トークン数の制限
- キャッシュの活用:同じクエリへのレスポンスはキャッシュで無駄なAPI呼び出しを削減
- RAG(検索拡張生成):自社データとLLMを組み合わせた高精度な回答生成
AIエンジニアとしてのキャリアに興味がある方は、フリーランスエンジニアガイドもぜひ参考にしてください。