useAllemChat

Chat hook with streaming, message history, and provider context. Built on the Vercel AI SDK.

import { useAllemChat } from "@allem-sdk/ai";

Options

PropTypeDefaultDescription
apistringOverride API endpoint from provider
modelstringModel identifier (e.g. "gemini-2.0-flash")
provider"google" | "anthropic" | "openai"Provider name
systemPromptstringSystem prompt sent with requests
headersRecord<string, string>Extra headers merged with provider headers
experimental_throttlenumberThrottle wait in ms for updates

Returns

PropertyTypeDescription
messagesUIMessage[]Array of chat messages
sendMessage({ text }): PromiseSend a message
status"ready" | "submitted" | "streaming"Current chat status
stop() => voidStop streaming
setMessages(msgs) => voidReplace message history

Usage

const { messages, sendMessage, status } = useAllemChat({
  provider: "anthropic",
  model: "claude-sonnet-4-20250514",
  systemPrompt: "You are a helpful assistant.",
});

const isLoading = status === "submitted" || status === "streaming";

// Send a message
await sendMessage({ text: "Hello!" });

// Render messages
messages.map((m) => (
  <div key={m.id}>
    {m.parts?.filter((p) => p.type === "text").map((p) => p.text).join("")}
  </div>
));