Introduction

Welcome to AI RAG Wrapper, a professional Retrieval-Augmented Generation (RAG) backend built with Laravel 12. This system turns your documents into searchable knowledge for AI, enabling intelligent, context-aware interactions with your data.

License: This product requires a valid Envato Purchase Code for activation during the installation process.

What is RAG?

Retrieval-Augmented Generation (RAG) combines your private documents with AI language models. When users ask questions, the system retrieves relevant chunks from your documents and feeds them to the AI for accurate, context-aware responses.

๐Ÿš€ Quick Start

5-Minute Quick Start

Step 1
Extract the source code to your server, create a blank MySQL database, and rename or copy .env.example to .env.
Step 2
Visit /install to verify your license and set up your super admin account.
Step 3
Set GEMINI_API_KEY in Settings โ†’ RAG Settings for free embeddings (recommended for getting started).
Step 4
Start the queue worker: php artisan queue:work (Required for document processing!)
Step 5
Upload your first document and click Process to begin indexing.
โœ… You're ready! Visit the admin dashboard or use the API to start chatting with your documents.

Key Features

๐Ÿค– AI & RAG Engine

๐Ÿ“„ Document Management

โš™๏ธ Technology Stack

System Requirements

ComponentRequirement
PHP Version8.3+
DatabaseMySQL 8.0+ or PostgreSQL
Required ExtensionsBCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML
Memory Limit256MB+ (Required for PDF parsing)
SSE Requirementsmod_security disabled or exception made; fastcgi_buffering off for Nginx

Installation Guide

Standard Installation

  1. Upload: Zip the main_files folder and upload the mail_files.zip to your server.
  2. Configure Environment: As for CodeCanyon, the .env file will not be present. Create a .env file by doing ONE of the following:
    • Option A (Recommended): Rename .env.example to .env
    • Option B: Copy .env.example and save the copy as .env
    • Option C: Create a new blank file named .env and paste the contents of .env.example into it
    ๐Ÿ’ก Tip: The .env file stores your database credentials, API keys, and app settings. Never share this file publicly.
  3. Run Wizard: Navigate to your-domain.com/install.
  4. License: Enter your Purchase Code. The system will verify this with the Envato API.
  5. Database: Enter your credentials and let the wizard migrate the tables.
  6. Super Admin: Create your first administrator account.

What Happens During Installation

The installation wizard automatically configures the complete Role-Based Access Control (RBAC) system using Filament Shield. When you create your first administrator account, the system performs the following actions behind the scenes:

โœ… Shield Installation

Runs shield:install to create the Roles resource and initial permission structure in Filament.

๐Ÿ” Permission Generation

Executes shield:generate --all to automatically generate permissions for all Filament resources (Resources, Pages, and Widgets).

๐Ÿ‘‘ Super Admin Setup

Runs shield:super-admin to assign the super_admin role to your first user, granting full access to all features.

๐Ÿ›ก๏ธ Default Role Creation

Creates a default user role with basic permissions for regular users.

๐ŸŽฏ Complete RBAC Setup: The installer handles the entire Role-Based Access Control configuration automatically. After installation, you can manage roles and permissions through the Filament admin panel at your-domain.com/admin/settings/roles.

License Verification Behavior

The installer verifies your purchase code with the Envato API. To ensure legitimate users aren't blocked during API outages while still protecting against invalid licenses, the system implements graceful degradation with distinct behavior for installation vs. runtime:

Scenario Phase Behavior Why?
API Down (503/502) Installation โš ๏ธ Allow + Warning Records purchase code, marks as unverified. Auto-retries later. Prevents blocking legitimate users during outages.
Runtime โœ… Allow (Cached) If previously verified, use cached license. Does not lock users out during daily use.
Rate Limited (429) Installation โš ๏ธ Allow + Warning Records purchase code, waits for rate limit to reset. Auto-retries after cooldown.
Runtime โœ… Allow (Cached) Relies on local cache until rate limit resets. No user disruption.
Connection Error Installation โš ๏ธ Allow + Warning Network issues shouldn't block installation. Purchase code recorded for later verification.
Invalid Code (404) Installation โŒ Block API explicitly returns "Invalid". User must check and re-enter code.
Runtime โš ๏ธ Log Warning Previously valid license now invalid? Log and alert admin, but don't abruptly lock out.
Wrong Item ID Installation โŒ Block Purchase code is for a different product. User must verify correct item.
Valid License Runtime โœ… Allow License verified and cached. Full access granted.
๐Ÿ”„ Automatic Re-verification: If the API is unavailable during installation, the system records your purchase code and automatically attempts verification later (once per hour). The application functions normally in the meantime.

Key Design Principles

โœ… Never Block During API Outages

Legitimate users should not be locked out when Envato API experiences downtime. Cache and grace periods protect users.

โŒ Always Block Invalid Licenses

When the API explicitly returns "Invalid", block immediately to prevent unauthorized use.

โš ๏ธ Throttle Runtime Checks

Runtime verification runs at most once per hour to avoid rate limits and minimize API dependency.

Detailed cPanel Installation Guide

The installation of this script is super easy. If you can install normal php based scripts on your server, you can install our script. We will tell you how to install this script step by step on a server.

If you extract the zip file, you will see that there are total two folders.

The folder names are: documentation and main_files. The "main_files" folder contains the complete Laravel source code.

Creating Database using Cpanel

  1. Login to your hosting's cpanel using the login information. You will see an interface like this:
    cPanel Home
  2. You will get a search section in the cpanel. Search there by writing the word "database". You will get some options. Click on "MySQLยฎ Database Wizard" option.
    Search Database
  3. Then in Step 1, you will have to create a database. In the text field, give your database name and click on next step.
    Create Database Name
  4. Then in Step 2, you will have to create a database user. Give your username and passwords here. Then click on "Create User" button.
    Create Database User
  5. Now a permission page will come. Just check the tick mark on "ALL PRIVILEGES" and you will see all the options will be automatically checked.
    Set Database Privileges
  6. Click on the "Next Step" button in the bottom.
    Database Created
  7. Done! Your database and user are now ready. The application installer will automatically create all necessary tables and initial data during the setup process in the next section.

