# ============================================== # BANCO DE DADOS # ============================================== # Opção 1: PostgreSQL Local (Docker Compose) # DATABASE_URL=postgresql://postgres:postgres@localhost:5433/ragdb # Opção 2: Supabase (Recomendado para produção) # IMPORTANTE: Obtenha a string completa em Supabase Dashboard: # Project Settings > Database > Connection String > URI (modo "Session") # # ⚠️ Se a senha contiver caracteres especiais (@, $, %, etc), faça URL encoding: # from urllib.parse import quote_plus # encoded_password = quote_plus("sua_senha") # # Formato: postgresql://postgres:[PASSWORD_ENCODED]@db.[PROJECT_REF].supabase.co:5432/postgres DATABASE_URL=postgresql://postgres:[SUA_SENHA_ENCODED]@db.[SEU_PROJECT_REF].supabase.co:5432/postgres # Alternativa com connection pooling (melhor performance para produção): # DATABASE_URL=postgresql://postgres:[SUA_SENHA_ENCODED]@db.[SEU_PROJECT_REF].supabase.co:6543/postgres?pgbouncer=true # ============================================== # LLM PROVIDER # ============================================== # Provider de LLM (huggingface, openai, anthropic, ollama) LLM_PROVIDER=huggingface # ============================================== # HUGGING FACE # ============================================== # Token de API (obtenha em: https://huggingface.co/settings/tokens) HF_TOKEN=seu_token_hf # Modelo de geração de texto HF_MODEL_ID=mistralai/Mistral-7B-Instruct-v0.2 # Alternativas de modelos LLM: # HF_MODEL_ID=meta-llama/Llama-2-7b-chat-hf # HF_MODEL_ID=google/flan-t5-large # ============================================== # OPENAI # ============================================== # API Key (obtenha em: https://platform.openai.com/api-keys) OPENAI_API_KEY= # Modelo OpenAI OPENAI_MODEL_ID=gpt-3.5-turbo # Alternativas: # OPENAI_MODEL_ID=gpt-4 # OPENAI_MODEL_ID=gpt-4-turbo-preview # ============================================== # ANTHROPIC # ============================================== # API Key (obtenha em: https://console.anthropic.com/) ANTHROPIC_API_KEY= # Modelo Anthropic ANTHROPIC_MODEL_ID=claude-3-haiku-20240307 # Alternativas: # ANTHROPIC_MODEL_ID=claude-3-sonnet-20240229 # ANTHROPIC_MODEL_ID=claude-3-opus-20240229 # ============================================== # OLLAMA (LOCAL) # ============================================== # URL base do servidor Ollama OLLAMA_BASE_URL=http://localhost:11434 # Modelo Ollama OLLAMA_MODEL_ID=llama2 # Alternativas (após baixar com: ollama pull ): # OLLAMA_MODEL_ID=mistral # OLLAMA_MODEL_ID=codellama # OLLAMA_MODEL_ID=llama2:13b # ============================================== # EMBEDDINGS # ============================================== # Modelo de embeddings (sentence transformers) EMBEDDING_MODEL_ID=sentence-transformers/all-MiniLM-L6-v2 # Dimensão do vetor de embedding (deve corresponder ao modelo) EMBEDDING_DIM=384 # Alternativas de modelos de embedding: # EMBEDDING_MODEL_ID=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 # EMBEDDING_DIM=384 # EMBEDDING_MODEL_ID=sentence-transformers/all-mpnet-base-v2 # EMBEDDING_DIM=768 # EMBEDDING_MODEL_ID=BAAI/bge-small-en-v1.5 # EMBEDDING_DIM=384 # ============================================== # RETRIEVAL # ============================================== # Quantidade padrão de chunks a recuperar TOP_K=4 # Configuração do índice IVFFLAT IVFFLAT_LISTS=100 # ============================================== # CHUNKING # ============================================== # Tamanho padrão dos chunks (caracteres) CHUNK_SIZE=1000 # Overlap entre chunks (caracteres) CHUNK_OVERLAP=200 # ============================================== # GERAÇÃO # ============================================== # Temperature padrão (0.0 = determinístico, 2.0 = criativo) TEMPERATURE=0.3 # Máximo de tokens na resposta MAX_TOKENS=512 # ============================================== # APLICAÇÃO # ============================================== # Porta do servidor PORT=7860 # ============================================== # RERANKING # ============================================== # Modelo de reranking (cross-encoder) RERANKER_MODEL_ID=cross-encoder/ms-marco-MiniLM-L-6-v2 # Usar reranking por padrão USE_RERANKING=true # Top K final após reranking RERANKING_TOP_K=4