Spaces:
Running
Running
File size: 1,351 Bytes
1257299 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
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 }
);
}
}
|