accounts/dashboard/app/api/rag/query/route.ts
2025-11-02 15:41:55 +08:00

38 lines
1.1 KiB
TypeScript

import { getInternalServerServiceBaseUrl } from '@server/serviceConfig'
const FORWARDED_HEADERS = ['authorization', 'cookie', 'x-account-session'] as const
function buildForwardHeaders(req: Request) {
const headers = new Headers({ 'Content-Type': 'application/json' })
for (const name of FORWARDED_HEADERS) {
const value = req.headers.get(name)
if (value) {
headers.set(name, value)
}
}
return headers
}
export async function POST(req: Request) {
try {
const { question, history } = await req.json()
const apiBase = getInternalServerServiceBaseUrl()
const response = await fetch(`${apiBase}/api/rag/query`, {
method: 'POST',
headers: buildForwardHeaders(req),
body: JSON.stringify({ question, history }),
credentials: 'include'
})
const data = await response.json().catch(() => null)
return Response.json(data ?? { error: 'Invalid response from server' }, {
status: response.status
})
} catch (error) {
const message = error instanceof Error ? error.message : 'Unknown error'
return Response.json({ error: message }, { status: 500 })
}
}