import { NextResponse } from 'next/server' import { runInference } from '@/lib/huggingface' import { createServerSupabaseClient } from '@/lib/supabase-server' import type { InferenceRequest } from '@/types' export async function POST(request: Request) { try { const body: InferenceRequest = await request.json() const { model, inputs, parameters } = body if (!model || !inputs) { return NextResponse.json( { error: 'Model and inputs are required' }, { status: 400 } ) } // Run inference const result = await runInference(model, inputs, parameters) // Store in Supabase const supabase = await createServerSupabaseClient() const { data, error } = await supabase .from('model_interactions') .insert({ user_input: typeof inputs === 'string' ? inputs : JSON.stringify(inputs), model_output: JSON.stringify(result), model_name: model, }) .select() .single() if (error) { console.error('Supabase error:', error) // Still return result even if DB insert fails return NextResponse.json({ result }, { status: 200 }) } return NextResponse.json({ result, data }, { status: 200 }) } catch (error: any) { console.error('API Error:', error) return NextResponse.json( { error: error.message || 'Internal server error' }, { status: 500 } ) } }