Spaces:
Sleeping
Sleeping
| import { NextResponse } from 'next/server' | |
| import { generateEmbedding } from '@/lib/huggingface' | |
| import { createServerSupabaseClient } from '@/lib/supabase-server' | |
| export async function POST(request: Request) { | |
| try { | |
| const { content, title, metadata } = await request.json() | |
| if (!content) { | |
| return NextResponse.json( | |
| { error: 'Content is required' }, | |
| { status: 400 } | |
| ) | |
| } | |
| // Generate embedding using Hugging Face | |
| const embedding = await generateEmbedding(content) | |
| // Store in Supabase with embedding | |
| const supabase = await createServerSupabaseClient() | |
| const { data, error } = await supabase | |
| .from('documents') | |
| .insert({ | |
| content, | |
| title: title || null, | |
| embedding, | |
| metadata: metadata || {}, | |
| }) | |
| .select() | |
| .single() | |
| if (error) { | |
| console.error('Supabase error:', error) | |
| throw error | |
| } | |
| return NextResponse.json({ | |
| success: true, | |
| document: data | |
| }, { status: 200 }) | |
| } catch (error: unknown) { | |
| console.error("Embedding API Error:", error); | |
| const message = | |
| error instanceof Error ? error.message : "Internal server error"; | |
| return NextResponse.json( | |
| { error: message }, | |
| { status: 500 } | |
| ); | |
| } | |
| } | |