offline-ai 4.0.0
🤖 Локальный ИИ-ассистент для терминала с умной установкой без прав администратора
License: MIT
Requires Python: >=3.8
Keywords: ai, artificial-intelligence, terminal, cli, offline, ollama, chatbot, assistant, local-ai, llm

# 🤖 offline-ai v3.0

Локальный ИИ-ассистент для терминала с умной установкой без прав администратора.

## ✨ Особенности

- 🔒 **Полностью оффлайн** - работает без интернета
- �️ **Умная установка** - автоматически работает без прав администратора
- 🐧 **Портативная установка** - на Linux устанавливается в домашнюю папку
- �🚀 **Быстрая установка** - один pip install
- 💬 **Удобный интерфейс** - красивый терминальный интерфейс
- 🎨 **Подсветка кода** - автоматическая подсветка синтаксиса
- 🧠 **Память разговора** - ИИ помнит контекст беседы
- 📚 **История разговоров** - сохраняет все ваши диалоги
- ⚡ **Режимы вывода** - в реальном времени или с форматированием
- 🎯 **Легкие модели** - оптимизировано для слабых компьютеров
- ⚙️ **Гибкая настройка** - настраиваемые модели и параметры

## 🔧 Требования

- Python 3.8+
- 4GB+ RAM (рекомендуется 8GB)
- 5GB+ свободного места на диске
- Интернет для первоначальной установки (~3GB)
- [Ollama](https://ollama.ai) - устанавливается автоматически

## 📦 Установка

```bash
pip install offline-ai
```

> **💡 Важно:** При первом запуске offline-ai попытается автоматически установить Ollama и загрузить модель. Это может занять несколько минут и потребует ~3GB интернет-трафика.

## 🚀 Быстрый старт

### 🎯 Быстрая установка:
```bash
# Установить пакет
pip install offline-ai

# Автоматическая установка всего необходимого
offline-ai --setup --auto-install
```

**Это автоматически:**
- Попытается установить Ollama (если нужно)
- Загрузит рекомендуемую модель llama3.2:3b (~2.0 GB)
- Настроит все для работы

> **⚠️ Требования для автоматической установки:**
> - Интернет-соединение (~3GB трафика)
> - ~5GB свободного места на диске
> - Права администратора (Windows) или возможность установки в домашнюю папку (Linux)
>
> **Автоматическая установка Ollama:**
> - **Windows**: Через winget или скачивание установщика
> - **Linux**: Портативная установка в ~/.local/bin (без sudo) или стандартная установка
> - **Mac**: Через официальный скрипт установки
> - Если автоматическая установка не сработает, будут показаны инструкции для ручной установки

### 🔧 Ручная настройка:
```bash
# Первый запуск с автоустановкой модели
offline-ai --setup --auto-install

# Или просто запустите - настройка произойдет автоматически
offline-ai
```

### 💬 Использование:
```bash
# Интерактивный режим
offline-ai

# Быстрый вопрос
offline-ai ask "Привет, как дела?"
```

## 📖 Использование

### Основные команды

```bash
# Интерактивный режим
offline-ai

# Задать вопрос
offline-ai ask "Объясни мне что такое Python"

# Показать историю
offline-ai history

# Очистить историю
offline-ai history --clear

# Управление настройками
offline-ai config context on     # включить память разговора
offline-ai config context off    # выключить память разговора
offline-ai config context status # показать статус памяти

offline-ai config stream on      # режим вывода в реальном времени
offline-ai config stream off     # режим ожидания полного ответа
offline-ai config stream status  # показать статус режима вывода

# Задать вопрос без контекста
offline-ai ask "Привет!" --no-context

# Управление моделями
offline-ai models                 # показать установленные модели
offline-ai models --recommended   # показать рекомендуемые модели
offline-ai models --demo          # загрузить рекомендуемую модель
offline-ai models --pull gemma2:2b # загрузить конкретную модель
offline-ai models --use gemma2:2b  # установить модель по умолчанию

# Показать статус системы
offline-ai status

# Полное удаление
offline-ai --delete                 # удалить offline-ai и Ollama
```

### Интерактивный режим

В интерактивном режиме доступны команды:
- `exit` или `quit` - выход
- `history` - показать историю
- `clear` - очистить экран
- `context on/off` - включить/выключить память разговора
- `stream on/off` - режим вывода в реальном времени
- `reset` - очистить память разговора

**🧠 Память разговора**: ИИ помнит предыдущие сообщения и может отвечать в контексте беседы.

## 🎨 Подсветка кода

offline-ai автоматически подсвечивает код в ответах ИИ:

- **Блоки кода** в тройных кавычках с указанием языка
- **Инлайн код** в одинарных кавычках
- **Нумерация строк** для больших блоков кода
- **Цветовые темы** (по умолчанию Monokai)

Пример:
```
Пользователь: Покажи пример функции на Python
ИИ: Вот простая функция:

```python
def hello_world(name):
    print(f"Привет, {name}!")
    return True
```

Эта функция принимает `name` и выводит приветствие.
```

## 🎯 Рекомендуемые модели

Для компьютеров с 8GB RAM:

| Модель | Размер | Контекст | Оптимально | Описание |
|--------|--------|----------|------------|----------|
| **llama3.2:3b** | ~2.0 GB | 128K | 8 сообщений | 🏆 Лучшее качество и производительность |
| **phi3:mini** | ~2.3 GB | 128K | 6 сообщений | От Microsoft, отличная для кода |
| **qwen2.5:3b** | ~2.0 GB | 32K | 8 сообщений | Новая модель от Alibaba, очень умная |
| **gemma2:2b** | ~1.4 GB | 8K | 6 сообщений | Компактная от Google |
| **llama3.2:1b** | ~1.3 GB | 128K | 4 сообщения | Для слабых ПК |

### 🏆 Рекомендуется **llama3.2:3b**
- Отличное соотношение качества и размера (~2.0 GB)
- Превосходное понимание русского языка
- Быстрая работа на Core i5 + 8GB RAM
- Хорошо работает с контекстом разговора

## ⚙️ Конфигурация

Файл конфигурации: `~/.offline-ai/config.yaml`

```yaml
ollama:
  base_url: "http://localhost:11434"
  model: "llama3.2:3b"
  timeout: 30

ui:
  max_history: 100
  show_timestamps: true
  color_scheme: "auto"

models:
  recommended:
    - "llama3.2:3b"
    - "phi3:mini" 
    - "gemma2:2b"
  auto_download: true
```

## 🔧 Установка Ollama

> 💡 **offline-ai попытается установить Ollama автоматически** при первом запуске!

### Если автоматическая установка не сработала:

#### Windows/Mac
Скачайте с [ollama.ai](https://ollama.ai)

#### Linux
```bash
# Без sudo (портативная установка)
mkdir -p ~/.local/bin
curl -L https://github.com/ollama/ollama/releases/latest/download/ollama-linux-amd64 -o ~/.local/bin/ollama
chmod +x ~/.local/bin/ollama
export PATH="$HOME/.local/bin:$PATH"

# Или стандартная установка (требует sudo)
curl -fsSL https://ollama.ai/install.sh | sh
```

#### Через пакетные менеджеры:
```bash
# Windows
winget install Ollama.Ollama

# macOS
brew install ollama

# Arch Linux
yay -S ollama
```

## 🐛 Решение проблем

### Автоматическая установка не работает
```bash
# Установите Ollama вручную:
# Windows: winget install Ollama.Ollama
# Linux/Mac: curl -fsSL https://ollama.ai/install.sh | sh

# Затем запустите настройку:
offline-ai --setup
```

### Ollama не запускается
```bash
# Запустите вручную
ollama serve

# Проверьте статус
offline-ai status
```

### Модель не найдена
```bash
# Загрузите модель
offline-ai models --pull llama3.2:3b

# Проверьте доступные модели
offline-ai models
```

### Мало памяти
Используйте более легкие модели:
```bash
offline-ai models --pull gemma2:2b
offline-ai models --use gemma2:2b
```

## �️ Удаление

Для полного удаления offline-ai и Ollama:

```bash
offline-ai --delete
```

**Это удалит:**
- Пакет offline-ai
- Ollama и все модели
- Все конфигурации и данные
- Историю разговоров

⚠️ **Внимание:** Это действие необратимо!

## �📝 Лицензия

MIT License

## 🤝 Вклад в проект

Приветствуются pull requests и issues!

## 📞 Поддержка

Если у вас есть вопросы или проблемы, создайте issue в репозитории.