KYC不要 — 身分証、自撮り、書類は不要です。暗号資産で支払い:BTC, USDT, USDC, ETH, SOL, LTC
言語: 日本語
APIキーを取得

ドキュメント · Node.js

Node.js:openaiパッケージをオープンウェイトモデルに向ける

公式のopenai npmパッケージはそのまま使えます。baseURLとAPIキーを指定するだけです。以下の例はNode.js 18以降向けのESモジュールで、fetchとトップレベルのawaitが標準で組み込まれています。

最終更新:

クイック回答

Node.jsからLLMwithCryptoを呼び出すにはどうすればよいですか?

公式パッケージをnpm install openaiでインストールし、baseURL: "https://llmwithcrypto.com/api/v1"とapiKey: process.env.LLMWITHCRYPTO_API_KEYでクライアントを作成します。LLMwithCryptoは12のオープンウェイトモデルに対してOpenAI形式でclient.chat.completions.create()に応答し、モデルが対応している場合はストリーミングとツール呼び出しにも対応します(2026年10月23日時点のドキュメント)。

必要なもの

Node.js18以降、ESモジュール(.mjsまたは"type": "module")
パッケージopenai(公式)
Base URLhttps://llmwithcrypto.com/api/v1
キー環境変数 LLMWITHCRYPTO_API_KEY に設定し、コードやブラウザには決して置かないでください

1回のリクエストはどのように送信しますか?

クライアントは起動時に1度作成し、すべての場所で再利用してください。キーはサーバー側に保管してください。ブラウザのコードに含めたキーは、ページを開いた誰でも読むことができます。そのためAPIはバックエンドから呼び出し、ブラウザには結果のみを送信してください。

one-call.mjs
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://llmwithcrypto.com/api/v1',
  apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});

const resp = await client.chat.completions.create({
  model: 'deepseek-v4-pro',
  messages: [
    { role: 'system', content: 'Answer in two sentences.' },
    { role: 'user', content: 'What is a context window?' },
  ],
  max_tokens: 200,
});
console.log(resp.choices[0].message.content);
console.log(resp.usage.prompt_tokens, 'in,', resp.usage.completion_tokens, 'out');

レート制限に達せずにバッチを実行するにはどうすればよいですか?

同時に実行するリクエスト数を固定します。以下の小さな mapLimit ヘルパーは4件を同時実行し、結果を順番どおりに返します。追加のパッケージは不要です。すべてのアカウントには1分あたりのリクエスト数とトークン数の上限があり、ダッシュボードに表示されます。サポートに依頼すれば引き上げられます。

batch.mjs
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://llmwithcrypto.com/api/v1',
  apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});

async function translate(text) {
  const resp = await client.chat.completions.create({
    model: 'qwen3-235b-a22b-instruct-2507',
    messages: [
      { role: 'system', content: 'Translate into Spanish. Reply with the translation only.' },
      { role: 'user', content: text },
    ],
    max_tokens: 200,
  });
  return resp.choices[0].message.content;
}

// at most 4 requests in flight
async function mapLimit(items, limit, fn) {
  const out = new Array(items.length);
  let next = 0;
  async function worker() {
    while (next < items.length) {
      const i = next++;
      out[i] = await fn(items[i]);
    }
  }
  await Promise.all(Array.from({ length: limit }, worker));
  return out;
}

const lines = ['Your order has shipped.', 'Your payment was received.', 'Your key was revoked.'];
console.log(await mapLimit(lines, 4, translate));

回答をストリーミングするにはどうすればよいですか?

stream: true を渡し、結果に対して for await を使用します。各チャンクには choices[0].delta.content にテキストの断片が入り、stream_options: { include_usage: true } を指定すると最後のチャンクにトークン数が含まれます。

stream.mjs
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://llmwithcrypto.com/api/v1',
  apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});

const stream = await client.chat.completions.create({
  model: 'deepseek-v4.1-flash',
  messages: [{ role: 'user', content: 'Write a haiku about latency.' }],
  stream: true,
  stream_options: { include_usage: true },
  max_tokens: 120,
});
for await (const chunk of stream) {
  const text = chunk.choices[0]?.delta?.content;
  if (text) process.stdout.write(text);
  if (chunk.usage) console.log(`\n${chunk.usage.prompt_tokens} in, ${chunk.usage.completion_tokens} out`);
}

残りのクレジットを確認するにはどうすればよいですか?

credits エンドポイントは OpenAI SDK に含まれていないため、fetch で呼び出してください。呼び出しは無料です。大きなバッチの前に実行し、クレジットがそれをまかなえるか確認してください。

credits.mjs
const res = await fetch('https://llmwithcrypto.com/api/v1/credits', {
  headers: { Authorization: `Bearer ${process.env.LLMWITHCRYPTO_API_KEY}` },
});
const credits = await res.json();
console.log('credit left:', credits.balance_usd, 'USD');

エラーはどのように処理すればよいですか?

SDK はすべての HTTP エラーに対して OpenAI.APIError をスローし、err.status にステータス、err.code にレスポンスボディの code が入ります。メッセージではなくコードを判定してください。insufficient_balance はチャージが必要、model_not_found は ID の誤り、rate_limit_exceeded は待って再試行を意味します。

SDK は一部のエラーを間隔をあけて2回まで自動再試行します(maxRetries)。長時間のバッチではこのデフォルトを維持し、前述のように同時実行数を制限し、断念した失敗はログに記録してください。エラーページ にはすべてのステータスと、再試行する価値があるものが記載されています。失敗した呼び出しは料金がかかりません:残高からトークン単位で支払います。入力トークンと出力トークンはモデル自身のトークナイザーでカウントされ、そのモデルの100万トークンあたりの価格で請求されます。エラーで終わった呼び出しは無料です。

既存の OpenAI アプリを移行するにはどうすればよいですか?

クライアントのオプション baseURL と apiKey を変更し、すべての gpt-… モデル名を models ページ の ID に置き換えてください。プロンプト、ストリーミングのコード、choices と usage のパースはそのまま使えます。トラフィックを切り替える前に、新しいモデルでテストを実行してください。tool calling と JSON 出力は各モデルがサポートする内容に従います。

Node.js:よくある質問

ブラウザから API を呼び出せますか?

技術的には可能ですが、ページにキーを置いてはいけません。サーバー、またはキーを保持するサーバーレス関数から呼び出してください。

Vercel AI SDK は動作しますか?

OpenAI 互換のベース URL を受け付けるライブラリなら動作します。APIはOpenAI chat completions形式に対応しています。OpenAI SDK、LangChain、その他OpenAI互換のツールのベースURLを当社のベースURLに設定し、APIキーを指定して、モデル名を変更してください。

クレジットがなくなるとどうなりますか?

呼び出しは 402 insufficient_balance を返し、料金はかかりません。エラーページ に対応方法が記載されています。

DeepSeek V4 Pro は100万入力トークンあたり$1.254から · KYC不要

APIキーを取得