Uploading Files using Cpanel

  1. In the search field of your cpanel, write the word "file". You will get a "File Manager" option. Click on that option.
    Search File Manager
  2. Search for the "public_html" and go into there.
    Navigate to public_html
  3. Now go to the folders that you got after extracting the main zip and compress the folder "main_files" using any software like winrar.
    Compress main_files
  4. The zip file will be like this.
    Compressed ZIP file
  5. In the cpanel's "public_html", upload this zip file.
    Upload ZIP to cPanel
  6. You will get an interface like this.
    File Manager Upload Interface
  7. Drag and drop the zip file here or just click on the "Select File" and select the file from your computer. You will see a progress of uploading file. Wait until it is finished.
    File Upload Progress
  8. After finishing the upload, you will see a green bar. It indicates that upload is successful.
    Upload Successful
  9. Now close the upload window. In the public_html section, press on "Go" button to refresh the page. Then you will see the zip file in the right side.
    ZIP file in File Manager
    ZIP file uploaded
  10. Do right click on that file and select "Extract" option.
    Extract ZIP file
  11. Press on "Extract Files" button.
    Confirm Extraction
  12. It will take only a few minutes. After finish, you will get a window like this.
    Extraction Complete
  13. Just close this window. Then double click on the "main_files" folder and go into there.
    Enter main_files folder
  14. Now click on the "Select All" from top section.
    Select All Files
  15. Click on the "Move" option.
    Move Files Option
  16. Delete the "main_files" from the box. Only keep this "/public_html/". Then click on "Move Files".
    Move Files Path
  17. Now, click on "Up One Level".
    Navigate Up One Level

Renaming .env.example to .env

Follow these steps to rename the .env.example file to .env:

Rename .env.example Step 1

Right click on the .env.example file and click on Rename

Rename .env.example Step 2

Remove .example and keep only .env

Rename .env.example Step 2

Click Rename File

Rename .env.example Step 2

Your task is done and you can use our script without any problem. :)

๐Ÿ’ก Next Step: Navigate to your-domain.com or your-domain.com/install to access the installation wizard and complete the setup.
โš ๏ธ Crucial: Don't forget to follow the Background Processing & Scheduled Tasks (Crucial) section below. Without this setup, document processing will stay at 0% and your documents won't be ingested!

Uploading Files using FTP

  1. Download any FTP client on your computer like "FileZilla". Search on Google by "FileZilla" or go to their website to download: https://filezilla-project.org/
  2. Use the first option to download
    Download FileZilla
  3. After download, install it and open. The interface will be like this:
    FileZilla Interface
  4. You can collect your FTP information contacting your hosting provider. Or, going to cpanel, you can create your FTP. In cpanel, search for "FTP".
    Search FTP in cPanel
  5. Put ftp username, password in the form. Become sure, you delete the marked box data in the following image.
    Create FTP Account
  6. Click on "Create FTP Account" button.
    FTP Account Created
  7. Your FTP information will be like this:
    FTP Host: {your hosting provider will give you host name}
    FTP Port: 21
    FTP Username: ftp@domain.com
    FTP Password: {that you gave while creating the FTP}
  8. Now in filezilla put those information and click on "Quickconnect" button.
    FTP Connect
  9. If connection is successful, you will get an interface like this:
    FTP Connected
  10. Now in the left side box, go to the location where you have extracted the script's file. And in the right side, go to public_html.
    FTP File Navigation
  11. Then right click on the "main_files" from left side box and click on "Upload". All the files then will be uploaded into the "public_html" of the right side.
    FTP Upload
๐Ÿ“ Note: Don't forget to rename or copy .env.example to .env after uploading. See the cPanel Settings section in the Installation Guide for detailed instructions on how to rename the .env file via cPanel.

Background Processing & Scheduled Tasks (Crucial)

The RAG Engine uses background jobs to process documents. If this is not set up, document ingestion will stay at 0%.

Recommended: Laravel Scheduler (Single Cron Job)

Add this single Cron Job to run every minute. This handles queue processing:

* * * * * /usr/local/bin/php /home/username/public_html/artisan schedule:run

The scheduler automatically manages:

  • Queue Processing - Runs every minute to process document jobs

Alternative: Direct Queue Worker

If you prefer not to use the scheduler, run the queue worker directly:

* * * * * /usr/local/bin/php /home/username/public_html/artisan queue:work --stop-when-empty

VPS (Supervisor for Continuous Processing)

For VPS environments, use Supervisor for continuous queue processing:

php artisan queue:work --tries=3

Shared Hosting (Cron Job)

Add a Cron Job in cPanel to run every minute:

cPanel Cron Job Setup
โš ๏ธ Important: Replace the paths with your actual server paths:
  • PHP Path: Replace /usr/local/bin/php with your actual PHP path (e.g., /usr/bin/php8.3). Find it using whereis php
  • Project Path: Replace /home/username/public_html/ with your actual project path. Most users upload to public_html/, but if you uploaded to a subfolder, use /home/username/public_html/your-project/artisan
Common Paths by Hosting:
  • cPanel (public_html): /home/username/public_html/artisan
  • cPanel (subfolder): /home/username/public_html/myproject/artisan
  • Plesk (httpdocs): /var/www/vhosts/username/httpdocs/artisan
  • DirectAdmin: /home/username/domains/your-domain.com/public_html/artisan

Installation Wizard Steps

Go to your Domain- your-domain.com and you will see the installation wizard in the your-domain.com/install url. The installation wizard guides you through the setup process in 5 simple steps. Here's what to expect at each stage:

Step 1: Preflight Checks

Preflight Checks

The system automatically verifies that your server meets all requirements:

  • PHP Version (>= 8.3) - Ensures compatibility with modern PHP features
  • Required Extensions - Checks for necessary PHP extensions (BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML)
  • Directory Permissions - Verifies write access to storage and cache directories
  • .env File Writable - Confirms the environment file can be modified
All checks must pass before you can proceed. Click Continue to move to the next step.

