Kendr.org

Build, share, test, and rebuild hosted knowledge bases.

Kendr Cloud KBs expose the hosted RAG lifecycle behind a stable API: estimate, create, index, inspect artifacts, test retrieval, share access, rebuild, and delete. Every KB records its pipeline config, model map, vector dimensions, run history, retained artifacts, evaluations, and explainable retrieval scores.

/api/kb/cloud Staged RAG pipeline Team sharing Explainable retrieval

Pipeline

The managed pipeline is Sources to Extraction JSON to Cleaning to Chunking to Embeddings to Kendr hosted vector DB to Retrieval to Reranking to Answer.

1
Prepare sources
Files, links, notes, and directory-like source manifests are normalized into page and block metadata.
2
Clean and chunk
Presets and regex rules run before semantic, word, or token chunking so each chunk remains useful on its own.
3
Embed and store
The active embedding provider, model, dimensions, and vector-store provider are saved on the KB record.
4
Retrieve and evaluate
Test queries return source chunks, vector score, lexical score, rerank score, final score, diagnostics, and answer metadata.

Configuration model

Configure the hosted pipeline with pipeline_config. Beginners can omit most fields and use Kendr defaults. Advanced callers can tune extraction, cleaning, chunking, embeddings, vector storage, retrieval, reranking, answer model, and artifact retention.

Area Key fields Why it matters
Artifacts artifact_retention: none, preview, or full Controls whether extraction, cleaning, chunking, and embedding summaries can be inspected later.
Cleaning presets, ordered regex rules Removes repeated headers, footers, empty lines, and noisy boilerplate before chunking.
Chunking strategy, target_words, min_words, max_words, overlap_words Determines chunk quality, recall, duplication, and reindex requirements when changed.
Embeddings provider, model, dimensions, mode Defines the vector dimensions and the model identity stored in the KB model map.
Vector store provider: kendr-cloud, collection metadata, dimension metadata Routes chunks into Kendr managed storage and tells clients when a dimension-changing rebuild is required.
Retrieval top_k, score_threshold, hybrid_vector_weight, source_cap, mmr Controls how many chunks are retrieved, how hybrid scores are balanced, and how repetitive sources are capped.
Reranker and answer reranker.mode, answer_model.provider, answer_model.model Makes it visible which model or fallback is responsible for ordering evidence and producing the final answer.

Endpoints

Method Path Purpose
GET /api/kb/cloud Lists hosted KBs visible to the caller.
POST /api/kb/cloud/estimate Estimates indexing, storage, and source-size credits before creation.
POST /api/kb/cloud Creates a KB, saves pipeline config and access policy, and queues indexing.
POST /api/kb/cloud/{kb_id}/test Runs retrieval and returns hits, vector score, lexical score, rerank score, diagnostics, and answer text.
POST /api/kb/cloud/{kb_id}/rebuild Queues a rebuild from a selected stage after config, source, chunking, or embedding changes.
POST /api/kb/cloud/{kb_id}/access Updates team, user, link, and source-access metadata.
GET /api/kb/cloud/{kb_id}/pipeline/artifacts Returns retained extraction, cleaning, chunking, embedding, and storage artifacts.
GET /api/kb/cloud/{kb_id}/runs Returns pipeline run history with status, timings, warnings, and errors.
GET /api/kb/cloud/{kb_id}/evaluations Returns previous test queries and selected retrieval hits.
DELETE /api/kb/cloud/{kb_id} Deletes the hosted KB, sources, chunks, artifacts, runs, evaluations, and access grants.

Example

This JavaScript example creates a team-visible KB, stores chunks in Kendr hosted vector storage, and runs a retrieval test with explainable scoring.

const kb = await client.createCloudKnowledgeBase({
  name: 'Support runbooks',
  sources: [{
    kind: 'file',
    label: 'Retention playbook',
    value: 'retention-playbook.md',
    content: 'Revenue retention improved after renewal handoff changes.'
  }],
  pipeline_config: {
    artifact_retention: 'preview',
    chunking: { strategy: 'semantic', target_words: 180, overlap_words: 30 },
    embeddings: {
      provider: 'kendr-managed',
      model: 'kendr-managed-hash-embedding-v1',
      dimensions: 128
    },
    vector_store: { provider: 'kendr-cloud' },
    retrieval: { algorithm: 'hybrid', top_k: 8, hybrid_vector_weight: 0.65 },
    reranker: { mode: 'heuristic' }
  },
  access_policy: { visibility: 'team', role: 'viewer' }
});

const result = await client.testCloudKnowledgeBase(kb.knowledge_base.id, {
  query: 'What changed retention?',
  limit: 4,
  include_answer: true
});

console.log(result.hits.map(hit => ({
  title: hit.title,
  vectorScore: hit.vector_score,
  lexicalScore: hit.lexical_score,
  rerankScore: hit.rerank_score,
  finalScore: hit.final_score
})));

Where to go next