Gemini APIのセットアップから基本的なテキスト生成、チャット形式の対話、コード例を合わせて紹介します。
OpenAIライブラリは、OpenAIが提供するAPIだけでなく、Geminiのような他のAIモデルのAPIも統一されたインターフェースで利用できるツールです。本記事では、Node.js環境でOpenAIライブラリを使ってGemini APIを操作する手順を詳細に解説します。
無料でもllmのapiが発行でき使用できます。是非是非活用してみてください。
Gemini APIを利用するには、まずAPIキーが必要です。
GoogleのGemini APIはVertex AIとGoogle AI Studioの2種類があます。 ざっくり分類すると
LLMのカスタマイズ等が無ければGoogle AI Studioを使いましょう。
GooglAIStudio からAPIを取得してください。
取得したAPIキーは環境変数に設定するなど、安全に管理してください。
新しいNode.jsプロジェクトを作成し、必要なライブラリをインストールします。
mkdir gemini-openai-example
cd gemini-openai-example
npm init -y
npm install openai dotenv
取得したGemini APIキーを使ってOpenAIクライアントを初期化します。
// index.js
require('dotenv').config();
const { OpenAI } = require('openai');
const openai = new OpenAI({
apiKey: process.env.GEMINI_API_KEY, // 環境変数からAPIキーを読み込む、もしくは直接APIKEYを記述する
baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai/', // Gemini APIのエンドポイント
});
簡単なテキスト生成の例です。modelパラメータでGeminiモデルを指定します。
async function generateText() {
try {
const completion = await openai.chat.completions.create({
model: 'gemini-2.0-flash', // 使用するGeminiモデル
messages: [
{ role: "user", content: "こんにちは、Gemini!" }
],
});
console.log(completion.choices[0].message.content);
} catch (error) {
console.error("テキスト生成エラー:", error);
}
}
generateText();
複数のターンにわたる対話を行う例です。 対話形式は他のLLMと同様過去の会話も合わせてmessagesを送信します。
async function chatConversation() {
try {
const messages = [
{ role: "user", content: "日本の首都はどこですか?" },
{ role: "assistant", content: "日本の首都は東京です。" },
{ role: "user", content: "東京の人口はどのくらいですか?" }
];
const completion = await openai.chat.completions.create({
model: 'gemini-2.0-flash',
messages: messages,
});
console.log(completion.choices[0].message.content);
} catch (error) {
console.error("チャットエラー:", error);
}
}
chatConversation();
応答をリアルタイムで受け取るストリーミングの例です。
async function streamResponse() {
try {
const stream = await openai.chat.completions.create({
model: 'gemini-2.0-flash',
messages: [{ role: "user", content: "長い物語を書いてください。" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
console.log("\nストリーミング完了。");
} catch (error) {
console.error("ストリーミングエラー:", error);
}
}
streamResponse();
本記事では、Node.jsのOpenAIライブラリを使ってGemini APIを操作する基本的な方法を紹介しました。 node.jsで動くようにしましたが、visual studioのClineを使うと便利です。他に無料で使えるものはopenrouterもあるので便利です。