99 * - AI-powered question answering
1010 */
1111
12- import type {
13- RAGPipelineConfig ,
14- DocumentChunk ,
15- DocumentMetadata ,
16- RAGQueryRequest ,
17- RAGQueryResponse ,
18- Agent ,
19- } from '@objectstack/spec' ;
12+ import type { AI } from '@objectstack/spec' ;
2013
2114/**
2215 * Example 1: RAG Pipeline Configuration
2316 *
2417 * Complete RAG pipeline setup for a knowledge base system
2518 */
26- export const knowledgeBaseRAG : RAGPipelineConfig = {
19+ export const knowledgeBaseRAG : AI . RAGPipelineConfig = {
2720 name : 'knowledge_base_rag' ,
2821 label : 'Knowledge Base RAG Pipeline' ,
2922 description : 'RAG pipeline for company knowledge base' ,
@@ -43,6 +36,9 @@ export const knowledgeBaseRAG: RAGPipelineConfig = {
4336 namespace : 'production' ,
4437 dimensions : 1536 ,
4538 metric : 'cosine' ,
39+ batchSize : 100 ,
40+ connectionPoolSize : 10 ,
41+ timeout : 30000 ,
4642 } ,
4743
4844 // Chunking strategy
@@ -76,14 +72,18 @@ export const knowledgeBaseRAG: RAGPipelineConfig = {
7672 metadataFilters : {
7773 status : 'published' ,
7874 } ,
75+
76+ // Cache Configuration
77+ enableCache : true ,
78+ cacheTTL : 3600 ,
7979} ;
8080
8181/**
8282 * Example 2: Document Ingestion
8383 *
8484 * How to index documents into the RAG pipeline
8585 */
86- export const sampleDocumentMetadata : DocumentMetadata [ ] = [
86+ export const sampleDocumentMetadata : AI . DocumentMetadata [ ] = [
8787 {
8888 source : 'https://docs.objectstack.dev/architecture' ,
8989 sourceType : 'url' ,
@@ -110,7 +110,7 @@ export const sampleDocumentMetadata: DocumentMetadata[] = [
110110 } ,
111111] ;
112112
113- export const sampleDocumentChunks : DocumentChunk [ ] = [
113+ export const sampleDocumentChunks : AI . DocumentChunk [ ] = [
114114 {
115115 id : 'chunk_001' ,
116116 content : `ObjectStack is a metadata-driven low-code platform that enables rapid application development.
@@ -145,12 +145,14 @@ Use the Agent protocol to define AI assistants with specific capabilities.`,
145145 *
146146 * Performing a RAG query with filters and options
147147 */
148- export const sampleQueries : RAGQueryRequest [ ] = [
148+ export const sampleQueries : AI . RAGQueryRequest [ ] = [
149149 {
150150 // Simple question
151151 query : 'What is ObjectStack?' ,
152152 pipelineName : 'knowledge_base_rag' ,
153153 topK : 5 ,
154+ includeMetadata : true ,
155+ includeSources : true ,
154156 } ,
155157 {
156158 // Question with metadata filtering
@@ -160,6 +162,8 @@ export const sampleQueries: RAGQueryRequest[] = [
160162 metadataFilters : {
161163 category : 'Tutorial' ,
162164 } ,
165+ includeMetadata : true ,
166+ includeSources : true ,
163167 } ,
164168 {
165169 // Advanced query
@@ -179,7 +183,7 @@ export const sampleQueries: RAGQueryRequest[] = [
179183 *
180184 * What the pipeline returns
181185 */
182- export const sampleResults : RAGQueryResponse = {
186+ export const sampleResults : AI . RAGQueryResponse = {
183187 query : 'What is ObjectStack?' ,
184188
185189 // Retrieved chunks
@@ -214,33 +218,21 @@ It uses a three-layer architecture: ObjectQL for data, ObjectUI for presentation
214218
215219[Source: https://docs.objectstack.dev/architecture]
216220The platform supports multiple databases and provides built-in AI capabilities.` ,
217-
218- // Metadata
219- processingTimeMs : 150 ,
220- totalResults : 2 ,
221221} ;
222222
223223/**
224224 * Example 5: AI Agent with RAG
225225 *
226226 * Integrating RAG into an AI agent
227227 */
228- export const ragEnabledAgent : Agent = {
228+ export const ragEnabledAgent : AI . Agent = {
229229 name : 'documentation_assistant' ,
230- type : 'conversational' ,
231230 label : 'Documentation Assistant' ,
232- description : 'AI assistant powered by RAG for answering questions about ObjectStack' ,
233-
234- // Agent capabilities
235- capabilities : {
236- objectAccess : [ ] ,
237- canCreate : false ,
238- canUpdate : false ,
239- canAnalyze : true ,
240- } ,
241-
231+ role : 'Documentation Support Specialist' ,
232+ active : true ,
233+
242234 // System prompt with RAG instructions
243- systemPrompt : `You are a helpful documentation assistant for ObjectStack.
235+ instructions : `You are a helpful documentation assistant for ObjectStack.
244236
245237You have access to the knowledge base through RAG (Retrieval-Augmented Generation).
246238When answering questions:
@@ -252,18 +244,9 @@ When answering questions:
252244Always format your responses in a clear, structured way.` ,
253245
254246 // RAG Configuration
255- rag : {
256- pipeline : 'knowledge_base_rag' ,
257- enabled : true ,
258-
259- // When to trigger RAG
260- trigger : 'always' , // or 'auto', 'manual'
261-
262- // Number of chunks to retrieve
263- topK : 5 ,
264-
265- // Include source attribution
266- includeSources : true ,
247+ knowledge : {
248+ indexes : [ 'knowledge-base' ] ,
249+ topics : [ 'ObjectStack' , 'documentation' ] ,
267250 } ,
268251
269252 // Model configuration
@@ -277,12 +260,9 @@ Always format your responses in a clear, structured way.`,
277260 // Tools (optional - for function calling)
278261 tools : [
279262 {
263+ type : 'query' ,
280264 name : 'search_documentation' ,
281265 description : 'Search the ObjectStack documentation for specific topics' ,
282- parameters : {
283- query : 'string' ,
284- category : 'string?' ,
285- } ,
286266 } ,
287267 ] ,
288268} ;
@@ -304,7 +284,7 @@ export function demonstrateRAGUsage() {
304284 console . log ( '- Embedding query...' ) ;
305285 console . log ( '- Searching vector database...' ) ;
306286 console . log ( `- Retrieved ${ sampleResults . results . length } relevant chunks` ) ;
307- console . log ( ` - Processing time: ${ sampleResults . processingTimeMs } ms\n` ) ;
287+ console . log ( ' - Processing complete\n' ) ;
308288
309289 // Step 3: Context is assembled
310290 console . log ( 'Assembled Context:' ) ;
0 commit comments