A powerful, privacy-first Progressive Web App for running batch inference tasks using local LLMs (like LM Studio and Ollama) as well as cloud providers (OpenAI, Google Gemini).
(Replace with actual screenshot)
- 100% Local Storage: All projects, data, and API keys are stored in your browser's IndexedDB. Nothing leaves your device unless you send it to an API.
- Batch Processing: Import CSV files and process thousands of rows with configurable concurrency.
- Dynamic Prompts: Map CSV columns to prompts using
{{column_name}}syntax. - Multi-Provider Support:
- Local: LM Studio, Ollama
- Cloud: OpenAI, Google Gemini, OpenRouter
- Resilient: Automatic retry for failed rows, pause/resume capability, and rate limiting (delay) controls.
- Responsive PWA: Installable on Desktop and Mobile.
Use the production app directly at: https://kltng.github.io/batch_llm/
-
Clone the repository:
git clone https://github.com/kltng/batch_llm.git cd batch_llm -
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open
http://localhost:5173in your browser.
LM Studio:
- Start LM Studio and load a model.
- Go to the Developer/Server tab (monitor icon).
- Start the server. Crucial: Ensure "CORS" is enabled.
- In Batch LLM Studio, select LM Studio as the provider (default URL:
http://localhost:1234/v1).
Ollama:
- Start Ollama.
- Set the environment variable
OLLAMA_ORIGINS="*"(or include the app URL) to allow browser requests.- Mac/Linux:
OLLAMA_ORIGINS="*" ollama serve
- Mac/Linux:
- In Batch LLM Studio, select Ollama as the provider (default URL:
http://localhost:11434/v1).
- New Project: Create a named workspace.
- Import CSV: Upload your dataset.
- Setup: Configure your System Prompt and User Prompt. Use
{{header}}to insert data from your CSV rows. - Batch Run: Set concurrency (e.g., 5 parallel requests) and start the job.
- Export: Download the completed dataset with model responses.
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.