Installation

npm install @carloscortezcloud/tiderag

Prerequisites

Cloudflare Workers project with bindings for Vectorize, Workers AI, and D1.

Wrangler Configuration

{
  "vectorize": [
    { "binding": "VECTORIZE_INDEX", "index_name": "my-rag-index" }
  ],
  "ai": [
    { "binding": "AI" }
  ],
  "d1_databases": [
    { "binding": "DB", "database_name": "rag-metadata", "database_id": "..." }
  ]
}

Usage

import { TideRAG } from '@carloscortezcloud/tiderag';

const rag = new TideRAG({
  vectorize: env.VECTORIZE_INDEX,
  ai: env.AI,
  d1: env.DB,
});

// Ingest a document
await rag.ingest({
  content: '# Getting Started\nWelcome to Tinkuy Labs...',
  metadata: { source: 'docs/getting-started.md' },
  chunkStrategy: 'markdown',
});

// Query
const results = await rag.query('How do I get started?', { topK: 5 });
console.log(results[0].text);
console.log(results[0].score); // similarity score

Methods

ingest

async ingest(options: {
  content: string;
  metadata?: Record<string, unknown>;
  chunkStrategy?: 'markdown' | 'paragraph' | 'sliding';
}): Promise<void>

query

async query(
  query: string,
  options?: { topK?: number; filter?: Record<string, unknown> }
): Promise&lt;Array&lt;{ text: string; score: number; metadata: Record<string, unknown> }&gt;&gt;