@keleshteri/ai-rag
TypeScript icon, indicating that this package has built-in type declarations

0.0.10 • Public • Published

@keleshteri/ai-rag

Retrieval-Augmented Generation (RAG) package for NestJS applications with vector database integration.

Features

  • Document Processing: Process and chunk documents with customizable strategies
  • Embedding Generation: Create vector embeddings using various providers (OpenAI, Ollama, etc.)
  • Vector Storage: Store and query vector embeddings with different vector databases
  • Semantic Search: Find relevant documents based on semantic similarity
  • Response Generation: Generate responses using the retrieved context

Installation

npm install @keleshteri/ai-rag

Quick Start

import { Module } from '@nestjs/common';
import { RagModule } from '@keleshteri/ai-rag';

@Module({
  imports: [
    RagModule.forRoot({
      config: {
        vectorStore: {
          type: 'memory', // For development
          connection: {},
        },
        embedding: {
          type: 'openai',
          options: {
            apiKey: process.env.OPENAI_API_KEY,
          }
        },
        documentProcessing: {
          chunkingStrategy: 'paragraph',
          chunkSize: 1000,
          chunkOverlap: 200,
        },
      },
    }),
  ],
})
export class AppModule {}

Usage

Adding Documents

import { Injectable } from '@nestjs/common';
import { RagService } from '@keleshteri/ai-rag';

@Injectable()
export class DocumentService {
  constructor(private readonly ragService: RagService) {}

  async addDocument(content: string, metadata: Record<string, any>) {
    const documentId = await this.ragService.addDocument({
      content,
      metadata,
    });
    
    return documentId;
  }
}

Generating Responses

import { Injectable } from '@nestjs/common';
import { RagService } from '@keleshteri/ai-rag';

@Injectable()
export class QueryService {
  constructor(private readonly ragService: RagService) {}

  async generateResponse(query: string) {
    const result = await this.ragService.generateResponse(query, {
      maxDocuments: 4,
      includeMetadata: true,
    });
    
    return result;
  }
}

Supported Vector Databases

  • Memory (for development and testing)
  • Postgres (with pgvector extension)
  • Qdrant
  • Pinecone
  • and more...

Supported Embedding Providers

  • OpenAI
  • Ollama
  • TypeScript (for testing)

License

MIT

Package Sidebar

Install

npm i @keleshteri/ai-rag

Weekly Downloads

0

Version

0.0.10

License

MIT

Unpacked Size

4.93 kB

Total Files

3

Last publish

Collaborators

  • keleshteri