export async function POST()

in appdev_with_generative_ai/src/knowledge-drive/app/api/query/route.ts [25:80]


export async function POST(request: Request) {
  const { userId, question } = await request.json();
  try {
    let status, data;
    if (process.env.SEARCH_HOST) {
      const auth = new GoogleAuth();
      const client = await auth.getIdTokenClient(process.env.SEARCH_HOST);
      const res = await client.request({
        url: `${URL}${ENDPOINT_PATH}`,
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        data: {
          user_id: userId,
          question: question,
        },
      });
      status = res.status;
      data = res.data;
    } else {
      const result = await fetch(`${URL}${ENDPOINT_PATH}`, {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          question: question,
        }),
      });
      status = result.status;
      data = await result.json();
    }
    if (status !== 200) {
      return NextResponse.json({ message: "Search failed" }, { status: 500 });
    }
    if (!isValidSearchResponse(data)) {
      return NextResponse.json(
        { message: "Invalid response from search API" },
        { status: 500 }
      );
    }
    console.log(data);

    return NextResponse.json({
      answer: data.answer,
      metadata: {
        source: removeExtensionFromFileId(data.metadata.source),
        page: data.metadata.page,
      },
    });
  } catch (e) {
    console.error(e);
    return NextResponse.json({ message: e }, { status: 500 });
  }
}