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<Array<{ text: string; score: number; metadata: Record<string, unknown> }>>