Stripped from vercel/chatbot (Apache 2.0): - Dropped @vercel/* packages and AI Gateway - Removed artifacts feature (code/text/sheet/image side panel) - Switched AI provider to @ai-sdk/openai-compatible -> EGBE LiteLLM - Replaced Vercel Blob upload with data URLs - Dropped Redis resumable streams and rate limiter (in-memory now) - Added Dockerfile (Next.js standalone) + entrypoint that runs migrations - Wired DATABASE_URL, EGBE_AI_API_URL/KEY, NEXT_PUBLIC_BASE_URL for app-deploy.sh
32 lines
655 B
TypeScript
32 lines
655 B
TypeScript
import type { InferUITool, UIMessage } from "ai";
|
|
import { z } from "zod";
|
|
import type { getWeather } from "./ai/tools/get-weather";
|
|
|
|
export const messageMetadataSchema = z.object({
|
|
createdAt: z.string(),
|
|
});
|
|
|
|
export type MessageMetadata = z.infer<typeof messageMetadataSchema>;
|
|
|
|
type weatherTool = InferUITool<typeof getWeather>;
|
|
|
|
export type ChatTools = {
|
|
getWeather: weatherTool;
|
|
};
|
|
|
|
export type CustomUIDataTypes = {
|
|
appendMessage: string;
|
|
"chat-title": string;
|
|
};
|
|
|
|
export type ChatMessage = UIMessage<
|
|
MessageMetadata,
|
|
CustomUIDataTypes,
|
|
ChatTools
|
|
>;
|
|
|
|
export type Attachment = {
|
|
name: string;
|
|
url: string;
|
|
contentType: string;
|
|
};
|