Skip to main content

aiaio

Project description

aiaio (AI-AI-O)

A lightweight, privacy-focused web UI for interacting with AI models. Supports both local and remote LLM deployments through OpenAI-compatible APIs.

Screenshot

Features

  • 🌓 Dark/Light mode support
  • 💾 Local SQLite database for conversation storage
  • 📁 File upload and processing (images, documents, etc.)
  • ⚙️ Configurable model parameters through UI
  • 🔒 Privacy-focused (all data stays local)
  • 📱 Responsive design for mobile/desktop
  • 🎨 Syntax highlighting for code blocks
  • 📋 One-click code block copying
  • 🔄 Real-time conversation updates
  • 📝 Automatic conversation summarization
  • 🎯 Customizable system prompts
  • 🌐 WebSocket support for real-time updates
  • 📦 Docker support for easy deploymen
  • 📦 Multiple API endpoint support
  • 📦 Multiple system prompt support

Requirements

  • Python 3.10+
  • An OpenAI-compatible API endpoint (local or remote)

Supported API Endpoints

aiaio works with any OpenAI-compatible API endpoint, including:

  • OpenAI API
  • vLLM
  • Text Generation Inference (TGI)
  • Hugging Face Inference Endpoints
  • llama.cpp server
  • LocalAI
  • Custom OpenAI-compatible APIs

For example, you can serve llama 8b using vLLM using:

vllm serve Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf --tokenizer meta-llama/Llama-3.1-8B-Instruct --max_model_len 125000

and once the api is running, you can access it using aiaio ui.

Installation

Using pip

pip install aiaio

From source

git clone https://github.com/abhishekkrthakur/aiaio.git
cd aiaio
pip install -e .

Quick Start

  1. Start the server:
aiaio app --host 127.0.0.1 --port 5000
  1. Open your browser and navigate to http://127.0.0.1:5000

  2. Configure your API endpoint and model settings in the UI

Docker Usage

  1. Build the Docker image:
docker build -t aiaio .
  1. Run the container:
docker run --network host \
  -v /path/to/data:/data \
  aiaio

The /data volume mount is optional but recommended for persistent storage of the SQLite database and uploaded files.

UI Configuration

All model and API settings can be configured through the UI:

Model Parameters

  • Temperature (0-2): Controls response randomness. Higher values make output more creative but less focused
  • Max Tokens (1-32k): Maximum length of generated responses
  • Top P (0-1): Controls diversity via nucleus sampling. Lower values make output more focused
  • Model Name: Name/path of the model to use (depends on your API endpoint)

API Configuration

  • Host: URL of your OpenAI-compatible API endpoint
  • API Key: Authentication key if required by your endpoint

These settings are stored in the local SQLite database and persist between sessions.

File Handling

aiaio supports uploading and processing various file types, depending on the model's capabilities:

  • Images (PNG, JPG, GIF, etc.)
  • Documents (PDF, DOC, DOCX)
  • Text files (TXT, CSV, JSON)
  • Audio files (depends on model capabilities)
  • Video files (depends on model capabilities)

Uploaded files are stored temporarily and can be referenced in conversations.

Database Schema

aiaio uses SQLite for storage with the following main tables:

  • conversations: Stores chat histories and summaries
  • messages: Stores individual messages within conversations
  • attachments: Stores file attachment metadata
  • settings: Stores UI and model configuration

Advanced Usage

Custom System Prompts

Each conversation can have its own system prompt that guides the AI's behavior. Click the "System Prompt" section above the chat to customize it.

Conversation Management

  • Create new conversations using the "+ New Chat" button
  • Switch between conversations in the left sidebar
  • Delete conversations using the trash icon
  • View conversation summaries in the sidebar

Keyboard Shortcuts

  • Ctrl/Cmd + Enter: Send message
  • Esc: Clear input
  • Ctrl/Cmd + K: Focus chat input
  • Ctrl/Cmd + /: Toggle settings sidebar

Development

# Clone the repository
git clone https://github.com/abhishekkrthakur/aiaio.git
cd aiaio

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # or `venv\Scripts\activate` on Windows

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run with auto-reload for development
uvicorn aiaio.app.app:app --reload --port 5000

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run the tests (pytest)
  5. Submit a pull request

License

Apache License 2.0 - see LICENSE file for details

Acknowledgements

This project was primarily written with GitHub Copilot's assistance. While the human guided the development, Copilot generated much of the actual code.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiaio-0.0.5.tar.gz (41.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiaio-0.0.5-py3-none-any.whl (40.8 kB view details)

Uploaded Python 3

File details

Details for the file aiaio-0.0.5.tar.gz.

File metadata

  • Download URL: aiaio-0.0.5.tar.gz
  • Upload date:
  • Size: 41.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for aiaio-0.0.5.tar.gz
Algorithm Hash digest
SHA256 5f01bff26ca165af8ca2ece8e62db3f74e01c87feb8a451a79717fdc27aa3368
MD5 a18075cfdc46f6c0391b9ee1f9725fc5
BLAKE2b-256 fc1cbd0df31baab91c855db9c11b1bd326b594d03491ad92dbc872373e712fb8

See more details on using hashes here.

File details

Details for the file aiaio-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: aiaio-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 40.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for aiaio-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 73f06bfcb1bd57da5d6f0264ce0f2d0e050d10ca76cbfa2cec5efff9acd3f151
MD5 c8bcca3b33a9e147fa924e8f403ae61d
BLAKE2b-256 5145f65edfdd67f729299ee2ffa9780eb88da4bc51ffd88483e28ba3d447c685

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page