| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { montarContexto, buscarDocumentosSimilares } from "./busca";
- async function main() {
- const port = process.env.PORT ? parseInt(process.env.PORT) : 3000;
- const server = Bun.serve({
- port: port,
- async fetch(req) {
- if (
- req.url.endsWith("/api/embeddings") &&
- req.method === "POST" &&
- req.headers.get("Content-Type")?.includes("application/json")
- ) {
- try {
- // Here you would handle the embeddings API logic
- const body = await req.json() as { prompt?: string; topK?: number; limiarSimilaridade?: number };
- let { prompt, topK ,limiarSimilaridade} = body;
- if (!prompt) {
- return new Response("Faltando o campo 'prompt' no corpo da requisição", { status: 400 });
- }
- if (!topK) {
- topK = 3;
- }
- if (!limiarSimilaridade) {
- limiarSimilaridade=0.5;
- }
- const resultados = await buscarDocumentosSimilares(prompt, topK, limiarSimilaridade);
- const contexto = montarContexto(resultados);
- console.log('Contexto montado:', contexto);
- return new Response(JSON.stringify({ contexto, resultados }), { headers: { "Content-Type": "application/json" } });
- } catch (error) {
- console.error('Erro ao processar requisição:', error);
- return new Response("Erro ao processar JSON: " + (error instanceof Error ? error.message : String(error)), { status: 400 });
- }
- }
- return new Response("Embedding API is running");
- },
- });
- console.log(`Server running on http://:${port}`);
- }
- main().catch(error => {console.error(error);process.exit(1);});
|