【NodeJS】Gemini APIを使ってみる

Node.js

1. 概要

前回はTypeScriptでCSVを読み込んで処理する内容についてでした。今回はGemini APIを使ってみる内容になります。

対象としては開発を1年程やってて自分で最初から開発してみたい方になります。そのため細かい用語などの説明はしません。

2. nodeのインストール

こちらを参考

3. プロジェクトを作成

mkdir api-test
cd api-test
npm init
npm i -D typescript @types/node ts-node nodemon dotenv
npx tsc --init

※Gemini API キーが必要です。キーがない場合は、Google AI Studio で無料で取得できます。

4. 必要なライブラリをインストール

npm install @google/genai

5. ソースコード

5-1. package.json

{
  "name": "api-test",
  "version": "1.0.0",
  "description": "",
  "license": "ISC",
  "author": "",
  "type": "module",
  "main": "index.js",
  "scripts": {
    "dev": "tsc && NODE_ENV=dev node dist/index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "devDependencies": {
    "@types/node": "^24.1.0",
    "dotenv": "^17.2.1",
    "nodemon": "^3.1.10",
    "ts-node": "^10.9.2",
    "typescript": "^5.9.2"
  },
  "dependencies": {
    "@google/genai": "^1.12.0"
  }
}

5-2. tsconfig.json

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "verbatimModuleSyntax": true,
    "esModuleInterop": true,
    "strict": true,
    "outDir": "dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

5-3. .env.local

GEMINI_API_KEY=******

5-4. src/env.ts

import dotenv from "dotenv";
import { fileURLToPath } from "url";
import path from "path";

export const __dirname = path.dirname(fileURLToPath(import.meta.url));

export const loadEnv = async () => {
  if (process.env.NODE_ENV === "dev") {
    console.log(`This is dev environment.`);
    dotenv.config({ path: [".env.local"] });
  }
};

5-5. src/index.ts

import { loadEnv } from "./env.js";
import { GoogleGenAI } from "@google/genai";

const run = async () => {
  const ai = new GoogleGenAI({});

  try {
    const response = await ai.models.generateContent({
      model: "gemini-2.5-flash",
      contents: "AIの仕組みについて100ワード内で説明してください",
      config: {
        thinkingConfig: {
          thinkingBudget: 0, // スピードを優先する場合や、費用を最小限に抑えたい場合
        },
      },
    });
    console.log(response.text);
  } catch (error) {
    console.error("API呼び出し中にエラーが発生しました:", error);
    throw error;
  }
};

const main = async () => {
  await loadEnv();
  await run();
};

await main().catch((err) => {
  console.error("アプリケーションの実行に失敗しました:", err);
  process.exit(1);
});

6. 実行

npm run dev
> api-test@1.0.0 dev
> tsc && NODE_ENV=dev node dist/index.js

This is dev environment.
[dotenv@17.2.1] injecting env (1) from .env.local
AIは、データから学習するアルゴリズムとモデルによって機能します。大量のデータ(画像、音声、テキストなど)を取り込み、パターンを特定し、意思決定を行います。ディープラーニングのようなAIサブセットは、人間の脳に似たニューラルネットワークを利用し、より複雑なタスクを実行します。AIは入力データに基づいて推論、予測、コンテンツ生成を行います。

7. ディレクトリの構造

.
├── dist
│   ├── env.js
│   └── index.js
├── package-lock.json
├── package.json
├── src
│   ├── env.ts
│   └── index.ts
└── tsconfig.json

2 directories, 7 files

8. 備考

今回はGemini APIを使ってみる内容でした。

9. 参考

投稿者プロフィール

Sondon
開発好きなシステムエンジニアです。
卓球にハマってます。

関連記事

  1. Node.js

    【NodeJS】Geminiを使った画像生成(Nano Banana)…

  2. Node.jsバージョン管理ツールについて調べてみる

  3. Node.js

    【NodeJS】TypeScriptでCSVを読み込んで処理する

  4. Node.js

    【NodeJS】Crawleeを使ってみる(Scraping with…

  5. Node.js

    【NodeJS】PrismaやTypeScriptを使ってデータを操作…

  6. Node.js

    【NodeJS】PrismaやTypeScript、MySQLを使って…

最近の記事

制作実績一覧

  1. Checkeys