Настройка 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:
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, который возвращает текстовый стрим:
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_found | ID модели устарел или не поддерживается | Обновите его через GET /v1/models |
429 insufficient_quota | Для запроса не хватает средств на предоплаченном USD-балансе | Сначала пополните баланс |
429 rate_limit_exceeded | Вы упёрлись в лимит запросов | Учитывайте Retry-After и добавьте bounded backoff |
| Route отвечает, но клиент всё равно неправильно обрабатывает стрим | Route и вызывающая сторона больше не согласованы по формату текстового стрима | Оставьте result.toTextStreamResponse() в route и убедитесь, что вызывающая сторона ожидает текстовый стрим |
См. также
- Гайд по миграции с OpenAI на GonkaGate если нужно перевести больше частей существующего OpenAI-compatible приложения
- TypeScript SDK для GonkaGate если вам не нужен слой AI SDK provider
- Справочник по стримингу для точного поведения SSE, полей
usageи edge cases стриминга
Была ли эта страница полезной?