18 lines
792 B
TypeScript
18 lines
792 B
TypeScript
import { streamText, convertToModelMessages } from "ai";
|
|
import { openai } from "@ai-sdk/openai";
|
|
import { createSupabaseServerClient } from "@/lib/supabase-server";
|
|
|
|
export async function POST(req: Request) {
|
|
const { messages } = await req.json();
|
|
const supabase = await createSupabaseServerClient();
|
|
const { data: bands } = await supabase.from("bands").select("name, genre, country, stage, time");
|
|
const context = (bands ?? []).map((b) => `${b.name} (${b.genre}, ${b.country}) — ${b.stage} ${b.time}`).join("\n");
|
|
|
|
const result = streamText({
|
|
model: openai("gpt-4o-mini"),
|
|
system: `Je bent een hulpvaardige festival-roadie voor Polderfest 2027.\nLine-up:\n${context}`,
|
|
messages: convertToModelMessages(messages),
|
|
});
|
|
return result.toUIMessageStreamResponse();
|
|
}
|