Integrações
Vercel AI SDK
Use seu stack como o modelo por trás de generateText, streamText e tools no Vercel AI SDK, através do provider compatível com OpenAI.
O Vercel AI SDK é um toolkit em TypeScript para chamar
modelos de linguagem a partir de Node.js, Next.js e outros frameworks. O
provider @ai-sdk/openai-compatible conversa com qualquer endpoint compatível
com OpenAI, então basta uma base URL e uma chave para apontá-lo para o seu
stack.
Pré-requisitos
- Uma chave da página Chaves de API do seu stack, exportada como
STAC_API_KEY. Veja Autenticação. - O id do modelo que você quer chamar — veja Modelos. Os
exemplos abaixo usam
qwen/qwen3.5-9b.
export STAC_API_KEY="your-stac-api-key"Configure o provider
Instale os pacotes
aié o SDK em si;@ai-sdk/openai-compatibleé o provider.bashnpm install ai @ai-sdk/openai-compatibleCrie o provider
namesó identifica o provider dentro do SDK (por exemplo, emproviderOptions).apiKeyé enviada comoAuthorization: Bearer <key>.stac.tstypescriptimport { createOpenAICompatible } from "@ai-sdk/openai-compatible"; export const stac = createOpenAICompatible({ name: "stac", baseURL: "https://api.trystac.com/v1", apiKey: process.env.STAC_API_KEY, });Chame o modelo
stac("qwen/qwen3.5-9b")devolve um modelo de chat que você pode passar para qualquer função do SDK.
Exemplo
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
import { generateText } from "ai";
const stac = createOpenAICompatible({
name: "stac",
baseURL: "https://api.trystac.com/v1",
apiKey: process.env.STAC_API_KEY,
});
const { text } = await generateText({
model: stac("qwen/qwen3.5-9b"),
prompt: "Name three primary colors.",
});
console.log(text);Saída esperada (o texto muda de uma execução para outra):
Red, blue, and yellow.Para respostas longas, prefira streamText — veja a observação sobre timeouts
abaixo:
import { streamText } from "ai";
const result = streamText({
model: stac("qwen/qwen3.5-9b"),
prompt: "Write a short paragraph about primary colors.",
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}Limitações
- O id do modelo precisa estar no seu plano. Passe para
stac(...)o valor exato de Modelos; um modelo que o plano da sua chave não inclui devolve403. - Tools dependem do modelo.
toolsemgenerateTextestreamTextsó funcionam com um modelo que suporta tool calling. - Saída estruturada usa o modo JSON. O provider só envia um JSON schema
quando
supportsStructuredOutputs: trueestá definido; sem isso, ogenerateObjectcai pararesponse_format: { type: "json_object" }, que o Stac suporta. - Chamadas sem streaming têm uma janela de tempo. O
generateTextespera a resposta inteira de uma vez; uma geração que passa de cerca de 90 segundos falha com503. UsestreamTextpara saídas longas. - Uma completude por requisição,
logit_biasé descartado e o rate limit é por chave. Veja Diferenças que importam.
Próximos passos
- Compatibilidade OpenAI — com o que o provider está conversando, e o que difere da OpenAI.
- Respostas em streaming — o formato SSE por trás
do
streamText. - Erros e limites de uso — quais códigos de status repetir.