Grok API

Grok API на TypeScript и Node.js

View as Markdown

Обновлено:

Минимальная рабочая интеграция Grok API Dev с официальным TypeScript OpenAI SDK: запрос из Node.js, server-side endpoint и потоковый ответ.

Установка TypeScript SDK

npm
npm install openai
.env
GROK_API_DEV_KEY=sk-lg-YOUR_API_KEY

Первый запрос к Grok API Dev

TypeScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.GROK_API_DEV_KEY,
  baseURL: "https://api.llm-gate.tech/v1",
  timeout: 3_600_000,
  maxRetries: 2,
});

const response = await client.responses.create({
  model: "grok-4.5",
  input: "Explain the event loop in two sentences.",
});

console.log(response.output_text);
console.log(response.usage);

Запрос из Next.js

Next.js route
// app/api/grok/route.ts
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.GROK_API_DEV_KEY,
  baseURL: "https://api.llm-gate.tech/v1",
});

export async function POST(request: Request) {
  const { input } = await request.json();
  const response = await client.responses.create({
    model: "grok-4.5",
    input,
  });

  return Response.json({ text: response.output_text });
}

Streaming

TypeScript streaming
const stream = await client.responses.create({
  model: "grok-4.5",
  input: "Write a short TypeScript example.",
  stream: true,
});

for await (const event of stream) {
  if (event.type === "response.output_text.delta") {
    process.stdout.write(event.delta);
  }
}

Повторы и таймауты

В OpenAI SDK уже есть механизм повторных запросов. Свой механизм ретраев добавлять не нужно: задайте maxRetries и timeout при создании клиента.

TypeScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.GROK_API_DEV_KEY,
  baseURL: "https://api.llm-gate.tech/v1",
  maxRetries: 2,
  timeout: 3_600_000,
});
  • 401: проверьте ключ и серверную переменную окружения. Повтор без исправления не поможет.
  • 404: проверьте ID модели и Base URL.
  • 429: дождитесь Retry-After и уменьшите параллелизм.
  • 500, 504 или 529: ограниченно повторите запрос с backoff и jitter.

Полный список кодов и способы их обработки собраны на странице «Ошибки API».

Связанные страницы