50 lines
4.5 KiB
Markdown
50 lines
4.5 KiB
Markdown
# Assistência InvestMoz — entrega incremental
|
|
|
|
Implementada uma base **interna, lexical e determinística**, com gateway Laravel, React, fontes, revisão e suspensão. Não é ainda a plataforma generativa/RAG híbrida completa solicitada. Nenhum modelo, embedding ou reranker está activo, e não há selecção final de fornecedor baseada em benchmark generativo local.
|
|
|
|
## Execução local confirmada — 26/09/2026
|
|
|
|
- Migration `2026_09_26_120000_investmoz_ai_foundation` aplicada à base local após backup, restauro isolado e reconciliação de 69 tabelas existentes.
|
|
- `INVESTMOZ_AI_ENABLED=true` confirmado no ambiente local; acesso a `/management/ai` limitado aos gestores já autorizados. Oito endpoints REST internos registados, além das rotas Inertia.
|
|
- Suite PHP completa: **118 testes, 1.080 verificações aprovadas**. Inclui nove testes dedicados à base assistiva/fusão. PHPStan, Pint, TypeScript e build aprovados.
|
|
- Benchmark FTS: oito casos sintéticos PT/EN, todos com resultado esperado. Medianas por caso entre 1,091 e 1,604 ms; estes números não são latência de geração nem SLA.
|
|
- Backup e manifesto: `storage/app/private/ai-backup-20260926-155758/`. A configuração anterior foi conservada nesse directório privado; não o publicar.
|
|
- Nenhum documento institucional foi inventado ou carregado na base local; os dados de teste foram usados apenas na base isolada e revertidos. Corpus autorizado deve ser fornecido pelos responsáveis.
|
|
- Sem benchmark Mistral/Qwen/BGE, integração SuiteCRM real ou teste visual em navegador. Produção continua não aprovada.
|
|
|
|
## Utilização
|
|
|
|
Após migrations e activação local `INVESTMOZ_AI_ENABLED=true`, aceder a `/management/ai` com conta gestora e email verificado. A página não concede novos privilégios a utilizadores registados.
|
|
|
|
1. Carregar um `.txt` UTF-8 autorizado, com até 195 KiB, ou seleccionar um documento activo do cadastro existente. A classificação gravada é interna; não importar documentos confidenciais/restritos nesta fase.
|
|
2. Registar fonte HTTPS, proprietário, evidência de autorização, idioma, natureza declarada e validade. Não se faz download do URL; é uma referência, não um mecanismo de importação remota.
|
|
3. Outra pessoa gestora confirma a autorização. Só depois a fonte entra na pesquisa. A autorização interna não valida juridicamente a fonte nem torna oficial o seu conteúdo.
|
|
4. Consultar excertos, comparar oportunidades por filtros ou executar regras de qualidade/prazos. Consulta sem evidência não produz uma conclusão.
|
|
5. Pedir revisão, dar feedback ou suspender capacidades. Feedback `unsafe` suspende a capacidade; o controlo de emergência não partilha o limite de consultas.
|
|
|
|
Os resultados são guardados encriptados com a chave Laravel. A auditoria contém identificadores, versões, modo e latência, sem pergunta ou texto dos fragmentos. Revogar uma fonte ou alterar a sua versão/checksum/classificação impede consultas e oculta resultados anteriores que dela dependam. A triagem exige consentimento específico existente em `consents`, com `subject_ref` igual à referência do pedido e `purpose=ai_assistance`; consentimento de contacto não é reutilizado como consentimento de IA.
|
|
|
|
## Artefactos
|
|
|
|
- [Arquitectura e limites](architecture.md)
|
|
- [Modelos, licenças e recursos](models.md)
|
|
- [Benchmark lexical sintético executado](benchmark-results.json)
|
|
- [Cobertura funcional e pipeline](coverage.md)
|
|
- [Contrato dos endpoints](api.md)
|
|
- [Esquema vectorial proposto, não executado](vector-proposal.sql)
|
|
|
|
## Validação e operação
|
|
|
|
Com uma base PostgreSQL isolada terminada em `_test`, migrations aplicadas e `APP_ENV=testing`:
|
|
|
|
```sh
|
|
php artisan ai:benchmark
|
|
php vendor/bin/phpunit --filter 'AiGateway|AiHybrid' --do-not-cache-result
|
|
```
|
|
|
|
O benchmark usa oito casos sintéticos PT/EN, cinco repetições por caso, e reverte os dados numa transacção. Não mede qualidade gerativa, PT-MZ validado por especialistas, carga, concorrência, recall sobre corpus real ou custo total de operação.
|
|
|
|
Migrations aplicacionais não instalam pgvector nem modelos. Fazer backup/restauro antes da activação no ambiente de destino. Para suspensão global, definir `INVESTMOZ_AI_ENABLED=false` e limpar cache de configuração; preservar fontes, documentos e revisões. O rollback das tabelas com dados é recusado.
|
|
|
|
Não activar em produção antes de validar corpus, mandatos, retenção, privacidade, acessibilidade, carga, recuperação, revisão por pares e fornecedor. Não houve envio a SuiteCRM, treino, fine-tuning ou chamadas pagas de modelos.
|