docs(secretaria): estado das chaves de embedding (OpenAI s/ quota, Gemini 768d)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -22,8 +22,10 @@
|
|||||||
VPS3 nem na imagem do `pgdev`, e o role `newwhats` **não é superuser**
|
VPS3 nem na imagem do `pgdev`, e o role `newwhats` **não é superuser**
|
||||||
(`CREATE EXTENSION` negado). Solução adotada (decisão 28/jun/2026):
|
(`CREATE EXTENSION` negado). Solução adotada (decisão 28/jun/2026):
|
||||||
|
|
||||||
- `embeddings.ts`: **chunking** + **embed** (OpenAI `text-embedding-3-small`
|
- `embeddings.ts`: **chunking** + **embed** (OpenAI `text-embedding-3-small` @1536d
|
||||||
ou Gemini `text-embedding-004`, conforme a chave) + **cosseno** — tudo em Node.
|
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
|
- Tabela **`sec_knowledge_chunks`**: vetor serializado em **JSON/text** (sem
|
||||||
extensão) + índices em `agent_id`/`node_id`.
|
extensão) + índices em `agent_id`/`node_id`.
|
||||||
- `brain.ts`: no nó `knowledge`, injeta só os **top-4 trechos** relevantes à
|
- `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
|
> 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.
|
||||||
|
|
||||||
|
### ⚠️ 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
|
## Memória de longo prazo por contato
|
||||||
|
|
||||||
A secretária **lembra do cliente entre conversas** (tabela `sec_contact_memory`):
|
A secretária **lembra do cliente entre conversas** (tabela `sec_contact_memory`):
|
||||||
|
|||||||
Reference in New Issue
Block a user