Skip to content

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 ​

yaml
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/pricing

WARNING

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.

Scrisă după cod. Ce nu este încă implementat este marcat ca atare, niciodată descris ca funcțional.