ragify-js
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

Ragify.js

A powerful and flexible Retrieval-Augmented Generation (RAG) library for Node.js and TypeScript. Built with OpenAI embeddings and Qdrant vector store.

Features

  • 🤖 OpenAI embeddings integration
  • 📚 Qdrant vector store support
  • 📝 Smart text chunking with sentence boundary preservation
  • 🔍 Semantic search with configurable similarity thresholds
  • 📦 TypeScript support with full type definitions
  • 🚀 Easy-to-use CLI interface

Installation

yarn add ragify-js

Quick Start

import { Ragify } from "ragify-js";
import { createEmbeddingProvider } from "ragify-js/factory";

// Initialize Ragify
const ragify = new Ragify({
  embeddingProvider: createEmbeddingProvider("openai", "your-openai-api-key"),
  collectionName: "my-documents",
  qdrantApiKey: "your-qdrant-api-key",
});

// Initialize the vector store
await ragify.initialize();

// Ingest documents
await ragify.ingest({
  text: "Your document text here...",
  metadata: { source: "example" }
});

// Query the documents
const results = await ragify.query("Your query here", {
  topK: 5,
  threshold: 0.7
});

console.log(results);

CLI Usage

# Ingest documents
npx ragify-js ingest file1.txt file2.txt --collection my-docs

# Query documents
npx ragify-js query "Your question here" --collection my-docs --top-k 5

Configuration

Environment Variables

  • OPENAI_API_KEY: Your OpenAI API key
  • QDRANT_API_KEY: Your Qdrant API key

Options

RagifyConfig

interface RagifyConfig {
  embeddingProvider: EmbeddingProvider;
  collectionName?: string;
  qdrantUrl?: string;
  qdrantApiKey?: string;
  chunkingConfig?: ChunkingConfig;
}

ChunkingConfig

interface ChunkingConfig {
  chunkSize?: number;
  chunkOverlap?: number;
  splitter?: (text: string) => string[];
}

API Reference

Ragify Class

Methods

  • initialize(): Initialize the vector store collection
  • ingest(doc: string | Document, options?: IngestOptions): Ingest a document
  • query(query: string, options?: QueryOptions): Query the vector store

CLI Commands

  • ingest <files...>: Ingest one or more files
  • query <query>: Query the vector store

License

MIT

Package Sidebar

Install

npm i ragify-js

Weekly Downloads

1

Version

0.1.1

License

MIT

Unpacked Size

82.1 kB

Total Files

63

Last publish

Collaborators

  • manjot