https://github.com/guiss-guiss/scriptumai
RAG Application ScriptumAI is an advanced Retrieval-Augmented Generation platform designed for document ingestion, semantic search, and query processing.
https://github.com/guiss-guiss/scriptumai
ai document-ingestion document-processing file-upload flask language-model llama llm machine-learning multi-language nlp offline ollama pdf-processing private python rag retrieval-augmented-generation semantic-search text-analysis
Last synced: about 2 months ago
JSON representation
RAG Application ScriptumAI is an advanced Retrieval-Augmented Generation platform designed for document ingestion, semantic search, and query processing.
- Host: GitHub
- URL: https://github.com/guiss-guiss/scriptumai
- Owner: Guiss-Guiss
- License: gfdl-1.3
- Created: 2024-10-13T19:05:15.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-10-18T20:02:14.000Z (7 months ago)
- Last Synced: 2024-10-19T13:37:20.836Z (7 months ago)
- Topics: ai, document-ingestion, document-processing, file-upload, flask, language-model, llama, llm, machine-learning, multi-language, nlp, offline, ollama, pdf-processing, private, python, rag, retrieval-augmented-generation, semantic-search, text-analysis
- Language: Python
- Homepage:
- Size: 11.3 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: License
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# ScriptumAI
[English] | [Français] | [Español]
## English
### Introduction
ScriptumAI is a private and advanced Retrieval-Augmented Generation platform designed for document ingestion, semantic search, and query processing. It leverages cutting-edge machine learning and natural language processing techniques.### Key Technologies
- **Backend**: Flask
- **Frontend**: Streamlit
- **ML & NLP**: PyTorch, Ollama API
- **Database**: Chroma
- **Testing**: pytest### Architecture
The project follows a modular architecture with distinct components for embedding, ingestion, query processing, and retrieval.#### Project Structure
- `backend/`: Core components (embedding, ingestion, query, retrieval)
- `frontend/`: Streamlit user interface
- `config.py`: Configuration settings
- `main.py`: Application entry point
- `tests/`: Unit tests### Key Features
1. **Document Ingestion**
- Multi-format support (text, PDF, DOCX, HTML, Markdown)
- Chunking for efficient processing
- Storage in Chroma for fast retrieval2. **Query Processing**
- Uses LLM to generate relevant responses
- Context-based retrieval using cosine similarity3. **Semantic Search**
- Search within ingested documents
- Returns most relevant chunks with scores and metadata4. **System Statistics**
- Displays ingestion statistics and models used5. **User Interface**
- Components for ingestion, queries, and search
- Dashboard for statistics and recent activity6. **Unit Testing**
- Comprehensive tests for all major components### Quick Start
#### Prerequisites
Python 3.8+ (tested with 3.12.7), Flask, Streamlit, PyTorch, Ollama API, Chroma, pytest#### Installation and Launch
1. Clone the repository
2. Create a virtual environment
3. Install dependencies: `pip install -r requirements.txt`
4. Launch backend: `python api.py`
5. Launch frontend in another terminal: `streamlit run app.py`### License
This project is available under a dual license:
1. GNU Affero General Public License v3.0 (AGPL-3.0)
2. Commercial LicenseFor more details, see the [LICENSE](LICENSE) file and [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md).
### Contributing
Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
## Français
### Introduction
ScriptumAI est une plateforme privée et avancée de Génération Augmentée par Récupération conçue pour l'ingestion de documents, la recherche sémantique et le traitement des requêtes. Elle utilise des techniques de pointe en apprentissage automatique et en traitement du langage naturel.### Technologies Clés
- **Backend**: Flask
- **Frontend**: Streamlit
- **ML & NLP**: PyTorch, API Ollama
- **Base de données**: Chroma
- **Tests**: pytest### Architecture
Le projet suit une architecture modulaire avec des composants distincts pour l'intégration, l'ingestion, le traitement des requêtes et la récupération.#### Structure du Projet
- `backend/`: Composants principaux (intégration, ingestion, requête, récupération)
- `frontend/`: Interface utilisateur Streamlit
- `config.py`: Paramètres de configuration
- `main.py`: Point d'entrée de l'application
- `tests/`: Tests unitaires### Fonctionnalités Principales
1. **Ingestion de Documents**
- Support multi-format (texte, PDF, DOCX, HTML, Markdown)
- Découpage pour un traitement efficace
- Stockage dans Chroma pour une récupération rapide2. **Traitement des Requêtes**
- Utilise LLM pour générer des réponses pertinentes
- Récupération basée sur le contexte utilisant la similarité cosinus3. **Recherche Sémantique**
- Recherche dans les documents ingérés
- Retourne les fragments les plus pertinents avec scores et métadonnées4. **Statistiques du Système**
- Affiche les statistiques d'ingestion et les modèles utilisés5. **Interface Utilisateur**
- Composants pour l'ingestion, les requêtes et la recherche
- Tableau de bord pour les statistiques et l'activité récente6. **Tests Unitaires**
- Tests complets pour tous les composants majeurs### Démarrage Rapide
#### Prérequis
Python 3.8+ (testé su 3.12.7), Flask, Streamlit, PyTorch, API Ollama, Chroma, pytest#### Installation et Lancement
1. Cloner le dépôt
2. Créer un environnement virtuel
3. Installer les dépendances : `pip install -r requirements.txt`
4. Lancer le backend : `python api.py`
5. Dans un autre terminal, lancer le frontend : `streamlit run app.py`### Licence
Ce projet est disponible sous une double licence :
1. Licence publique générale GNU Affero v3.0 (AGPL-3.0)
2. Licence commercialePour plus de détails, consultez le fichier [LICENSE](LICENSE) et [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md).
### Contribuer
Veuillez lire notre [CONTRIBUTING.md](CONTRIBUTING.md) pour plus de détails sur notre code de conduite et le processus de soumission des pull requests.
## Español
### Introducción
ScriptumAI es una plataforma privado y avanzada de Generación Aumentada por Recuperación diseñada para la ingestión de documentos, búsqueda semántica y procesamiento de consultas. Utiliza técnicas de vanguardia en aprendizaje automático y procesamiento del lenguaje natural.### Tecnologías Clave
- **Backend**: Flask
- **Frontend**: Streamlit
- **ML & NLP**: PyTorch, API de Ollama
- **Base de datos**: Chroma
- **Pruebas**: pytest### Arquitectura
El proyecto sigue una arquitectura modular con componentes distintos para la incrustación, ingestión, procesamiento de consultas y recuperación.#### Estructura del Proyecto
- `backend/`: Componentes principales (incrustación, ingestión, consulta, recuperación)
- `frontend/`: Interfaz de usuario de Streamlit
- `config.py`: Configuraciones
- `main.py`: Punto de entrada de la aplicación
- `tests/`: Pruebas unitarias### Características Principales
1. **Ingestión de Documentos**
- Soporte multi-formato (texto, PDF, DOCX, HTML, Markdown)
- Fragmentación para procesamiento eficiente
- Almacenamiento en Chroma para recuperación rápida2. **Procesamiento de Consultas**
- Usa LLM para generar respuestas relevantes
- Recuperación basada en contexto usando similitud del coseno3. **Búsqueda Semántica**
- Búsqueda en documentos ingeridos
- Devuelve los fragmentos más relevantes con puntuaciones y metadatos4. **Estadísticas del Sistema**
- Muestra estadísticas de ingestión y modelos utilizados5. **Interfaz de Usuario**
- Componentes para ingestión, consultas y búsqueda
- Panel de control para estadísticas y actividad reciente6. **Pruebas Unitarias**
- Pruebas exhaustivas para todos los componentes principales### Inicio Rápido
#### Requisitos Previos
Python 3.8+ (probado en 3.12.7), Flask, Streamlit, PyTorch, API de Ollama, Chroma, pytest#### Instalación y Lanzamiento
1. Clonar el repositorio
2. Crear un entorno virtual
3. Instalar dependencias: `pip install -r requirements.txt`
4. Inicie el backend: `python api.py`
5. En otra terminal, inicie el frontend: `streamlit run app.py`### Licencia
Este proyecto está disponible bajo una licencia dual:
1. Licencia Pública General Affero de GNU v3.0 (AGPL-3.0)
2. Licencia ComercialPara más detalles, consulte el archivo [LICENSE](LICENSE) y [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md).
### Contribuir
Por favor, lea nuestro [CONTRIBUTING.md](CONTRIBUTING.md) para obtener detalles sobre nuestro código de conducta y el proceso para enviar pull requests.