【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】自作MCPサーバー with Gemini CLI

  2. Node.js

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

  3. Node.js

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

  4. 【新米エンジニア学習記録②】TypeScriptの導入

  5. Node.js

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

  6. Node.js

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

最近の記事

制作実績一覧

  1. Checkeys