gemini-api-integration について
Node.js、Python、ブラウザーのアプリケーションに Google Gemini API を統合する方法を AI エージェントに案内するスキルです。生成、マルチモーダル入力、ストリーミング、関数呼び出し、モデル選択、エラー処理を扱います。
主な機能
- 01Google GenAI SDK の設定
- 02テキスト生成とレスポンスのストリーミング
- 03画像、音声、動画入力の送信
- 04関数呼び出しとチャットの実装
- 05エラー、クォータ、再試行への対応
活用シーン
- 01アプリケーションへの Gemini 生成機能の追加
- 02マルチモーダルなユーザー入力の処理
- 03体感レイテンシを抑えるストリーミング出力
- 04検証済みツールへのモデル関数呼び出しの接続
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill gemini-api-integrationインストール後、Claude Code で/gemini-api-integrationを入力して読み込まれたか確認します。
詳細
Gemini API の統合
概要
このスキルでは、基本的なテキスト生成から、高度なマルチモーダル、関数呼び出し、ストリーミングのユースケースまで、Google Gemini API をアプリケーションに統合する方法を AI エージェントに案内します。Gemini SDK のライフサイクル全体を、本番環境に適したパターンで解説します。
このスキルを使用するタイミング
- Node.js、Python、またはブラウザープロジェクトで、初めて Gemini API を設定するとき
- マルチモーダル入力(テキスト+画像/音声/動画)を実装するとき
- 体感レイテンシを改善するためにストリーミング応答を追加するとき
- Gemini で関数呼び出し/ツールの使用を実装するとき
- コストとパフォーマンスを考慮して、モデルの選択(Flash、Pro、Ultra)を最適化するとき
- Gemini API のエラー、レート制限、クォータの問題をデバッグするとき
手順ガイド
1. サポート対象の SDK とモデルを選択する
Google GenAI SDK(JavaScript では @google/genai、Python では google-genai)を使用し、テスト済みのパッケージバージョンを固定して、アカウントで利用可能なモデルを選択してください。旧式の @google/generative-ai/google-generativeai API や、過去の 1.5/2.0 モデル一覧は、現在の設定手順としては推奨されていません。選択前に、公式ドキュメントでモデルの利用可否、非推奨化、料金、機能サポートを確認してください。どの環境でも最も安価、または最も高性能なモデルが同じだと想定しないでください。
2. サーバー側での生成
シークレットマネージャーまたは保護された環境変数を通じて GEMINI_API_KEY を設定し、確認済みのモデル ID を GEMINI_MODEL に設定してください。長期間有効なキーをブラウザーコードに含めないでください。
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const response = await ai.models.generateContent({
model: process.env.GEMINI_MODEL,
contents: "Explain async/await in JavaScript"
});
console.log(response.text);
import os
from google import genai
with genai.Client(api_key=os.environ["GEMINI_API_KEY"]) as client:
response = client.models.generate_content(
model=os.environ["GEMINI_MODEL"], contents="Explain async/await")
print(response.text)
3. ストリーミングとマルチモーダル入力
固定した SDK の models.generateContentStream/models.generate_content_stream インターフェイスを使用し、部分出力、キャンセル、空またはブロックされた応答を処理してください。画像/音声/動画を送信する前に、MIME タイプ、モデルの制限、ファイルの保持期間を確認してください。機密コンテンツについては許可を得てください。プライベートな入力やアクセス URL をログに記録しないでください。ファイルのアップロードと生成には料金が発生する場合があります。
4. 関数呼び出しとチャット
モデルによる関数呼び出しは、信頼できない提案です。名前が固定の許可リストに含まれていること、引数がスキーマに準拠していることを検証し、ユーザーの認可を適用したうえで、呼び出し回数、時間、コストを制限してから実行してください。固定した SDK のドキュメントに記載された関数レスポンス形式で、実際のツール結果を返してください。結果を捏造しないでください。必要な会話ターンと関数呼び出し ID を保持してください。チャット履歴のエントリは、特権を持つシステム指示ではありません。システム指示には、サポートされている設定フィールドを使用してください。
5. エラー処理
すべての応答にテキストが含まれるとは限らないため、そうした前提を置かずに、構造化エラー、ブロック理由、終了理由を確認してください。一時的なエラーに限り、上限付きの指数バックオフ、ジッター、指定されている場合は再試行までの待機時間の指示に従って再試行してください。期限と再試行予算を適用してください。ネットワークリクエストに失敗しても、すでに利用料金が発生している場合があります。無効な認証情報や形式不正なリクエストを際限なく再試行しないでください。また、ブロックされた応答を回避する目的で安全設定を緩めないでください。
例
本番環境に統合する前に、まずテストプロジェクトで機密情報を含まない小さなプロンプトを実行し、SDK/モデルのバージョンと応答ステータスを記録したうえで、ストリーミングのキャンセル、ブロックされた出力、クォータの枯渇、拒否されたツール引数をテストしてください。実際に試した内容を報告してください。
参照元
制限事項
SDK の構文、モデルの利用可否、クォータ、料金は変更される場合があります。これらの例は実行されていない統合テンプレートであり、アカウントへのアクセス、モデルの品質、本番環境への対応状況を示すものではありません。