Configuração de Variáveis de Ambiente ===================================== O Menthor utiliza um arquivo ``.env`` para gerenciar a inteligência dos modelos, chaves de segurança e limites de tráfego. Variáveis de Ambiente (.env) ---------------------------- Configure as credenciais e parâmetros no ficheiro na raiz do projeto: .. list-table:: :widths: 30 45 25 :header-rows: 1 * - Variável - Descrição - Exemplo * - ``OPENAI_MODEL`` - Modelo padrão utilizado para as inferências de chat. - ``"gpt-4o"`` * - ``OPENAI_MODEL_LIST`` - Lista de modelos homologados e permitidos pelo sistema. - ``["gpt-4o", "gpt-5"]`` * - ``OPENAI_API_KEY_MENTHOR`` - Chave de acesso à API da OpenAI. - ``"sk-proj-..."`` * - ``API_KEY`` - Token de segurança exigido no header ``X-API-KEY``. - ``"sua_chave"`` * - ``ENABLE_RATE_LIMITER`` - Chave mestra que ativa ou desativa os limites de uso. - ``True`` * - ``RATE_LIMITS_CONFIG`` - Dicionário JSON com as quotas de requisição por perfil. - *(Ver seção abaixo)* .. danger:: **Restrição de Modelos (OPENAI_MODEL / OPENAI_MODEL_LIST):** Estes valores **não devem ser alterados** sem alinhamento prévio com a equipe de desenvolvimento. A arquitetura, os prompts e a lógica de processamento de dados foram otimizados especificamente para estes modelos. Alterações não homologadas podem causar falhas críticas na geração de respostas e instabilidade no sistema. Controle de Fluxo (Rate Limiting) --------------------------------- O sistema implementa um limitador de requisições baseado em **API Key** e **Janela Fixa** para proteger a infraestrutura contra uso excessivo e picos de custo. Perfis de Limite ~~~~~~~~~~~~~~~~ As quotas são segmentadas por categorias de consumo: * **MESSAGES**: Aplicado aos endpoints de streaming (``/token_streaming``, ``/sentence_streaming``, ``/block_streaming``). .. note:: O endpoint ``/send_prompt_wpp`` consome a cota do perfil **MESSAGES**, pois utiliza internamente a lógica de blocos para entrega ao WhatsApp. * **PROCESSING**: Aplicado a operações de escrita e análise profunda, como o gerenciamento de arquivos (Menthor Files) e a documentação automática de bancos de dados (Menthor DB), como ``/databases/create_description_db``, ``/databases/evaluate-context-quality``, ``/files/upload_files`` e ``/files/update_files``. * **DEFAULT / ADMIN**: Limites de segurança para rotas de sistema e monitoramento. Não aplicados no Menthor. Configuração Técnica das Quotas ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A variável ``RATE_LIMITS_CONFIG`` deve seguir rigorosamente a sintaxe de dicionário Python/JSON. .. code-block:: python RATE_LIMITS_CONFIG='{ "DEFAULT": {"per_minute": 20, "per_hour": 100, "per_day": 500}, "MESSAGES": {"per_minute": 50, "per_hour": 200, "per_day": 1200}, "PROCESSING": {"per_minute": 20, "per_hour": 100, "per_day": 500} }' .. warning:: **Sintaxe de Aspas:** Para que o sistema interprete as configurações corretamente, o bloco deve ser envolvido por aspas simples (``'``) e as chaves internas por aspas duplas (``"``). .. note:: Se ``ENABLE_RATE_LIMITER`` estiver como ``False``, todos os limites acima são ignorados, permitindo requisições ilimitadas. Use com cautela em produção.