環境構築:SDK・認証・開発環境

AI Navigate Original / 2026/5/16

共有:

要点

  • Node.js/Python で LLM API の最小環境を整える
  • ランタイム導入・プロジェクト作成・.env+dotenv・初回コード
  • キーは環境変数、Vercel AI SDK でプロバイダ抽象化
  • デバッグツールを使い 401/429/400/500 の頻出エラーを知る

LLM の API を呼ぶだけなら、必要なものは驚くほど少なめです。ランタイム(Node.js か Python)公式 SDKAPI キーの 3 つがそろえば、最初の 1 行は数分で動きます。本ガイドは「どこに何を置き、キーをどう安全に渡すか」を、初めての人がそのまま真似できる手順で整理します。

ランタイム SDK 公式ライブラリ API キー LLM クラウド API 応答

FIG.1 ランタイム → SDK →(API キーで認証)→ クラウド上のモデル → 応答、という一方向の流れ

ポイントは、モデル本体は手元に置かないこと。あなたのコードはインターネット越しにベンダーの API を呼び、結果を受け取るだけです。だから GPU も大量メモリも不要で、ノート PC でそのまま始められます。

01まず決める:Node.js か Python か

どちらでも LLM API は問題なく使えます。迷ったら、すでに慣れている言語で構いません。傾向としての向き不向きは次の通りです。

Node.js / TypeScriptPython
Web アプリ・API サーバーに組み込む用途が得意データ処理・機械学習・検証スクリプトが得意
フロントエンドと同じ言語で完結できるJupyter で対話的に試しやすい
型(TypeScript)で補完が効きやすいライブラリが豊富で書き味が軽い

本ガイドでは両方の最小セットアップを並べます。読みたい方だけ読めば大丈夫です。

02Node.js 環境を整える

3 つのステップ(インストール → プロジェクト作成 → 鍵の設定)で動く状態まで持っていきます。

01

Node.js を入れる

nodejs.org から LTS(長期サポート)版を入れます。2026 年 6 月時点の Active LTS は Node.js 24 です。複数バージョンを切り替えたいなら、nvm / fnm / volta などのバージョン管理ツールを使うと後で楽になります。

02

プロジェクトを作る

空のフォルダを作り、必要なパッケージを入れます。TypeScript と tsx(TS をそのまま実行できるツール)を入れておくと、コンパイル手順を省けます。

03

キーを .env に置く

API キーはコードに直接書かず、環境変数として .env に分離します。.env は必ず .gitignore に入れ、リポジトリに含めないこと。

実際のコマンドはこうなります(Anthropic・OpenAI・Google の 3 社をまとめて入れる例)。

mkdir my-ai-app && cd my-ai-app
npm init -y

# 公式 SDK(必要なものだけでよい)
npm install @anthropic-ai/sdk openai @google/genai

# TypeScript で書くための開発用ツール
npm install -D typescript tsx @types/node
npx tsc --init

続いて鍵を .env に書きます。値は各社のダッシュボードで発行したものに置き換えてください。

# .env  (← このファイルは .gitignore に必ず追加)
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=AIza...

# .gitignore
.env
node_modules

Node.js は v20.6 以降、--env-file オプションで .env を直接読めるため、追加ライブラリなしでも動きます。古い書き方に慣れているなら dotenv パッケージでも構いません。

03最初の 1 行を動かす(Node.js)

下のコードを index.ts に保存し、実行すると、モデルからの返事がターミナルに出ます。モデル名は時期によって変わるので、実行前に各社の公式ドキュメントで現行の識別子を確認してください(ここでは 2026 年 6 月時点の例を使っています)。

// index.ts
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic(); // ANTHROPIC_API_KEY を環境変数から自動で読む

const msg = await client.messages.create({
  model: "claude-opus-4-8",     // 現行のモデル識別子(公式で要確認)
  max_tokens: 256,
  messages: [{ role: "user", content: "こんにちは!自己紹介して。" }],
});

console.log(msg.content[0].type === "text" ? msg.content[0].text : "");

// 実行(.env を読み込んで起動)
//   node --env-file=.env --import tsx index.ts

OpenAI も同じくらい簡単です。新しいコードでは、従来の chat.completions ではなく Responses APIresponses.create)が推奨されています。とくに推論(reasoning)系モデルでは Responses API のほうが扱いやすくなっています。

// openai-example.ts
import OpenAI from "openai";

const client = new OpenAI(); // OPENAI_API_KEY を環境変数から読む

const res = await client.responses.create({
  model: "gpt-5.5",                 // 現行モデル(公式で要確認)
  input: "こんにちは!自己紹介して。",
});

console.log(res.output_text);

Google の Gemini は @google/genai(新しい統合 SDK)を使います。以前の @google/generative-ai は提供終了しているため、新規はこちらを使ってください。

// gemini-example.ts
import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({}); // GEMINI_API_KEY を環境変数から読む

const res = await ai.models.generateContent({
  model: "gemini-3.5-flash",       // 現行モデル(公式で要確認)
  contents: "こんにちは!自己紹介して。",
});

console.log(res.text);

04Python 環境を整える

Python では「仮想環境を切る → パッケージを入れる → 鍵を環境変数で渡す」の流れです。仮想環境(venv)でプロジェクトごとに依存を隔離するのが定石です。これをやらないと、別プロジェクトのパッケージ更新が思わぬ形で衝突します。

仮想環境なし システム共通 プロジェクトA プロジェクトB バージョン衝突 仮想環境あり .venv (A) プロジェクトA .venv (B) プロジェクトB それぞれ独立 → 衝突しない

