Для получения чистого Markdown любой страницы добавьте .md к URL‑адресу страницы.
Для полного индекса документации см. https://api.vega.chat/docs/llms.txt.
Для полного содержания документации см. https://api.vega.chat/docs/llms-full.txt.
Для интеграции AI‑клиентов (Claude Code, Cursor и др.) подключитесь к MCP‑серверу по адресу https://api.vega.chat/docs/_mcp/server.
Быстрый старт: Создание чат‑приложения
Цель: Изучить основы VEGA, создав TypeScript‑чат‑приложение, которое отправляет сообщения и получает ответы в режиме потока через VEGA.
Результат: Рабочий цикл многократного диалога, способный общаться с любой из более чем 600 моделей, доступных на платформе, изменением одной строки.
Хотите начать быстрее? Скопируйте этот запрос в ваш код‑агент.
Предварительные требования
- Node.js 18+ установлен
- API‑ключ VEGA — создайте его на
/dashboard/keys или настройте новый проект API VEGA
1. Создайте проект и установите SDK
Создайте новый проект Node.js и добавьте SDK клиента VEGA. SDK доступен только в формате ESM, поэтому задайте тип пакета module. Установите tsx, чтобы запускать примеры TypeScript напрямую.
mkdir vega-chat && cd vega-chat
npm init -y
npm pkg set type=module
npm install @openrouter/sdk
npm install --save-dev tsx2. Отправьте первое сообщение
Создайте chat.ts с экземпляром клиента и единственным запросом завершения чата. apiKey читается из переменной окружения, поэтому учётные данные никогда не прописываются в коде.
import { OpenRouter } from '@openrouter/sdk';
const client = new OpenRouter({
apiKey: process.env.VEGA_API_KEY,
});
const completion = await client.chat.send({
chatRequest: {
model: 'google/gemini-3.1-flash-lite',
messages: [
{ role: 'user', content: 'Say hello in one sentence.' },
],
},
});
console.log(completion.choices[0]?.message.content);
console.log({
promptTokens: completion.usage?.promptTokens,
completionTokens: completion.usage?.completionTokens,
});Запустите его, указав ваш API‑ключ:
VEGA_API_KEY=vega_... npx tsx chat.tsВы должны увидеть один текстовый ответ, выведенный в консоль. SDK возвращает использование токенов в полях camelCase, таких как promptTokens и completionTokens. Массив completion.choices имеет ту же структуру, что и ответ Chat Completions.
3. Потоковая передача ответа
Потоковая передача возвращает текст по мере его генерации, вместо ожидания полного ответа. Укажите stream: true и итерируйте получаемый асинхронный итератор. Каждый фрагмент содержит delta с новым кусочком текста.
import { OpenRouter } from '@openrouter/sdk';
const client = new OpenRouter({
apiKey: process.env.VEGA_API_KEY,
});
const stream = await client.chat.send({
chatRequest: {
model: 'google/gemini-3.1-flash-lite',
messages: [
{ role: 'user', content: 'Explain how routers work in three sentences.' },
],
stream: true,
},
});
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}
console.log();Текст теперь выводится постепенно. См. справочник по потоковой передаче для полного формата SSE‑событий.
4. Добавьте многократный диалог
Многократный диалог реализуется отправкой полной истории сообщений с каждым запросом. Модель использует все предыдущие сообщения как контекст. Добавляйте каждый ввод пользователя и ответ ассистента в массив messages перед следующим вызовом.
import { OpenRouter } from '@openrouter/sdk';
import * as readline from 'node:readline';
const client = new OpenRouter({
apiKey: process.env.VEGA_API_KEY,
});
const messages: { role: 'user' | 'assistant'; content: string }[] = [];
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
function ask(): void {
rl.question('You: ', async (input) => {
if (input.toLowerCase() === 'exit') {
rl.close();
return;
}
messages.push({ role: 'user', content: input });
const stream = await client.chat.send({
chatRequest: {
model: 'google/gemini-3.1-flash-lite',
messages,
stream: true,
},
});
let response = '';
process.stdout.write('Assistant: ');
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) {
process.stdout.write(delta);
response += delta;
}
}
console.log();
messages.push({ role: 'assistant', content: response });
ask();
});
}
ask();Запустите файл и вводите сообщения. Модель запоминает предыдущие ходы, потому что массив messages отправляется полностью с каждым запросом. Введите exit, чтобы выйти.
5. Смените модель
VEGA предоставляет доступ к сотням моделей через один API. Измените строку model, чтобы переключить провайдера — других изменений кода не требуется.
// Use OpenAI's latest chat model
model: 'openai/gpt-chat-latest',
// Use Anthropic Claude Sonnet latest
model: '~anthropic/claude-sonnet-latest',
// Use a free model
model: 'openrouter/free',Просмотрите все доступные модели на /aimodels или запросите их программно через Models API.
Проверьте свою работу
npx tsx chat.tsвыводит потоковый ответ в консоль- Многократный диалог сохраняет контекст между ходами (задайте уточняющий вопрос, ссылающийся на предыдущий ответ)
- Изменение строки
modelпереключает на другую модель без дополнительных правок кода - Непотоковый ответ включает объект
usageс полямиpromptTokensиcompletionTokens