index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import dotenv from "dotenv";
  2. dotenv.config();
  3. export const config = {
  4. port: Number(process.env.PORT ?? 3001),
  5. corsOrigin: process.env.CORS_ORIGIN ?? "http://localhost:5173",
  6. apiKey: process.env.API_KEY ?? "",
  7. auth: {
  8. mode: process.env.AUTH_MODE ?? "none"
  9. },
  10. jwt: {
  11. secret: process.env.JWT_SECRET ?? "",
  12. issuer: process.env.JWT_ISSUER ?? "oraculo-api",
  13. accessTtlSeconds: Number(process.env.JWT_ACCESS_TTL_SECONDS ?? 900),
  14. refreshTtlSeconds: Number(process.env.JWT_REFRESH_TTL_SECONDS ?? 60 * 60 * 24 * 30)
  15. },
  16. qdrant: {
  17. url: process.env.QDRANT_URL ?? "http://localhost:6333",
  18. apiKey: process.env.QDRANT_API_KEY ?? "",
  19. collection: process.env.QDRANT_COLLECTION ?? "empresa_docs"
  20. },
  21. ollama: {
  22. url: process.env.OLLAMA_URL ?? "http://localhost:11434",
  23. embeddingsModel: process.env.OLLAMA_EMBEDDINGS_MODEL ?? "nomic-embed-text",
  24. chatModel: process.env.OLLAMA_CHAT_MODEL ?? "llama3.1",
  25. visionModel: process.env.OLLAMA_VISION_MODEL ?? "llava:latest"
  26. },
  27. rag: {
  28. topK: Number(process.env.RAG_TOP_K ?? 6),
  29. minScore: Number(process.env.RAG_MIN_SCORE ?? 0.45),
  30. chunkSize: Number(process.env.RAG_CHUNK_SIZE ?? 900),
  31. chunkOverlap: Number(process.env.RAG_CHUNK_OVERLAP ?? 150),
  32. queryRewrite: process.env.RAG_QUERY_REWRITE === "true"
  33. }
  34. };