diff --git a/chatdesk-ui/app/api/retrieval/process/route.ts b/chatdesk-ui/app/api/retrieval/process/route.ts index 98196eb..d608d2d 100644 --- a/chatdesk-ui/app/api/retrieval/process/route.ts +++ b/chatdesk-ui/app/api/retrieval/process/route.ts @@ -1,4 +1,5 @@ import { generateLocalEmbedding } from "@/lib/generate-local-embedding" +import { generateBgeM3Embedding } from "@lib/generate-bgem3-embedding" import { processCSV, processJSON, @@ -138,9 +139,17 @@ export async function POST(req: Request) { embeddings = await Promise.all(embeddingPromises) } else if (embeddingsProvider === "bge-m3"){ // 示例:调用你自己的 BGE-M3 API 或本地函数 + const embeddingPromises = chunks.map(async chunk => { + try { + return await generateBgeM3Embedding(chunk.content) + } catch (error) { + console.error(`Error generating BGE-M3 embedding for chunk: ${chunk}`, error) + return null + } + }) + embeddings = await Promise.all(embeddingPromises) } - const file_items = chunks.map((chunk, index) => ({ file_id, user_id: profile.user_id, @@ -154,7 +163,11 @@ export async function POST(req: Request) { embeddingsProvider === "local" ? ((embeddings[index] || null) as any) : null - })) + bge_m3_embedding: + embeddingsProvider === "bge-m3" + ? (embeddings[index] || null) as any) + : null + }) await supabaseAdmin.from("file_items").upsert(file_items) diff --git a/chatdesk-ui/lib/generate-bgem3-embedding.ts b/chatdesk-ui/lib/generate-bgem3-embedding.ts new file mode 100644 index 0000000..0d106a3 --- /dev/null +++ b/chatdesk-ui/lib/generate-bgem3-embedding.ts @@ -0,0 +1,19 @@ +async function generateBgeM3Embedding(text: string): Promise { + try { + const response = await fetch("http://localhost:8000/embedding", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ input: text }) + }) + + if (!response.ok) { + throw new Error(`Failed to fetch BGE-M3 embedding: ${response.status}`) + } + + const result = await response.json() + return result.embedding as number[] + } catch (err) { + console.error("Error in generateBgeM3Embedding:", err) + return null + } +} diff --git a/chatdesk-ui/lib/server/server-chat-helpers.ts b/chatdesk-ui/lib/server/server-chat-helpers.ts index 30b793c..51a08e3 100644 --- a/chatdesk-ui/lib/server/server-chat-helpers.ts +++ b/chatdesk-ui/lib/server/server-chat-helpers.ts @@ -7,19 +7,6 @@ import { getRuntimeEnv } from "@/lib/ipconfig" // 新增引入 export async function getServerProfile() { - // const cookieStore = cookies() - // const supabase = createServerClient( - // getRuntimeEnv("SUPABASE_URL") ?? "http://localhost:8000", - // process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, - // { - // cookies: { - // get(name: string) { - // return cookieStore.get(name)?.value - // } - // } - // } - // ) - const supabase = getSupabaseServerClient() const user = (await supabase.auth.getUser()).data.user