01
Базовый LLM-вызов
Начало
Отправляем запрос в LLM, получаем ответ. Просто чтобы убедиться что всё работает.
Мы будем использовать OpenRouter — универсальный прокси ко всем
LLM-провайдерам (Anthropic, OpenAI, Google, Meta и др.).
А библиотека openai совместима с любым API, который поддерживает OpenAI-формат
— достаточно поменять baseURL.
Один клиент, один формат, доступ к любой модели.
Сначала создаём проект и ставим зависимости:
mkdir simple-agent && cd simple-agent && npm init -y && npm install openai typescript tsx @types/node dotenv
Создай папку src и добавь .gitignore, чтобы случайно не закоммитить
ключ:
mkdir src
.gitignore
node_modules .env
Теперь создай файл .env с ключом от OpenRouter:
.env
OPENROUTER_API_KEY=sk-or-v1-ваш-ключ-от-openrouter
Теперь — первый вызов:
src/01-basic-call.ts
// src/01-basic-call.ts
import OpenAI from "openai";
import dotenv from "dotenv";
dotenv.config();
const client = new OpenAI({
baseURL: "https://openrouter.ai/api/v1",
apiKey: process.env.OPENROUTER_API_KEY ?? "",
});
async function main() {
const response = await client.chat.completions.create({
model: "anthropic/claude-sonnet-4.5",
messages: [
{ role: "user", content: "Сколько будет 2 + 2?" }
],
});
console.log(response.choices[0].message.content);
}
main();
npx tsx src/01-basic-call.ts
Демо в формате диалога
1/1
Пример вывода. У тебя может быть иначе — это
нормально.
✅ Что должно получиться
В терминале появляется ответ модели (обычно «4») без ошибок.
🧯 Если не работает
Проверь OPENROUTER_API_KEY в .env, наличие интернета и версии
node/npm.
💡 Что произошло: Мы отправили запрос через OpenRouter (универсальный прокси ко
всем LLM-провайдерам),
получили ответ. Используем библиотеку
openai — она совместима с любым API,
поддерживающим OpenAI-формат.