import { NextResponse } from 'next/server' import { generateEmbedding } from '@/lib/huggingface' import { createServerSupabaseClient } from '@/lib/supabase-server' import type { VectorSearchRequest, VectorSearchResult } from '@/types' export async function POST(request: Request) { try { const body: VectorSearchRequest = await request.json() const { query, match_threshold = 0.5, match_count = 5 } = body if (!query) { return NextResponse.json( { error: 'Query is required' }, { status: 400 } ) } console.log('Generating embedding for query:', query) const queryEmbedding = await generateEmbedding(query) console.log('Embedding generated, length:', queryEmbedding.length) const supabase = await createServerSupabaseClient() console.log('Calling match_documents RPC...') const { data, error } = await supabase.rpc('match_documents', { query_embedding: queryEmbedding, match_threshold, match_count, }) if (error) { console.error('Search error:', error) throw error } console.log('Search results:', data) return NextResponse.json({ results: data as VectorSearchResult[] }, { status: 200 }) } catch (error: unknown) { console.error("Search API Error:", error); const message = error instanceof Error ? error.message : "Internal server error"; return NextResponse.json( { error: message }, { status: 500 } ); } }