From 471a9d125992b74451f3b524a8f60888a7d2d077 Mon Sep 17 00:00:00 2001 From: VPS 4 Builder Date: Sun, 28 Jun 2026 15:29:42 +0200 Subject: [PATCH] docs(secretaria): estado das chaves de embedding (OpenAI s/ quota, Gemini 768d) Co-Authored-By: Claude Opus 4.8 --- projetos/newwhats.clube67.com/secretaria-ia.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/projetos/newwhats.clube67.com/secretaria-ia.md b/projetos/newwhats.clube67.com/secretaria-ia.md index 714c305..2e35a73 100644 --- a/projetos/newwhats.clube67.com/secretaria-ia.md +++ b/projetos/newwhats.clube67.com/secretaria-ia.md @@ -22,8 +22,10 @@ VPS3 nem na imagem do `pgdev`, e o role `newwhats` **não é superuser** (`CREATE EXTENSION` negado). Solução adotada (decisão 28/jun/2026): -- `embeddings.ts`: **chunking** + **embed** (OpenAI `text-embedding-3-small` - ou Gemini `text-embedding-004`, conforme a chave) + **cosseno** — tudo em Node. +- `embeddings.ts`: **chunking** + **embed** (OpenAI `text-embedding-3-small` @1536d + ou Gemini `gemini-embedding-001` @768d, conforme a chave) + **cosseno** — em Node. + Ordem de preferência: **OpenAI → Gemini** (em qualquer falha do OpenAI, cai para + o Gemini — uma chave OpenAI sem créditos não derruba o RAG). - Tabela **`sec_knowledge_chunks`**: vetor serializado em **JSON/text** (sem extensão) + índices em `agent_id`/`node_id`. - `brain.ts`: no nó `knowledge`, injeta só os **top-4 trechos** relevantes à @@ -34,6 +36,17 @@ 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 > tiver `pgvector`, dá para migrar a busca ao banco sem mudar a interface. +### ⚠️ Chaves de embedding (estado dev, 28/jun/2026) +- `openai_key` configurada (não versionada, no Dragonfly), porém a conta OpenAI + está **sem quota** (`429 insufficient_quota`) → embeddings OpenAI não funcionam + até acertar billing. **Rotacionar** a chave exposta. +- `gemini_key` configurada e **funcional** → embeddings caem no Gemini + (`gemini-embedding-001` @768d). `text-embedding-004` foi descontinuado (404). +- **Incompatibilidade de dimensões**: OpenAI (1536d) ≠ Gemini (768d). Ao habilitar + o OpenAI (billing) o provider preferido muda → **é obrigatório reindexar** + (`sync-knowledge` + memória de contato), senão o cosseno mistura espaços e o + retrieval fica sem sentido. + ## Memória de longo prazo por contato A secretária **lembra do cliente entre conversas** (tabela `sec_contact_memory`):