Instructions to use remiai3/RemiAI_Framework with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use remiai3/RemiAI_Framework with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="remiai3/RemiAI_Framework", filename="engine/model.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- llama.cpp
How to use remiai3/RemiAI_Framework with llama.cpp:
Install from brew
brew install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf remiai3/RemiAI_Framework # Run inference directly in the terminal: llama-cli -hf remiai3/RemiAI_Framework
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf remiai3/RemiAI_Framework # Run inference directly in the terminal: llama-cli -hf remiai3/RemiAI_Framework
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf remiai3/RemiAI_Framework # Run inference directly in the terminal: ./llama-cli -hf remiai3/RemiAI_Framework
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf remiai3/RemiAI_Framework # Run inference directly in the terminal: ./build/bin/llama-cli -hf remiai3/RemiAI_Framework
Use Docker
docker model run hf.co/remiai3/RemiAI_Framework
- LM Studio
- Jan
- vLLM
How to use remiai3/RemiAI_Framework with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "remiai3/RemiAI_Framework" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "remiai3/RemiAI_Framework", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/remiai3/RemiAI_Framework
- Ollama
How to use remiai3/RemiAI_Framework with Ollama:
ollama run hf.co/remiai3/RemiAI_Framework
- Unsloth Studio new
How to use remiai3/RemiAI_Framework with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for remiai3/RemiAI_Framework to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for remiai3/RemiAI_Framework to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for remiai3/RemiAI_Framework to start chatting
- Docker Model Runner
How to use remiai3/RemiAI_Framework with Docker Model Runner:
docker model run hf.co/remiai3/RemiAI_Framework
- Lemonade
How to use remiai3/RemiAI_Framework with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull remiai3/RemiAI_Framework
Run and chat with the model
lemonade run user.RemiAI_Framework-{{QUANT_TAG}}List all available models
lemonade list
| const { app, BrowserWindow, ipcMain, shell, powerMonitor, dialog } = require('electron'); | |
| const path = require('path'); | |
| const { spawn, exec } = require('child_process'); | |
| const fs = require('fs'); | |
| const os = require('os'); | |
| const si = require('systeminformation'); | |
| let mainWindow; | |
| let apiProcess; | |
| // Empty function to prevent crashes since logging is disabled | |
| function logToDesktop(message) { } | |
| function createWindow() { | |
| mainWindow = new BrowserWindow({ | |
| width: 1300, | |
| height: 900, | |
| backgroundColor: '#ffffff', | |
| icon: path.join(__dirname, 'remiai.ico'), | |
| webPreferences: { | |
| nodeIntegration: true, | |
| contextIsolation: false, | |
| webviewTag: true // RESTORED: This allows your browsing feature to work | |
| }, | |
| autoHideMenuBar: true, | |
| title: "RemiAI - bujji" | |
| }); | |
| mainWindow.loadFile('index.html'); | |
| // --- FEATURE: TASK REMINDER SYSTEM --- | |
| mainWindow.webContents.on('did-finish-load', () => { | |
| mainWindow.webContents.send('check-tasks'); | |
| }); | |
| powerMonitor.on('resume', () => { | |
| if (mainWindow) mainWindow.webContents.send('check-tasks'); | |
| }); | |
| powerMonitor.on('unlock-screen', () => { | |
| if (mainWindow) mainWindow.webContents.send('check-tasks'); | |
| }); | |
| // ALLOW INTERNAL NAVIGATION | |
| mainWindow.webContents.setWindowOpenHandler(({ url }) => { | |
| return { action: 'allow' }; | |
| }); | |
| mainWindow.on('closed', function () { mainWindow = null; }); | |
| } | |
| // --- AI ENGINE BACKEND LOGIC (STRICT CPU ONLY) --- | |
| async function selectEngine() { | |
| try { | |
| const cpuFlags = await si.cpuFlags(); | |
| const flagsStr = JSON.stringify(cpuFlags).toLowerCase(); | |
| const basePath = app.isPackaged ? process.resourcesPath : __dirname; | |
| const engineBaseDir = path.join(basePath, 'engine'); | |
| const hasFolder = (f) => fs.existsSync(path.join(engineBaseDir, f)); | |
| // 1. Check for AVX2 (Priority for speed) | |
| if (flagsStr.includes('avx2') && hasFolder('cpu_avx2')) { | |
| return 'cpu_avx2'; | |
| } | |
| // 2. Fallback to standard AVX | |
| return 'cpu_avx'; | |
| } catch (e) { | |
| return 'cpu_avx'; | |
| } | |
| } | |
| async function startNativeBackend() { | |
| killProcess(); | |
| await new Promise(resolve => setTimeout(resolve, 500)); | |
| const engineSubfolder = await selectEngine(); | |
| const basePath = app.isPackaged ? process.resourcesPath : __dirname; | |
| const workingDir = path.join(basePath, 'engine', engineSubfolder); | |
| let exeName = fs.existsSync(path.join(workingDir, 'bujji_engine.exe')) | |
| ? 'bujji_engine.exe' | |
| : 'llama-server.exe'; | |
| const exePath = path.join(workingDir, exeName); | |
| // --- CHECK FOR GIT LFS POINTERS --- | |
| try { | |
| const stats = fs.statSync(exePath); | |
| if (stats.size < 5000) { // Real engine is >3MB. Pointers are ~130 bytes. | |
| dialog.showErrorBox( | |
| "RemiAI Engine Missing", | |
| `The engine executable is a Git LFS pointer (size: ${stats.size} bytes), not the actual file.\n\nPlease install Git LFS and run: 'git lfs pull'\nOr redownload the 'engine' folder contents correctly.` | |
| ); | |
| return; // Stop execution | |
| } | |
| } catch (err) { | |
| logToDesktop("Error checking engine file: " + err.message); | |
| } | |
| // --- SPEED & CPU CONTROL --- | |
| // Your i5 has 8 logical threads. | |
| // Setting this to 4 uses 50% of your CPU capacity, ensuring fast 3-4s responses. | |
| const optimizedThreads = 4; | |
| const args = [ | |
| '-m', '../model.gguf', | |
| '-c', '2048', // Keeps memory usage low and response snappy | |
| '--batch-size', '512', // Increases prompt processing speed | |
| '--port', '5000', | |
| '-t', optimizedThreads.toString(), | |
| '--n-gpu-layers', '0', // Forced CPU only | |
| '--no-mmap' // Pre-loads model into RAM for zero lag | |
| ]; | |
| try { | |
| apiProcess = spawn(exePath, args, { | |
| cwd: workingDir, | |
| windowsHide: true, | |
| stdio: ['ignore', 'pipe', 'pipe'] | |
| }); | |
| apiProcess.stderr.on('data', (data) => logToDesktop(data.toString())); | |
| } catch (e) { | |
| logToDesktop(`Catch Error: ${e.message}`); | |
| } | |
| } | |
| function killProcess() { | |
| try { | |
| exec('taskkill /IM bujji_engine.exe /F /T'); | |
| exec('taskkill /IM llama-server.exe /F /T'); | |
| } catch (e) { } | |
| } | |
| ipcMain.on('restart-brain', () => { | |
| startNativeBackend(); | |
| if (mainWindow) mainWindow.webContents.send('brain-restarted'); | |
| }); | |
| ipcMain.on('reload-window', () => { | |
| if (mainWindow) mainWindow.reload(); | |
| }); | |
| // --- APP LIFECYCLE --- | |
| app.whenReady().then(() => { | |
| startNativeBackend(); | |
| createWindow(); | |
| }); | |
| app.on('window-all-closed', () => { | |
| killProcess(); | |
| if (process.platform !== 'darwin') app.quit(); | |
| }); | |
| app.on('will-quit', () => { killProcess(); }); |