aiaio


Nameaiaio JSON
Version 0.0.6 PyPI version JSON
download
home_pageNone
Summaryaiaio
upload_time2025-02-12 10:20:45
maintainerNone
docs_urlNone
authorabhishek
requires_pythonNone
licenseNone
keywords aiaio
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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](https://github.com/abhishekkrthakur/aiaio/blob/main/ui.png?raw=true)

## 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:

```bash
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

```bash
pip install aiaio
```

### From source

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

## Quick Start

1. Start the server:
```bash
aiaio app --host 127.0.0.1 --port 5000
```

2. Open your browser and navigate to `http://127.0.0.1:5000`

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

## Docker Usage

1. Build the Docker image:
```bash
docker build -t aiaio .
```

2. Run the container:
```bash
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

```bash
# 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.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "aiaio",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "aiaio",
    "author": "abhishek",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/5f/77/8108afe91531ad812d7a38498baf00fd03096299deb481e261c5975f7710/aiaio-0.0.6.tar.gz",
    "platform": null,
    "description": "# aiaio (AI-AI-O)\n\nA lightweight, privacy-focused web UI for interacting with AI models. Supports both local and remote LLM deployments through OpenAI-compatible APIs.\n\n![Screenshot](https://github.com/abhishekkrthakur/aiaio/blob/main/ui.png?raw=true)\n\n## Features\n\n- \ud83c\udf13 Dark/Light mode support\n- \ud83d\udcbe Local SQLite database for conversation storage\n- \ud83d\udcc1 File upload and processing (images, documents, etc.)\n- \u2699\ufe0f Configurable model parameters through UI\n- \ud83d\udd12 Privacy-focused (all data stays local)\n- \ud83d\udcf1 Responsive design for mobile/desktop\n- \ud83c\udfa8 Syntax highlighting for code blocks\n- \ud83d\udccb One-click code block copying\n- \ud83d\udd04 Real-time conversation updates\n- \ud83d\udcdd Automatic conversation summarization\n- \ud83c\udfaf Customizable system prompts\n- \ud83c\udf10 WebSocket support for real-time updates\n- \ud83d\udce6 Docker support for easy deploymen\n- \ud83d\udce6 Multiple API endpoint support\n- \ud83d\udce6 Multiple system prompt support\n\n## Requirements\n\n\n- Python 3.10+\n- An OpenAI-compatible API endpoint (local or remote)\n\n## Supported API Endpoints\n\naiaio works with any OpenAI-compatible API endpoint, including:\n\n- OpenAI API\n- vLLM\n- Text Generation Inference (TGI)\n- Hugging Face Inference Endpoints\n- llama.cpp server\n- LocalAI\n- Custom OpenAI-compatible APIs\n\nFor example, you can serve llama 8b using vLLM using:\n\n```bash\nvllm serve Meta-Llama-3.1-8B-Instruct.Q4_K_M.gguf --tokenizer meta-llama/Llama-3.1-8B-Instruct --max_model_len 125000\n```\n\nand once the api is running, you can access it using aiaio ui.\n\n## Installation\n\n### Using pip\n\n```bash\npip install aiaio\n```\n\n### From source\n\n```bash\ngit clone https://github.com/abhishekkrthakur/aiaio.git\ncd aiaio\npip install -e .\n```\n\n## Quick Start\n\n1. Start the server:\n```bash\naiaio app --host 127.0.0.1 --port 5000\n```\n\n2. Open your browser and navigate to `http://127.0.0.1:5000`\n\n3. Configure your API endpoint and model settings in the UI\n\n## Docker Usage\n\n1. Build the Docker image:\n```bash\ndocker build -t aiaio .\n```\n\n2. Run the container:\n```bash\ndocker run --network host \\\n  -v /path/to/data:/data \\\n  aiaio\n```\n\nThe `/data` volume mount is optional but recommended for persistent storage of the SQLite database and uploaded files.\n\n## UI Configuration\n\nAll model and API settings can be configured through the UI:\n\n### Model Parameters\n- **Temperature** (0-2): Controls response randomness. Higher values make output more creative but less focused\n- **Max Tokens** (1-32k): Maximum length of generated responses\n- **Top P** (0-1): Controls diversity via nucleus sampling. Lower values make output more focused\n- **Model Name**: Name/path of the model to use (depends on your API endpoint)\n\n### API Configuration\n- **Host**: URL of your OpenAI-compatible API endpoint\n- **API Key**: Authentication key if required by your endpoint\n\nThese settings are stored in the local SQLite database and persist between sessions.\n\n## File Handling\n\naiaio supports uploading and processing various file types, depending on the model's capabilities:\n\n- Images (PNG, JPG, GIF, etc.)\n- Documents (PDF, DOC, DOCX)\n- Text files (TXT, CSV, JSON)\n- Audio files (depends on model capabilities)\n- Video files (depends on model capabilities)\n\nUploaded files are stored temporarily and can be referenced in conversations.\n\n## Database Schema\n\naiaio uses SQLite for storage with the following main tables:\n\n- `conversations`: Stores chat histories and summaries\n- `messages`: Stores individual messages within conversations\n- `attachments`: Stores file attachment metadata\n- `settings`: Stores UI and model configuration\n\n## Advanced Usage\n\n### Custom System Prompts\n\nEach conversation can have its own system prompt that guides the AI's behavior. Click the \"System Prompt\" section above the chat to customize it.\n\n### Conversation Management\n\n- Create new conversations using the \"+ New Chat\" button\n- Switch between conversations in the left sidebar\n- Delete conversations using the trash icon\n- View conversation summaries in the sidebar\n\n### Keyboard Shortcuts\n\n- `Ctrl/Cmd + Enter`: Send message\n- `Esc`: Clear input\n- `Ctrl/Cmd + K`: Focus chat input\n- `Ctrl/Cmd + /`: Toggle settings sidebar\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/abhishekkrthakur/aiaio.git\ncd aiaio\n\n# Create a virtual environment\npython -m venv venv\nsource venv/bin/activate  # or `venv\\Scripts\\activate` on Windows\n\n# Install development dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Run with auto-reload for development\nuvicorn aiaio.app.app:app --reload --port 5000\n```\n\n## Contributing\n\nContributions are welcome! Please:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run the tests (`pytest`)\n5. Submit a pull request\n\n## License\n\nApache License 2.0 - see LICENSE file for details\n\n## Acknowledgements\n\nThis project was primarily written with GitHub Copilot's assistance. While the human guided the development, Copilot generated much of the actual code.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "aiaio",
    "version": "0.0.6",
    "project_urls": {
        "Homepage": "https://github.com/abhishekkrthakur/aiaio",
        "Issues": "https://github.com/abhishekkrthakur/aiaio/issues"
    },
    "split_keywords": [
        "aiaio"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "2042156054ee48c8e53fb72ec771629ff00d3e7a26b3724b3fe2f19368159ce1",
                "md5": "44f5069b2db10433293cbf22b2c1e6bf",
                "sha256": "90cc196760be9ef9906e45a3dbe4a25f2be1df7b0f2efb21b926989c1dda1b3c"
            },
            "downloads": -1,
            "filename": "aiaio-0.0.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "44f5069b2db10433293cbf22b2c1e6bf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 40947,
            "upload_time": "2025-02-12T10:20:44",
            "upload_time_iso_8601": "2025-02-12T10:20:44.020374Z",
            "url": "https://files.pythonhosted.org/packages/20/42/156054ee48c8e53fb72ec771629ff00d3e7a26b3724b3fe2f19368159ce1/aiaio-0.0.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5f778108afe91531ad812d7a38498baf00fd03096299deb481e261c5975f7710",
                "md5": "f3ed8f304cc8cfd25537397f51dc8263",
                "sha256": "d9a7a98502f52a9abee73138224e13df0d9f323bc857c34c6b25a4e7e66601fd"
            },
            "downloads": -1,
            "filename": "aiaio-0.0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "f3ed8f304cc8cfd25537397f51dc8263",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 41400,
            "upload_time": "2025-02-12T10:20:45",
            "upload_time_iso_8601": "2025-02-12T10:20:45.247586Z",
            "url": "https://files.pythonhosted.org/packages/5f/77/8108afe91531ad812d7a38498baf00fd03096299deb481e261c5975f7710/aiaio-0.0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-12 10:20:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "abhishekkrthakur",
    "github_project": "aiaio",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aiaio"
}
        
Elapsed time: 0.59707s