.env.example 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # Servidor
  2. PORT=3001
  3. CORS_ORIGIN=http://localhost:5173
  4. # Autenticação (jwt ou none)
  5. AUTH_MODE=jwt
  6. JWT_SECRET=coloque-um-segredo-longo-e-aleatorio-aqui
  7. JWT_ISSUER=oraculo-api
  8. JWT_ACCESS_TTL_SECONDS=900
  9. JWT_REFRESH_TTL_SECONDS=2592000
  10. # API Key alternativa (opcional, deixar vazio para usar só JWT)
  11. API_KEY=
  12. # Banco de dados MySQL
  13. DB_HOST=localhost
  14. DB_PORT=3306
  15. DB_USER=usuario
  16. DB_PASS=senha
  17. DB_SCHEMA=oraculo
  18. # Qdrant (vector DB)
  19. QDRANT_URL=http://localhost:6333
  20. QDRANT_COLLECTION=oraculo_docs
  21. QDRANT_API_KEY=
  22. # Ollama
  23. OLLAMA_URL=http://localhost:11434
  24. OLLAMA_EMBEDDINGS_MODEL=nomic-embed-text
  25. OLLAMA_CHAT_MODEL=llama3
  26. OLLAMA_VISION_MODEL=llava
  27. # Prefixos opcionais prependados ao texto antes de gerar embedding (útil para modelos
  28. # assimétricos que recomendam prefixo diferente para query de busca e passagem indexada,
  29. # ex.: "search_query: "/"search_document: " no nomic-embed-text, "query: "/"passage: " em
  30. # modelos da família e5). Deixe vazio se o modelo não precisar. Validar empiricamente com
  31. # backend/scripts/evalRetrieval.mjs antes de habilitar em produção.
  32. OLLAMA_EMBED_QUERY_PREFIX=
  33. OLLAMA_EMBED_PASSAGE_PREFIX=
  34. # RAG (valores padrão se não definidos)
  35. RAG_TOP_K=8
  36. RAG_CHUNK_SIZE=900
  37. RAG_CHUNK_OVERLAP=150
  38. # Rate limiting (0 = desativado)
  39. RATE_LIMIT_PER_MINUTE=0
  40. # Ajuste fino das respostas do LLM
  41. LLM_TEMPERATURE=0.2
  42. LLM_TOP_P=0.9
  43. LLM_NUM_PREDICT=2048
  44. LLM_REPEAT_PENALTY=1.1
  45. # RAG avançado
  46. RAG_QUERY_REWRITE=false
  47. RAG_MIN_SCORE=0.40
  48. RAG_RERANK=false
  49. RAG_RERANK_TOP_N=8
  50. # HyDE (Hypothetical Document Embeddings): gera um trecho hipotético de resposta via LLM
  51. # e usa ele (em vez da query crua) para o embedding de busca, o que tende a elevar o score
  52. # de similaridade porque vira matching passagem-passagem. Custa uma chamada LLM extra por
  53. # pergunta. Validar com backend/scripts/evalRetrieval.mjs antes de habilitar em produção.
  54. RAG_HYDE=false