docs(newwhats): memória de contato passa a estado atual da Secretária IA

Documenta sec_contact_memory (extração na sumarização + recuperação por cosseno)
em secretaria-ia.md e marca o item 1 do roadmap como IMPLEMENTADO.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
VPS 4 Builder
2026-06-28 08:07:14 +02:00
parent df09a188bb
commit f2058edbf6
2 changed files with 14 additions and 1 deletions
@@ -35,7 +35,8 @@ Frameworks de mercado (2026):
| Modelo mais natural | Claude / GPT-4o no diálogo | médio | | Modelo mais natural | Claude / GPT-4o no diálogo | médio |
## Prioridade sugerida ## Prioridade sugerida
1. **Memória própria por contato** (reusa o RAG; sem infra nova) — maior ganho. 1. **Memória própria por contato** — IMPLEMENTADA (28/jun/2026). Ver
`secretaria-ia.md` → "Memória de longo prazo por contato" (`sec_contact_memory`).
2. **Transcrição de áudios** (Whisper) — destrava entender quem manda áudio. 2. **Transcrição de áudios** (Whisper) — destrava entender quem manda áudio.
3. **Ritmo humano** (typing + delay + chunks) — barato, muda a percepção. 3. **Ritmo humano** (typing + delay + chunks) — barato, muda a percepção.
4. **Resposta em áudio (TTS)** — opcional, alto impacto, custo por uso. 4. **Resposta em áudio (TTS)** — opcional, alto impacto, custo por uso.
@@ -34,6 +34,18 @@ VPS3 nem na imagem do `pgdev`, e o role `newwhats` **não é superuser**
> Para bases pequenas (clínica/empresa) é rápido e suficiente. Quando a VPS3 > Para bases pequenas (clínica/empresa) é rápido e suficiente. Quando a VPS3
> tiver `pgvector`, dá para migrar a busca ao banco sem mudar a interface. > tiver `pgvector`, dá para migrar a busca ao banco sem mudar a interface.
## Memória de longo prazo por contato
A secretária **lembra do cliente entre conversas** (tabela `sec_contact_memory`):
- **Extração** (na sumarização, a cada ~10 trocas): um LLM extrai *fatos
duradouros* do cliente a partir da conversa; cada fato vira embedding e é salvo
com **dedup** (cosseno > 0.92). Chave do contato = `ext_chat_id` (ou `contact_name`).
- **Recuperação**: `buildSystemPrompt` injeta `=== MEMÓRIA DO CLIENTE ===` com os
fatos mais relevantes à pergunta (cosseno). Sem chave de embedding → usa os mais
recentes. Fallback silencioso em qualquer falha (não regride).
- Reusa o mesmo embedding do RAG (`openai_key`/`gemini_key`); **sem pgvector**.
## Modo teste / segurança ## Modo teste / segurança
- `DISABLE_OUTBOUND=true` (kill switch global, ver `ambiente-dev.md`) bloqueia - `DISABLE_OUTBOUND=true` (kill switch global, ver `ambiente-dev.md`) bloqueia