Step 2: License Verification

License Verification

Enter your Envato/CodeCanyon purchase details to verify your license:

  • Purchase Code - Enter the license code you received from CodeCanyon (format: XXXX-XXXX-XXXX-XXXX)
  • The system will verify this code with the Envato API to ensure it's valid and matches this product
If the Envato API is temporarily unavailable, the system will allow installation with a warning and verify the license later.

Click Verify License to proceed.

Step 3: Database Configuration

Database Configuration

Provide your database connection details:

  • Database Host - Typically 127.0.0.1 or localhost
  • Database Port - Default MySQL port is 3306
  • Database Name - The name of the database you created for this application
  • Database Username - Your database username (e.g., root)
  • Database Password - Your database password (leave empty if no password)
The wizard will automatically run database migrations to create all required tables after you click Configure Database.

Step 4: Application Configuration

Application Configuration

Configure your basic application settings:

  • Application Name - The name that will appear in the browser title and throughout the app (e.g., "My App")
  • Application URL - The full URL where your application is hosted (e.g., https://your-domain.com)

Click Save Configuration to proceed to the final step.

Step 5: Create Super Admin

Create Super Admin

Create the initial administrator account:

  • Full Name - Your name or the admin user's name
  • Email Address - The admin email (used for login)
  • Password - Choose a strong password (minimum 8 characters recommended)
  • Confirm Password - Re-enter the same password
This user will have the super_admin role with full access to all features. Click Complete Installation to finish setup.

Installation Complete!

After completing all 5 steps, you'll be redirected to the admin dashboard. You can now:

  • Configure AI providers in Settings โ†’ RAG Settings
  • Upload your first document
  • Start using the RAG chat features
Next Step: Don't forget to start the queue worker by running php artisan queue:work to enable document processing.

๐Ÿ”ง Troubleshooting

Common issues and their solutions. Check this section before opening a support ticket.

Common Issues

Issue Ingestion stuck at 0%

Fix: Ensure php artisan queue:work is running. Document processing requires a queue worker to be active.
  • Check if queue worker is running: ps aux | grep queue:work
  • Restart the queue: php artisan queue:restart then start a new worker
  • Check failed jobs: php artisan queue:failed

Issue 404 errors on API routes

Fix: Ensure mod_rewrite is enabled and .htaccess is in the root directory.
  • Apache: Enable mod_rewrite (a2enmod rewrite on Ubuntu)
  • Ensure .htaccess file exists in your public root
  • Check AllowOverride All in Apache config
  • Nginx: Ensure proper rewrite rules are configured

Issue PDF parsing fails

Fix: Increase memory_limit to 512MB in php.ini.
  • Edit php.ini: memory_limit = 512M
  • Or add to .htaccess: php_value memory_limit 512M
  • Or add to .user.ini: memory_limit = 512M
  • Restart your web server after changes

Issue "Class not found" errors

Fix: Run composer install --optimize-autoloader to regenerate autoload files.

Issue Permission denied errors

Fix: Set correct permissions on storage and cache directories.
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

Issue Email verification not sending

Fix: Configure mail settings in .env file.
  • Set MAIL_MAILER (smtp, mailgun, ses, etc.)
  • Configure SMTP credentials if using SMTP
  • Test with: php artisan mail:test

Issue AI responses are slow

Tip: Enable semantic caching to reduce API calls and improve response times for repeated queries.
  • Go to Settings โ†’ General Settings
  • Toggle Enable Semantic Cache to ON
  • Consider using Groq or OpenRouter for faster inference

Getting Help

If you've checked the troubleshooting steps above and still need assistance:

  • Check the logs: storage/logs/laravel.log
  • Enable debug mode: Set APP_DEBUG=true temporarily in .env
  • Contact support: Include your PHP version, error logs, and steps to reproduce

Admin Dashboard (Filament)

A enterprise-grade administrative suite built with Filament v5 for total system control.

Navigation Structure

SectionResources
DashboardAPI Health Stats, Latest Documents, Token Counter, Job Monitor
UsersUser Management, Role Management
API TokensManage Sanctum Personal Access Tokens
DocumentsDocument Manager, Knowledge Chunks
SettingsGeneral Settings, RAG Settings

Dashboard Widgets

  • API Health Check: Verifies connectivity to configured AI providers and database services with tier detection (Free/Premium).
  • API Route Explorer: Interactive search and filtering of all available API endpoints.
  • Job Monitor: Visual breakdown of background job success, failures, and execution times.
  • Token Counter: Widget displaying token usage statistics.
  • Latest Documents: Widget showing recently uploaded and processed documents with status indicators.
  • API Health Stats: Real-time statistics on API health check results (healthy, rate-limited, errors).

Management Resources

Complete reference for all administrative resources with their inputs, tables, and available actions.

๐Ÿ‘ฅ Users Resource

Complete CRUD interface for managing system users with role assignment and permission management.

Form Inputs (Create/Edit)

FieldTypeValidationDescription
nameText InputRequiredUser's full name
emailEmail InputRequired, Unique, Valid EmailUser's email address
passwordPassword InputRequired (Create only), HashedUser's password (auto-hashed)
rolesMulti-SelectOptionalAssign one or more roles to user

Table Columns

ColumnSortableSearchableDescription
Nameโœ“โœ“User's full name
Emailโœ“โœ“Email address
Roles--Assigned roles (badge separator)
Created/Updated Atโœ“-Timestamps (toggleable)

Available Actions

  • View: Slide-over modal with full user details
  • Edit: Slide-over modal for quick edits
  • Delete: Remove user with confirmation
  • Bulk Delete: Delete multiple users at once

API Endpoints

  • GET/api/users - List all users (admin only)
  • GET/api/users/{user} - Get user details
  • POST/api/users - Create user
  • PUT/api/users/{user} - Update user
  • DELETE/api/users/{user} - Delete user
  • GET/api/me - Get current user profile

๐Ÿ” Roles Resource (Shield)

Advanced RBAC system with granular permission management via Filament Shield.

Form Inputs (Create/Edit)

FieldTypeValidationDescription
nameText InputRequired, Unique, Max 255Role name (auto-formatted)
guard_nameSelectRequiredAuth guard (web/sanctum)
teamSelectOptionalTeam association (if tenancy enabled)
Select AllToggle-Select/deselect all permissions
PermissionsCheckbox GridOptionalGranular permissions by resource

Table Columns

ColumnSortableSearchableDescription
Name-โœ“Role name (headline formatted)
Guard Name--Auth guard badge
Team-โœ“Team association (if visible)
Permissions Count--Number of assigned permissions
Updated Atโœ“-Last modification timestamp

Available Permissions

  • view - View resource
  • create - Create new records
  • update - Edit existing records
  • delete - Soft delete records
  • restore - Restore deleted records
  • force-delete - Permanently delete records

API Endpoints

  • GET/api/roles - List all roles
  • GET/api/roles/{role} - Get role details
  • POST/api/roles - Create role
  • PUT/api/roles/{role} - Update role
  • DELETE/api/roles/{role} - Delete role
  • POST/api/roles/{role}/permissions - Sync permissions
  • GET/api/permissions - List all permissions

๐Ÿ”‘ API Tokens Resource

Manage Laravel Sanctum Personal Access Tokens with full integration into the Shield permission system.

Resource Features

  • Revoke Tokens: Instantly invalidate any active API token.
  • Ownership Logic: Users can only view and revoke their own tokens (managed via Policy).
  • Admin Oversight: Super admins can view and manage all system tokens.
  • Shield Integration: Granular permissions controlled via the Roles resource.

Table Columns

ColumnSortableSearchableDescription
Nameโœ“โœ“Token descriptive name (e.g., "Mobile App")
User-โœ“The token owner (email)
Last Used Atโœ“-Human-readable relative time (e.g., "2 hours ago")
Created Atโœ“-Formatted creation date

Available Actions

  • Revoke Token: Individual delete action renamed to "Revoke Token" with danger confirmation.
  • Bulk Revoke: Revoke multiple tokens at once via bulk actions.

Authorization

Access is strictly controlled via PersonalAccessTokenPolicy and Shield permissions:

  • ViewAny:PersonalAccessToken - Required to list tokens.
  • Delete:PersonalAccessToken - Required to revoke tokens.

๐Ÿ“ Documents Resource

Manage uploaded files, view processed text chunks, and track ingestion progress in real-time.

Form Inputs (Create/Edit)

FieldTypeValidationDescription
uuidText InputDisabled, Auto-generatedDocument ID (auto UUID)
nameText InputRequiredDocument title/name
system_promptTextareaOptionalAI behavior definition with template picker
instructionsTextareaOptionalAI tool description for document usage
pathFile UploadRequired, PDF/TXT/MDFile upload (local disk, knowledge directory)
statusSelectRequiredStatus: pending, processing, completed, failed
job_batch_idText InputDisabledBackground job batch identifier
errorTextareaDisabledError message (if failed)
user_idHiddenAuto-filledCurrent user ID

Table Columns

ColumnSortableSearchableDescription
Document ID (UUID)-โœ“Copyable UUID with icon
Name-โœ“Document filename
Status--Badge with color + icon (animated for processing)
Progress--Real-time percentage (5s polling)
Userโœ“-Document owner
Created Atโœ“-Upload timestamp (toggleable)

Available Actions

  • Process: Trigger document ingestion (hidden if processing/completed)
  • Chat: Document-specific chat with slide-over modal
  • Download: Download original file
  • View: Full document details with chunks relation manager
  • Edit: Edit document metadata
  • Process All: Bulk process all pending/failed documents
  • Bulk Delete: Delete multiple documents

Relation Managers

  • Chunks: View all knowledge chunks extracted from document

API Endpoints

  • GET/api/v1/documents - List all documents
  • GET/api/v1/documents/{document} - Get document details
  • DELETE/api/v1/documents/{document} - Delete document
  • GET/api/v1/documents/batch/{batchId} - Get batch processing status

Resource Response Format

{
    "id": "uuid-string",
    "title": "document-name.pdf",
    "file_type": "pdf",
    "status": "completed",
    "progress": "100%",
    "created_at": "2026-01-01T00:00:00Z",
    "human_readable_size": "1.5 MB"
}

๐Ÿงฉ Knowledge Chunks Resource

Browse and search individual knowledge chunks extracted from documents with search & replace functionality.

Form Inputs (Edit)

FieldTypeValidationDescription
contentTextareaRequiredChunk text content (full column span)
sourceText InputDisabledSource document reference
statusSelectDisabledStatus: syncing, synced, failed

Table Columns

ColumnSortableSearchableDescription
Content-โœ“Limited to 100 chars, expandable
Statusโœ“-Badge with color + icon
Source-โœ“Source document (toggleable)
Created Atโœ“-Creation timestamp (toggleable)

Filters

  • Status Filter: Filter by syncing, synced, or failed status

Available Actions

  • Edit: Slide-over modal for chunk editing
  • Delete: Remove individual chunk
  • Search & Replace: Bulk search and replace across all chunks
  • Bulk Delete: Delete multiple chunks

Search & Replace Input

FieldTypeValidationDescription
searchText InputRequiredText to find
replaceText InputRequiredReplacement text

๐Ÿ’ฌ RAG Chat Testing

You can test the chat functionality with your uploaded documents by visiting the following URL:

Test URL: your-domain.com/markdownrag

Settings Panels

Centralized configuration interfaces for system-wide settings.

โš™๏ธ RAG Settings

Configure AI providers, API keys, and RAG pipeline behavior.

Configuration Sections & Inputs

Website Information
FieldTypeDefaultDescription
APP_NAMEText InputLaravelApplication name
Database Configuration (2 columns)
FieldTypeDefaultDescription
DB_CONNECTIONText InputmysqlDatabase driver
DB_HOSTText Input127.0.0.1Database host
DB_PORTNumeric Input3306Database port
DB_DATABASEText InputlaravelDatabase name
DB_USERNAMEText InputrootDatabase username
DB_PASSWORDPassword (Revealable)-Database password
General Configuration (2 columns)
FieldTypeDescription
AI_DEFAULT_PROVIDERSelect (Native: false)Default LLM provider for chat/completion
AI_EMBEDDING_PROVIDERSelect (Native: false)Provider for vector embeddings
AI Provider Keys (2 columns)
FieldTypeProvider
OPENAI_API_KEYPassword (Revealable)OpenAI (GPT-4, GPT-3.5, embeddings)
ANTHROPIC_API_KEYPassword (Revealable)Anthropic (Claude)
GEMINI_API_KEYPassword (Revealable)Google Gemini (Free tier available)
GROQ_API_KEYPassword (Revealable)Groq (Fast inference)
COHERE_API_KEYPassword (Revealable)Cohere (Embeddings)
DEEPSEEK_API_KEYPassword (Revealable)Deepseek
MISTRAL_API_KEYPassword (Revealable)Mistral AI
OPENROUTER_API_KEYPassword (Revealable)OpenRouter (Multi-model)
VOYAGEAI_API_KEYPassword (Revealable)VoyageAI (Embeddings/Reranking)
XAI_API_KEYPassword (Revealable)xAI (Grok)
JINA_API_KEYPassword (Revealable)Jina AI (Embeddings)
ELEVENLABS_API_KEYPassword (Revealable)ElevenLabs (Voice/Speech)
OLLAMA_API_KEYText InputOllama (Local/Self-hosted)
RAG Pipeline Settings
FieldTypeDefaultDescription
MARKDOWN_RERANKINGTogglefalseEnable reranking model for better precision
MARKDOWN_QUERY_REWRITETogglefalseRewrite queries to match document content
MARKDOWN_CHAT_RATE_LIMITNumeric Input1Max requests per minute for chat
MARKDOWN_EMBEDDING_BATCH_SIZENumeric Input50Documents per embedding request
MARKDOWN_AI_RETRY_MAX_ATTEMPTSNumeric Input3Max retries for AI service calls

๐Ÿ”ง General Settings

Application-wide configuration for AI behavior, caching, and API rate limiting.

AI Configuration Section

FieldTypeDefaultDescription
enable_semantic_cacheTogglefalseCache identical query responses
system_promptTextarea (4 rows)nullGlobal AI system prompt with template picker
tool_descriptionTextarea (4 rows)nullAI tool description with template picker
enable_stream_effectToggletrueEnable streaming animation for responses

API Rate Limiting Section

FieldTypeDefaultDescription
enable_rate_limitingTogglefalseEnable API rate limiting
api_burst_limitNumeric Input60Max requests per minute
api_sustained_limitNumeric Input1000Max requests over sustained period
api_sustained_periodSelectdayPeriod: hour or day

Template Pickers

  • Prompt Templates: Modal with pre-built system prompt templates
  • Tool Templates: Modal with pre-built tool description templates

API Reference (v1)

Complete API documentation with all endpoints, inputs, and response formats.

๐Ÿ’ก Pro Tip: Postman Collection Included

We have included a pre-configured Postman Collection in the tests/postman folder. This collection includes:

  • Pre-request Scripts: Automatically handle authentication and token management
  • Automated Tests: Poll the batch status until 100% completion
  • Environment Variables: Pre-configured for easy setup
  • Newman Integration: Run automated tests via terminal with npm run postman:test
Postman Ready Newman Tests Auto-Auth

๐Ÿงช Testing with Postman

We have included a pre-configured Postman collection and environment located in the Extras/Postman/ folder of your download.

  1. Import both files into Postman.
  2. The collection is pre-set to use the postman@test.com account created during installation.
  3. Ensure your {{base_url}} environment variable matches your local installation path.

Authentication Required

All API endpoints require authentication via Laravel Sanctum personal access tokens. Include the token in the Authorization header:

Authorization: Bearer YOUR_API_TOKEN

Authentication & Users API

MethodEndpointDescriptionPermissions
POST/api/loginUser authenticationPublic
POST/api/usersUser registrationPublic
GET/api/meGet current user profileAuth
GET/api/usersList all usersAdmin (viewAny)
GET/api/users/{user}Get user detailsAdmin or Self (view)
PUT/api/users/{user}Update userAdmin or Self (update)
PATCH/api/users/{user}Update user (partial)Admin or Self (update)
DELETE/api/users/{user}Delete userAdmin (delete)

User Roles Management

MethodEndpointDescriptionPermissions
GET/api/users/{user}/rolesList user rolesAdmin or Self (update)
POST/api/users/{user}/rolesAssign role to userAdmin or Self (update)
DELETE/api/users/{user}/roles/{role}Detach role from userAdmin or Self (update)

Roles & Permissions API

MethodEndpointDescriptionPermissions
GET/api/rolesList all rolesAdmin (viewAny)
GET/api/roles/{role}Get role detailsAdmin (view)
POST/api/rolesCreate new roleSuper Admin (create)
PUT/api/roles/{role}Update roleAdmin (update)
PATCH/api/roles/{role}Update role (partial)Admin (update)
DELETE/api/roles/{role}Delete roleAdmin (delete)
POST/api/roles/{role}/permissionsSync role permissionsSuper Admin (create)
GET/api/permissionsList all permissionsAdmin

Documents & RAG API (v1)

MethodEndpointDescriptionPermissions
GET/api/v1/documentsList all documentsAuth (viewAny)
GET/api/v1/documents/{document}Get document detailsAuth (view)
DELETE/api/v1/documents/{document}Delete documentAuth (delete)
GET/api/v1/documents/batch/{batchId}Get batch statusAuth (owner or admin)
POST/api/v1/ingestTrigger document processingAuth (create)
POST/api/v1/chat/askRAG chat with SSE streamingAuth + Throttle (viewAny)

Chat Request Input

FieldTypeRequiredDescription
queryStringโœ“User's question or message
document_idString (UUID)OptionalSpecific document to query

SSE Stream Response Format

data: {"text": "AI response chunk"}

data: {"text": "continuing response..."}

data: {"text": "final part of response"}

Error Response

data: {"error": "Error message"}

Token Management API (v1)

MethodEndpointDescription
GET/api/v1/tokensList personal access tokens
POST/api/v1/tokensCreate new access token
DELETE/api/v1/tokens/{token}Revoke access token
โš ๏ธ Important: When creating a new token via POST /api/v1/tokens, the API returns the plain_text_token. This is shown only once. Ensure you save it securely; if lost, the token must be revoked and recreated.

Rate Limiting

The /api/v1/chat/ask endpoint uses the rag-api throttle middleware with configurable limits:

  • Burst Limit: 60 requests per minute (default)
  • Sustained Limit: 1000 requests per day (default)

Configure in Settings > General Settings > API Rate Limiting.

Supported AI Providers

๐Ÿ“Š AI Provider Model Comparison

Help choosing the right model for your use case:

PurposeRecommended ModelProviderBenefit
Embeddingstext-embedding-004GeminiFree and high accuracy โญ
Fast Chatqwen/qwen-3.5-9bOpenRouterIncredible speed/cost ratio
Complex Logicopenai/gpt-4oOpenAIBest for difficult document reasoning
Budget Chatdeepseek-chatDeepseekVery low cost, good quality
Ultra Fastllama-3.1-70bGroqFastest inference available
Long Contextclaude-3-5-sonnetAnthropic200K context window
Free Tier: Gemini Best Value: OpenRouter Fastest: Groq

LLM Providers (Chat/Completion)

ProviderModelsConfig Field
OpenAIGPT-4, GPT-3.5-turboOPENAI_API_KEY
AnthropicClaude 3, Claude 2ANTHROPIC_API_KEY
Google GeminiGemini Pro, Gemini UltraGEMINI_API_KEY
GroqLlama, Mixtral (Fast)GROQ_API_KEY
CohereCommand, Command-RCOHERE_API_KEY
DeepseekDeepseek ChatDEEPSEEK_API_KEY
MistralMistral Large, MediumMISTRAL_API_KEY
OpenRouterMulti-model accessOPENROUTER_API_KEY
xAIGrok-1, Grok-2XAI_API_KEY
OllamaLocal modelsOLLAMA_API_KEY

Embedding Providers

ProviderModelsTier
Gemini โญtext-embedding-004Free tier available
OpenAItext-embedding-3-small/largePaid
Ollamanomic-embed-text, mxbai-embedFree (Self-hosted)
Jina AIjina-embeddings-v2Free tier
Cohereembed-english-v3.0Paid
Mistralmistral-embedPaid
VoyageAIvoyage-2, voyage-3Paid
Recommended Setup: Use Gemini for embeddings (free) and OpenRouter for chat (qwen/qwen3.5-9b).

Specialized Providers

ProviderPurposeConfig Field
VoyageAIEmbeddings & RerankingVOYAGEAI_API_KEY
Jina AIEmbeddingsJINA_API_KEY
ElevenLabsVoice/SpeechELEVENLABS_API_KEY
Note: OpenRouter does NOT support embeddings. Use Gemini, Jina, or OpenAI for embeddings instead.

๐Ÿ”‘ How to Configure AI Provider APIs

Step-by-Step Guide to Adding API Keys

Follow these steps to configure your AI providers through the Filament admin panel:

Step 1
Navigate to Settings

Log in to your admin panel and click on Settings in the left sidebar, then select RAG Settings from the dropdown menu.

Step 2
Locate AI Provider Section

Scroll down to the AI Providers section. You'll see configuration fields for each supported provider (OpenAI, Gemini, Anthropic, Groq, etc.).

Step 3
Enter API Keys

For each provider you want to use:

  • Find the provider name (e.g., "OpenAI API Key", "Gemini API Key")
  • Click on the input field and paste your API key
  • The field is masked for security (shown as dots)
  • Use the reveal icon (eye icon) to verify your entry if needed
Step 4
Set Default Providers

In the General Configuration section:

  • Default AI Provider: Select your preferred LLM provider from the dropdown (e.g., OpenAI, Gemini, Anthropic)
  • Default Embedding Provider: Select your embedding provider (Gemini recommended for free tier)
  • Default Model: Choose the specific model to use (e.g., gpt-4, gemini-pro)
Step 5
Optional: Enable Advanced Features

Toggle these features on/off as needed:

  • Enable Reranking: Improves search precision (requires VoyageAI or compatible provider)
  • Enable Query Rewriting: Optimizes queries for better results
  • Enable Semantic Caching: Reduces API costs by caching similar queries
Step 6
Save Configuration

Click the Save button at the bottom of the page. The system will:

  • Validate your API keys with the respective providers
  • Clear the configuration cache automatically
  • Display success/error messages for each provider
Step 7
Verify API Health

After saving, navigate to API Health Check page to verify:

  • All configured providers show as "Healthy"
  • API keys are valid and working
  • Response times are acceptable
  • Tier information (Free/Premium) is displayed
๐Ÿ’ก Pro Tips:
  • Getting Started: Use Gemini for both embeddings and chat (free tier available)
  • Best Value: Gemini embeddings + OpenRouter chat (qwen models)
  • Maximum Privacy: Use Ollama for local, self-hosted models
  • API Key Security: Never share or commit API keys to version control
  • Multiple Providers: You can configure multiple providers simultaneously and switch between them
โš ๏ธ Troubleshooting:
  • Invalid API Key error: Double-check your key and ensure it's active in your provider's dashboard
  • Provider not working: Check API Health page for detailed error messages
  • Changes not saving: Ensure your .env file has proper write permissions
  • Rate limit errors: Check your provider's usage limits and upgrade plan if needed

RAG Engine Configuration

Pipeline Flow

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  User Query         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚
           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Semantic Cache     โ”‚ โ† Check for similar cached queries
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚ (miss)
           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Query Rewriting    โ”‚ โ† Optional: Rewrite for better match
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚
           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Vector Search      โ”‚ โ† Retrieve relevant chunks
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚
           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Reranking          โ”‚ โ† Optional: Re-order by relevance
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚
           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  LLM Generation     โ”‚ โ† Generate response with context
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚
           โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Stream Response    โ”‚ โ† SSE typewriter effect
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Configuration Options

SettingEnv VariableDefaultDescription
Chunk Size-1000 charsText splitter chunk size
Chunk Overlap-100 charsOverlap between chunks
Embedding Batch SizeMARKDOWN_EMBEDDING_BATCH_SIZE50Chunks per embedding request
Chat Rate LimitMARKDOWN_CHAT_RATE_LIMIT1Previous messages in context
Retry Max AttemptsMARKDOWN_AI_RETRY_MAX_ATTEMPTS3AI provider retry count
Retry Delay-2000msExponential backoff delay
Cache TTL-24 hoursSemantic cache expiration

Inputs & Forms Reference

Complete list of all input types used across the application.

Input Types

TypeUsageFeatures
Text InputNames, titles, identifiersValidation, required, unique, max length
Email InputUser emailsEmail validation, unique check
Password InputPasswords, API keysMasked, revealable, hashed on save
Numeric InputPorts, limits, countsNumber-only validation, min/max
TextareaPrompts, descriptionsMultiple rows, nullable, template pickers
Select (Dropdown)Status, providers, rolesNative/non-native, searchable, multi-select
ToggleBoolean flagsOn/off, default values
File UploadDocument uploadsFile type validation, disk selection, directory
Date/Time PickerTimestampsCalendar picker, timezone support
Multi-SelectRoles, permissionsMultiple selection, preload options
Checkbox GridPermissions matrixBulk select, grouped by resource
Hidden InputAuto-filled valuesDefault values, user_id injection

Special Input Features

Template Pickers (Modal)

Used in system prompts and tool descriptions. Opens a modal with pre-built templates:

  • Prompt Templates: Legal expert, Medical advisor, Technical support, etc.
  • Tool Templates: Document retrieval, FAQ bot, Knowledge base search

Copyable Fields

UUIDs and identifiers with one-click copy functionality:

  • Document UUID (with copy icon and confirmation message)

Disabled/Read-Only Fields

Auto-populated fields that cannot be manually edited:

  • UUID (auto-generated)
  • Job Batch ID (auto-assigned)
  • Error messages (auto-filled on failure)
  • Source (auto-linked to document)
  • Status (auto-updated by jobs)

Tables & Filters Reference

All data tables with their columns, sorting, searching, and filtering capabilities.

Table Features

  • Polling: Documents table refreshes every 5 seconds for real-time progress
  • Sortable Columns: Click column headers to sort ascending/descending
  • Searchable: Search icon enables text filtering on marked columns
  • Toggleable: Click table settings to show/hide optional columns
  • Record Actions: Per-row action buttons (view, edit, delete, custom)
  • Bulk Actions: Select multiple records for batch operations
  • Header Actions: Table-level actions (Process All, Search & Replace)

Documents Table

ColumnTypeSortableSearchableToggleableSpecial Features
UUIDText-โœ“-Copyable, copy message
NameText-โœ“--
StatusBadge---Color-coded, animated icon, error tooltip
ProgressText---Real-time via batch lookup
UserRelationโœ“--Displays owner name
Created AtDateTimeโœ“-โœ“Hidden by default

Users Table

ColumnTypeSortableSearchableToggleable
NameText-โœ“-
EmailText-โœ“-
RolesBadge List---
Created AtDateTimeโœ“-โœ“
Updated AtDateTimeโœ“-โœ“

Roles Table

ColumnTypeSortableSearchableSpecial Features
NameText-โœ“Headline formatted
Guard NameBadge--Color: warning
TeamBadge-โœ“Visible if tenancy enabled
Permissions CountBadge--Counts relationship
Updated AtDateTimeโœ“--

Knowledge Chunks Table

ColumnTypeSortableSearchableToggleableSpecial Features
ContentText-โœ“-Limited to 100 chars
StatusBadgeโœ“--Color-coded with icon
SourceText-โœ“โœ“Document reference
Created AtDateTimeโœ“-โœ“-

Available Filters

  • Status Filter: Select by syncing, synced, or failed

Record Actions (Per Row)

ResourceActions
DocumentsProcess, Chat, Download, View, Edit
UsersView (slide-over), Edit (slide-over), Delete
RolesEdit, Delete
ChunksEdit (slide-over), Delete

Header Actions (Table-Level)

ResourceActionDescription
DocumentsProcess AllProcess all pending/failed documents
ChunksSearch & ReplaceBulk find/replace across all chunks

Bulk Actions

ResourceAvailable Bulk Actions
DocumentsDelete (via Bulk Action Group)
UsersDelete (via Bulk Action Group)
RolesDelete (via Bulk Action Group)
ChunksDelete (via Bulk Action Group)

Security & Identity

Authentication Features

  • Two-Factor Authentication (2FA): (Currently Disabled) Optional TOTP-based secondary verification for enhanced security.
  • Session Management: View and logout of active sessions on other devices.
  • Email Verification: Required email verification workflow for new users.
  • Password Reset: Secure password recovery via email tokens.

Authorization System

  • Token-Based Auth: Secure API access via Laravel Sanctum with role-based abilities.
  • Role-Based Access Control (RBAC): Comprehensive permission system via Filament Shield.
  • Granular Permissions: Fine-grained control over view, create, update, delete, restore, and force-delete actions.
  • Custom Roles: Create custom roles with specific permission sets for different user types.
  • Guard System: Separate guards for web (Filament) and sanctum (API) authentication.

Security Best Practices

  • UUID Identifiers: Non-sequential identifiers for documents and sensitive resources.
  • Cascade Deletion: Automatic cleanup of related data to prevent orphaned records.
  • Rate Limiting: Configurable API throttling to prevent abuse.
  • Environment Isolation: Separate configurations for development, testing, and production.
  • Password Hashing: BCrypt hashing for all user passwords.
  • CSRF Protection: Built-in CSRF token validation for state-changing requests.

Support & Policy

๐Ÿ“‹ Item Support Policy

I am committed to providing high-quality support for the AI RAG Wrapper. Please review the following guidelines to understand what assistance is available.

โœ… What's Included in Support

  • Answering technical questions about the item's features
  • Assistance with reported bugs and issues
  • Help with the included Installation Wizard
  • Configuration guidance for AI providers
  • API integration assistance
  • Troubleshooting document processing issues

โŒ What's NOT Included

  • Customization services or adding new features
  • Installation on your server (available as paid service)
  • Issues caused by 3rd party plugins
  • Hardware or server limitations
  • Hosting-specific configuration (cPanel, VPS setup)
  • PHP/MySQL server configuration

๐Ÿ• Support Hours & Response Time

GMT+6 (Khulna, Bangladesh) 24 Hours Response Sunday - Thursday

I am based in Khulna, Bangladesh (GMT+6). I usually respond within 24 hours during business days (Sunday - Thursday). Messages received on Friday-Saturday (weekend in Bangladesh) will be addressed on Sunday.

๐Ÿ“ž Contact Support

๐Ÿ“ง Email: support@virtualmind.top

โฑ๏ธ Response Time: 24 hours during business days

โš ๏ธ Before Opening a Support Ticket

Please ensure you have completed the following steps to help us assist you faster:

  1. Read the documentation - All features and setup steps are documented
  2. Check the Troubleshooting section - Common issues have documented solutions
  3. Verify system requirements - PHP 8.3+, MySQL 8.0+, required extensions
  4. Ensure queue worker is running - php artisan queue:work must be active
  5. Check error logs - Review storage/logs/laravel.log for errors

When Contacting Support, Include:

  • Your Envato Purchase Code
  • PHP version (run: php -v)
  • Error logs from storage/logs/laravel.log
  • Steps to reproduce the issue
  • Screenshots if applicable
  • Your server environment (Shared hosting / VPS / Local)
๐Ÿ’ก Tip: Tickets with complete information receive faster responses. Incomplete tickets may delay support.

๐Ÿ’ผ Paid Services Available

Need help beyond standard support? I offer the following paid services:

  • Server Installation - Full setup on your hosting/VPS
  • Custom Modifications - Feature additions or UI changes
  • Third-party Integrations - Connect with your existing systems
  • Priority Support - Expedited response (4 hours)

Contact me for a custom quote based on your requirements.

๐Ÿ™ Third-Party Credits & Licenses

This project makes use of various third-party libraries, frameworks, and assets. We are grateful to the amazing developers behind these tools. Below is a complete list with attribution links and license information.

๐ŸŒ Core Framework & Platform

ProjectVersionLicenseLink
Laravel12.xMIT Licenselaravel.com
PHP8.3+PHP License 3.01php.net

๐ŸŽจ Admin Panel & UI Components

ProjectVersionLicenseLink
Filament5.xMIT Licensefilamentphp.com
Livewire4.xMIT Licenselivewire.laravel.com
Flux UI2.9+Commercial Licensefluxui.dev
Tailwind CSS4.xMIT Licensetailwindcss.com

๐Ÿ” Authentication & Security

ProjectVersionLicenseLink
Laravel Sanctum4.xMIT LicenseGitHub
Laravel Fortify1.xMIT LicenseGitHub
Filament Shield4.1+MIT LicenseGitHub

๐Ÿค– AI & RAG Engine

ProjectVersionLicenseLink
Laravel Markdown RAG0.2+MIT LicenseGitHub
PDF Parser2.12+LGPL-3.0pdfparser.org
Laravel AILatestMIT LicenseGitHub

๐Ÿ“Š Monitoring & Utilities

ProjectVersionLicenseLink
Filament Jobs Monitor4.1+MIT LicenseGitHub
Laravel Pail1.2+MIT LicenseGitHub
Laravel Boost2.0+MIT LicenseGitHub

๐Ÿงช Testing & Development

ProjectVersionLicenseLink
Pest PHP4.xMIT Licensepestphp.com
Pest Plugin Laravel4.1+MIT LicenseGitHub
Laravel Pint1.24+MIT LicenseGitHub
Faker1.23+MIT Licensefakerphp.github.io
Mockery1.6+BSD-3-Clausedocs.mockery.io
Newman6.1+MIT LicenseGitHub

๐Ÿ”ง Build Tools

ProjectVersionLicenseLink
Vite7.xMIT Licensevite.dev
Laravel Vite PluginLatestMIT LicenseGitHub
Autoprefixer10.4+MIT LicenseGitHub
Axios1.7+MIT Licenseaxios-http.com
Concurrently9.0+MIT LicenseGitHub

โœจ Fonts & Icons

ProjectVersionLicenseLink
Inter FontLatestSIL Open Font License 1.1rsms.me/inter
Outfit FontLatestSIL Open Font License 1.1outfit.style
HeroiconsLatestMIT Licenseheroicons.com

๐Ÿ“ฆ Additional Dependencies

The following packages are also used under their respective open-source licenses:

๐Ÿ“œ License Summary

Most dependencies in this project use permissive open-source licenses:

MIT License

Permissive, allows commercial use, modification, distribution, and private use.

Apache 2.0

Permissive with patent rights and attribution requirements.

SIL OFL 1.1

Free font license, allows commercial use and modification.

LGPL-3.0

Allows linking to proprietary software with dynamic linking.

๐Ÿ“ Note: All trademarks, logos, and brand names are the property of their respective owners. Their use does not imply endorsement or affiliation.

Changelog

Version 1.0.0 ๐Ÿš€ - Initial Release

Release Date: 2026-04-02

Core Features

  • Complete RAG pipeline with smart chunking and vector embeddings
  • Multi-provider AI support (12+ LLM providers)
  • Filament v5 admin dashboard with monitoring widgets
  • RESTful API v1 with SSE streaming
  • Document management with background processing
  • Role-based access control via Filament Shield
  • Personal Access Token Management Resource

Pipeline Optimizations

  • Semantic caching for reduced API costs
  • Optional reranking for improved precision
  • Query rewriting for better retrieval
  • Exponential backoff retry logic

Developer Tools

  • Postman collection with automated tests
  • Interactive API documentation
  • Comprehensive test suite with Pest 4
  • Laravel Pint code formatting