ragify-js
v0.1.1
Published
A powerful and flexible Retrieval-Augmented Generation (RAG) library for Node.js and TypeScript
Maintainers
Readme
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-jsQuick 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 5Configuration
Environment Variables
OPENAI_API_KEY: Your OpenAI API keyQDRANT_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 collectioningest(doc: string | Document, options?: IngestOptions): Ingest a documentquery(query: string, options?: QueryOptions): Query the vector store
CLI Commands
ingest <files...>: Ingest one or more filesquery <query>: Query the vector store
License
MIT
