Skip to content

Latest commit

 

History

History
159 lines (102 loc) · 4.35 KB

File metadata and controls

159 lines (102 loc) · 4.35 KB
title Knowledge Source
description Knowledge Source protocol schemas

{/* ⚠️ AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate. Hand-written docs live in the module folders under content/docs/. */}

Knowledge Source — declarative metadata describing what to index and

which adapter to use.

A KnowledgeSource is the metadata-level equivalent of an

IDataEngine driver binding: it pairs a logical source description

(object/file/http) with the id of an IKnowledgeAdapter plugin

that will actually do the work. The adapter resolves the id at

runtime via IKnowledgeService.registerAdapter.

See content/docs/protocol/knowledge.mdx for the full design.

**Source:** `packages/spec/src/ai/knowledge-source.zod.ts`

TypeScript Usage

import { FileKnowledgeSource, HttpKnowledgeSource, KnowledgeRefreshPolicy, KnowledgeSource, KnowledgeSourceKind, ObjectKnowledgeSource } from '@objectstack/spec/ai';
import type { FileKnowledgeSource, HttpKnowledgeSource, KnowledgeRefreshPolicy, KnowledgeSource, KnowledgeSourceKind, ObjectKnowledgeSource } from '@objectstack/spec/ai';

// Validate data
const result = FileKnowledgeSource.parse(data);

FileKnowledgeSource

Properties

Property Type Required Description
kind 'file'
prefix string Storage prefix
mimeTypes string[] optional

HttpKnowledgeSource

Properties

Property Type Required Description
kind 'http'
urls string[]
userAgent string optional

KnowledgeRefreshPolicy

Properties

Property Type Required Description
onRecordChange boolean optional
cron string optional

KnowledgeSource

Properties

Property Type Required Description
id string Snake_case source id
label string
description string optional
adapter string Adapter id
adapterConfig Record<string, any> optional
source { kind: 'object'; object: string; contentFields: string[]; metadataFields?: string[]; … } | { kind: 'file'; prefix: string; mimeTypes?: string[] } | { kind: 'http'; urls: string[]; userAgent?: string }
embedding { provider: Enum<'openai' | 'cohere' | 'azure_openai' | 'huggingface' | 'local' | 'custom'>; model: string; dimensions: integer; endpoint?: string; … } optional
vectorStore { provider: Enum<'pgvector' | 'chroma' | 'qdrant' | 'pinecone' | 'weaviate' | 'milvus' | 'redis' | 'opensearch' | 'elasticsearch' | 'custom'>; collection: string; endpoint?: string; secretRef?: string; … } optional
refresh { onRecordChange?: boolean; cron?: string } optional
aiExposed boolean optional

KnowledgeSourceKind

Union Options

This schema accepts one of the following structures:

Option 1

Properties

Property Type Required Description
kind 'object'
object string Short object name to index
contentFields string[] Fields contributing to document content
metadataFields string[] optional
where Record<string, any> optional

Option 2

Properties

Property Type Required Description
kind 'file'
prefix string Storage prefix
mimeTypes string[] optional

Option 3

Properties

Property Type Required Description
kind 'http'
urls string[]
userAgent string optional


ObjectKnowledgeSource

Properties

Property Type Required Description
kind 'object'
object string Short object name to index
contentFields string[] Fields contributing to document content
metadataFields string[] optional
where Record<string, any> optional