Skip to main content

Настройка Vercel AI SDK

Подключите существующее приложение на Vercel AI SDK к GonkaGate.

Подключите существующее приложение на Vercel AI SDK к GonkaGate, создав один OpenAI-compatible provider, указав актуальный model ID и возвращая result.toTextStreamResponse() из server route. Держите GONKAGATE_API_KEY в том server runtime, который обрабатывает route.

Установите пакет провайдера

Установите пакет провайдера
npm install @ai-sdk/openai-compatible

Создайте общий provider

Создайте один provider и переиспользуйте его в route:

Создайте общий provider
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";

const apiKey = process.env.GONKAGATE_API_KEY;

if (!apiKey) {
  throw new Error("Set GONKAGATE_API_KEY");
}

export const gonkagate = createOpenAICompatible({
  name: "gonkagate",
  apiKey,
  baseURL: "https://api.gonkagate.com/v1",
});

Используйте его в server route

Подключите provider к server route, который возвращает текстовый стрим:

Используйте его в server route
import { streamText } from "ai";

import { gonkagate } from "@/lib/gonkagate";

export async function POST(request: Request) {
  const { prompt } = (await request.json()) as { prompt: string };

  const result = streamText({
    model: gonkagate("<model-id-from-get-v1-models>"),
    prompt,
  });

  return result.toTextStreamResponse();
}

Замените <model-id-from-get-v1-models> на актуальное значение из GET /v1/models.

Проверьте стрим

Отправьте один короткий запрос в route:

Проверьте стрим
curl http://localhost:3000/api/chat \
  -H "Content-Type: application/json" \
  -d '{"prompt":"Return exactly: AI SDK connected"}'

Ожидаемый результат: route возвращает текстовый стрим, в котором есть AI SDK connected.

Частые ошибки

Ответ или симптомЧто это обычно значитЧто делать
Не задан GONKAGATE_API_KEYПеременная не загружена в тот server runtime, который обрабатывает routeЗагрузите её в тот же runtime, где выполняется route
401 invalid_api_keyЗначение ключа или его состояние неверныПерепроверьте Аутентификацию и API-ключи
404 model_not_foundID модели устарел или не поддерживаетсяОбновите его через GET /v1/models
429 insufficient_quotaДля запроса не хватает средств на предоплаченном USD-балансеСначала пополните баланс
429 rate_limit_exceededВы упёрлись в лимит запросовУчитывайте Retry-After и добавьте bounded backoff
Route отвечает, но клиент всё равно неправильно обрабатывает стримRoute и вызывающая сторона больше не согласованы по формату текстового стримаОставьте result.toTextStreamResponse() в route и убедитесь, что вызывающая сторона ожидает текстовый стрим

См. также

Была ли эта страница полезной?