Main Logo
hero-background.jpg

Node.jsでGemini APIを使う(OpenAIライブラリ)

Node.jsのOpenAIライブラリを活用してGemini APIを操作する方法を解説します。現段階では無料でapiを使えます。

Gemini APIのセットアップから基本的なテキスト生成、チャット形式の対話、コード例を合わせて紹介します。


OpenAIライブラリでGemini APIを使う

はじめに

OpenAIライブラリは、OpenAIが提供するAPIだけでなく、Geminiのような他のAIモデルのAPIも統一されたインターフェースで利用できるツールです。本記事では、Node.js環境でOpenAIライブラリを使ってGemini APIを操作する手順を詳細に解説します。
無料でもllmのapiが発行でき使用できます。是非是非活用してみてください。

Gemini APIの準備

Gemini APIを利用するには、まずAPIキーが必要です。

GoogleのGemini APIはVertex AIとGoogle AI Studioの2種類があます。 ざっくり分類すると

  • 企業向け:Vertex AI
  • 個人向け:Google AI Studio

LLMのカスタマイズ等が無ければGoogle AI Studioを使いましょう。

1. APIキーの取得

GooglAIStudio からAPIを取得してください。

openai-api-get-api openai-api-generate-api openai-api-api-key
APIキーの管理

取得したAPIキーは環境変数に設定するなど、安全に管理してください。

2. Node.jsプロジェクトのセットアップ

新しいNode.jsプロジェクトを作成し、必要なライブラリをインストールします。

mkdir gemini-openai-example
cd gemini-openai-example
npm init -y
npm install openai dotenv

基本的な使い方

1. OpenAIクライアントの初期化

取得した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のエンドポイント
});

2. テキスト生成

簡単なテキスト生成の例です。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();

応用例

1. チャット形式での対話

複数のターンにわたる対話を行う例です。 対話形式は他の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();

2. ストリーミング応答

応答をリアルタイムで受け取るストリーミングの例です。

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もあるので便利です。

関連記事

コメントを読み込み中...