Librai is a monorepo containing a full-stack application that enables users to process documents and interact with them through an AI chatbot interface. The platform consists of two main applications:
- librai-server: A document processing service that handles file uploads, text extraction, and vector embeddings
- librai-ui: A modern chat interface for interacting with processed documents using AI
The server application processes documents and manages the vector database:
- Modern web interface for file uploads with drag-and-drop support
- Supports PDF, EPUB, TXT, and MD file formats
- Generates embeddings using OpenAI's API
- Stores embeddings in Qdrant vector database
- Progress tracking for file processing
- RESTful API endpoints
The user interface for chatting with AI about processed documents:
- Interactive AI chatbot interface
- Authentication system with PocketBase
- Conversation management (save, continue, delete)
- Public sharing capabilities
- Responsive design with Tailwind CSS
- Dark mode and theme support
- Configurable system prompts
- Clone the repository:
git clone https://github.com/yourusername/librai.git
cd librai
- Install dependencies:
npm install
-
Set up environment variables:
- Copy
.env.example
to.env
in both apps/server and apps/ui - Configure the environment variables according to each app's README
- Copy
-
Start the development servers:
npm run dev
- Backend: Node.js, Express
- Frontend: SvelteKit
- Authentication: PocketBase
- Styling: Tailwind CSS
- Vector Database: Qdrant
- AI Integration: OpenAI API
- Build System: Turborepo
Contributions are welcome! Please read the contributing guidelines in each application's README for specific details.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE.txt file for more details.