Hubris
Фреймворки

Vercel AI SDK

Подключить Hubris к Vercel AI SDK через @ai-sdk/openai-compatible.

Vercel AI SDK

Vercel AI SDK подключается к Hubris через провайдер @ai-sdk/openai-compatible — он принимает любой OpenAI-совместимый endpoint.

Установка

npm install ai @ai-sdk/openai-compatible

Подключение

import { createOpenAICompatible } from "@ai-sdk/openai-compatible";

const hubris = createOpenAICompatible({
  name: "hubris",
  baseURL: "https://api.hubris.pw/v1",
  apiKey: process.env.HUBRIS_API_KEY,
});

generateText (одиночный запрос)

import { generateText } from "ai";

const { text } = await generateText({
  model: hubris.chatModel("anthropic/claude-haiku-4.5"),
  prompt: "Привет, как дела?",
});

console.log(text);

streamText (стриминг)

import { streamText } from "ai";

const { textStream } = await streamText({
  model: hubris.chatModel("anthropic/claude-haiku-4.5"),
  prompt: "Расскажи короткую историю",
});

for await (const chunk of textStream) {
  process.stdout.write(chunk);
}

С tool calling

import { generateText, tool } from "ai";
import { z } from "zod";

const result = await generateText({
  model: hubris.chatModel("anthropic/claude-haiku-4.5"),
  prompt: "Какая погода в Москве?",
  tools: {
    getWeather: tool({
      description: "Текущая погода в городе",
      parameters: z.object({ city: z.string() }),
      execute: async ({ city }) => ({ city, temp: 5, condition: "sunny" }),
    }),
  },
});

Использование в Next.js Route Handler

// app/api/chat/route.ts
import { streamText } from "ai";
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";

const hubris = createOpenAICompatible({
  name: "hubris",
  baseURL: "https://api.hubris.pw/v1",
  apiKey: process.env.HUBRIS_API_KEY,
});

export async function POST(req: Request) {
  const { messages } = await req.json();
  const result = await streamText({
    model: hubris.chatModel("anthropic/claude-haiku-4.5"),
    messages,
  });
  return result.toDataStreamResponse();
}

Что дальше