Knowledge bases
Documente, tăiate în bucăți și transformate în embeddings, regăsite în timpul conversației.
API
Parametri și răspunsuri complete: referința knowledge bases.
GET /api/v1/knowledge-bases
POST /api/v1/knowledge-bases
GET /api/v1/knowledge-bases/{id}
PATCH /api/v1/knowledge-bases/{id}
DELETE /api/v1/knowledge-bases/{id}
POST /api/v1/knowledge-bases/{id}/query
GET /api/v1/knowledge-bases/{id}/documents
POST /api/v1/knowledge-bases/{id}/documents
GET /api/v1/knowledge-bases/{id}/documents/{documentId}
POST /api/v1/knowledge-bases/{id}/documents/{documentId}/retry
DELETE /api/v1/knowledge-bases/{id}/documents/{documentId}Ingestie
Încarci un fișier sau indici un URL. Documentul e tăiat în bucăți, transformat în embeddings și stocat în Postgres cu pgvector. Ingestia e asincronă: un document are un status, iar unul eșuat poate fi reîncercat fără să îl încarci din nou.
Regăsire
Hibridă: similaritate vectorială plus căutare lexicală, apoi re-ranking. topK mărginește câte bucăți ajung în prompt — același compromis ca la răspunsurile de tools, pentru că textul regăsit concurează cu istoricul conversației și pentru fereastra de context, și pentru latență.
Modul knowledge-only
knowledge_only: true ar trebui să constrângă asistentul la ce a întors regăsirea: când nu vine nimic relevant, ar trebui să spună asta în loc să inventeze un răspuns. knowledge_only_plan poartă pragurile (min_passages, min_score) și acțiunea (ask, escalate, transfer, end_call).
Clasa de politică nu e apelată niciodată
KnowledgeOnlyPolicy implementează exact comportamentul de mai sus. Nu o invocă nimic — niciun controller, niciun job, nici gateway-ul. knowledge_only și knowledge_only_plan sunt validate, salvate și rezolvate în snapshot-ul apelului, iar niciun cod nu le citește la runtime. Setarea knowledge_only: true nu are niciun efect suplimentar la runtime.
Ce simte efectiv un apelant vine dintr-un mecanism diferit, mai simplu: safetyMode al tool-ului de knowledge, pornit implicit în executorul de tools al gateway-ului, care emite knowledge.insufficient când regăsirea vine slabă. Ăla e independent de flag-ul asistentului și nu e configurabil prin knowledge_only_plan.
validate tot refuză să publice un asistent knowledge-only fără niciun knowledge base atașat — o verificare reală pe o setare care apoi nu face nimic. Vezi Ce nu este construit.
Ca fișier
name: Manual de produs
provider: native
chunkSize: 800
chunkOverlap: 120
topK: 6
documents:
- name: Politica de retur
source: ./docs/returns.md
- name: Prețuri
source: https://example.com/pricingWARNING
callagent apply creează și actualizează knowledge base-ul în sine. Încărcarea conținutului documentelor prin CLI nu e încă implementată — adaugă documente prin API sau din dashboard.
Furnizori custom
Un knowledge base poate delega regăsirea către endpoint-ul tău, în loc de depozitul nativ. CallAgent trimite interogarea și contextul conversației și așteaptă bucăți înapoi.
Ce backend-uri sunt implementate
pgvector (depozitul nativ) și custom (endpoint-ul tău) sunt cele două care funcționează. Qdrant, Pinecone și Weaviate există ca opțiuni în enum, ca interfața să poată spune „încă nu" cinstit — nu sunt implementate.
Embeddings-urile sunt generate doar de OpenAI; niciun alt furnizor de embeddings nu are adaptor.