FIG.3 仮想環境(venv)はプロジェクトごとに依存を箱で分け、バージョン衝突を防ぐ

# 仮想環境を作って有効化(Python 3.10 以降推奨)
python -m venv .venv
source .venv/bin/activate          # Windows は .venv\Scripts\activate

# 公式 SDK と .env 読み込み用
pip install anthropic openai google-genai python-dotenv

Google の Python SDK はパッケージ名が google-genai に変わっている。古い google-generativeai は提供終了済み。

初回コードはこうなります。.env を読み込んでから各クライアントを生成します。

# main.py
from dotenv import load_dotenv
from anthropic import Anthropic

load_dotenv()                       # .env を環境変数に読み込む
client = Anthropic()                # ANTHROPIC_API_KEY を自動で読む

msg = client.messages.create(
    model="claude-opus-4-8",        # 現行モデル(公式で要確認)
    max_tokens=256,
    messages=[{"role": "user", "content": "こんにちは!自己紹介して。"}],
)
print(msg.content[0].text)

# 実行
#   python main.py

Gemini(Python)は google.genai を import します。

# gemini_main.py
from dotenv import load_dotenv
from google import genai

load_dotenv()
client = genai.Client()             # GEMINI_API_KEY を自動で読む

res = client.models.generate_content(
    model="gemini-3.5-flash",       # 現行モデル(公式で要確認)
    contents="こんにちは!自己紹介して。",
)
print(res.text)

05API キーの渡し方は「環境変数」が基本

キーの渡し方は 2 通りありますが、原則は環境変数(方法 1)です。コードに直書きすると、うっかり Git に push して漏洩する事故につながります。

API キー .env / 環境変数 SDK 読み込みは自動 コードに直書き Git に混入 この 2 つは避ける

FIG.2 キーは環境変数から SDK が自動で読む。コード直書きと Git 混入は事故の元

// 方法 1:環境変数(推奨)— 何も渡さなくても自動で読む
const client = new Anthropic();
// 内部で process.env.ANTHROPIC_API_KEY を参照する

// 方法 2:明示的に渡す(変数名を自分で管理したいときだけ)
const client2 = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
});

本番(サーバー)では .env ファイルではなく、ホスティング側のシークレット管理(環境変数の設定画面、クラウドのシークレットマネージャ等)に登録します。万一キーが漏れたら、その場でダッシュボードから失効・再発行(ローテーション)してください。

06ベンダーを切り替えやすくする(任意)

「あとで別のモデルに乗り換えるかも」という場合は、Vercel AI SDK のような抽象化レイヤを挟むと、呼び出し側のコードを大きく変えずにプロバイダを差し替えられます。最初から必須ではないので、必要になってからで構いません。

npm install ai @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google

// 同じ generateText で、model を差し替えるだけ
import { generateText } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
// import { openai } from "@ai-sdk/openai";
// import { google } from "@ai-sdk/google";

const { text } = await generateText({
  model: anthropic("claude-opus-4-8"),  // ここを openai(...) / google(...) に変えるだけ
  prompt: "こんにちは!自己紹介して。",
});

console.log(text);

ただし、抽象化しても各社で得意・不得意やパラメータの細部は異なります。共通インターフェースは「乗り換えの初期コストを下げる」もので、ベンダー固有機能を完全に隠せるわけではない点は覚えておきましょう。

07動作確認とデバッグの道具

うまく動かないときに役立つツールを、目的別に分けて挙げます。最初から全部入れる必要はありません。

手早く試す

各社の Playground / API コンソール、Postman・Insomnia。ブラウザや GUI でリクエストを試せる。

対話的に書く

Jupyter Notebook(Python)、VS Code / Cursor などの AI 補完が効くエディタ。

挙動を追う

LangSmith・Helicone などの観測ツールで、呼び出し・レイテンシ・コストを記録する。

08よくあるエラーと対処

最初に出会いやすいエラーは、ほぼ次の 4 種に収まります。エラーコードを見れば原因の見当がつきます。

エラー主な原因と対処
401 Unauthorizedキーが間違い/環境変数を読めていない。.env の場所と読み込み手順を確認
429 Too Many Requestsレート上限・残高不足。指数バックオフで再試行し、必要なら上限を引き上げる
400 Bad Requestパラメータ不備・入力が長すぎ・モデル名が古い。リクエスト内容を見直す
5xx Server ErrorAPI 側の一時障害。少し待ってから再試行(リトライ処理を入れておく)

とくに 401 は「環境変数がコードまで届いていない」ことが大半です。console.log(process.env.ANTHROPIC_API_KEY?.slice(0, 6)) のように先頭数文字だけ出して、読めているか確認しましょう(キー全体はログに出さないこと)。

09よくある勘違い

  • 「モデルを自分の PC に入れる必要がある」:不要。API 経由ならモデルはベンダー側にあり、あなたは呼ぶだけ。
  • 「モデル名は固定」:頻繁に更新される。識別子(例:claude-opus-4-8 / gpt-5.5 / gemini-3.5-flash)は公式で都度確認する。
  • .env に書けば安全」.gitignore に入れて初めて安全。コミット履歴に一度でも残ると漏洩扱い=即ローテーション。
  • 「料金は安価で固定」:従量課金で、価格・プラン・無料枠は変わりやすい。費用は各社の最新の料金ページで確認する。

10次のステップ

環境とキーが整い、最初の応答が返ってきたら準備完了です。次は「はじめての API 呼び出し」で、複数ターンの会話・ストリーミング表示・パラメータ(温度や最大トークン)の調整を実装していきましょう。