Мультиплатформове програмне забезпечення для зручного керування та взаємодії з великими мовними моделями в офлайн-режимі
urbanAI - це командний інтерфейс (CLI) для зручної роботи з локальними великими мовними моделями через платформу Ollama. Проєкт створений як частину науково-дослідної роботи для МАН (Мала академія наук України).
- ✅ 100% офлайн - всі дані залишаються на вашому комп'ютері
- 🔓 Open Source - відкритий вихідний код, прозорість та безпека
- 🚀 Автоматизація - унікальна система "Плани" для складних завдань
- 💻 Мультиплатформовість - працює на Windows, macOS та Linux
- 🆓 Безкоштовно - без підписок та прихованих платежів
- Діалог з різними мовними моделями в реальному часі
- Потокова генерація тексту (streaming)
- Збереження історії розмов
- Перегляд списку встановлених моделей
- Швидке перемикання між моделями
- Інформація про розмір та характеристики моделей
Унікальна функція, яка дозволяє створювати багатоетапні сценарії роботи:
- Читання файлів
- Послідовні запити до ШІ
- Трансформація тексту
- Збереження результатів
- Збереження розмов у текстовий формат
- Експорт результатів виконання планів
Спочатку встановіть Ollama з офіційного сайту:
macOS та Linux:
curl -fsSL https://ollama.com/install.sh | shWindows: Завантажте інсталятор з ollama.com
# Рекомендована легка модель для початку
ollama pull llama3.2:3b
# Або більш потужна модель (потребує більше ОЗП)
ollama pull llama3:8b# Клонування репозиторію (або завантаження файлів)
git clone https://github.com/yourusername/urbanAI.git
cd urbanAI
# Встановлення залежностей
pip install ollama
# Або через requirements.txt
pip install -r requirements.txtУ окремому терміналі запустіть Ollama сервер:
ollama serveНайпростіший спосіб почати роботу:
python urbanai.pyУ інтерактивному режимі доступні команди:
/models- показати доступні моделі/switch- змінити модель/clear- очистити історію розмови/save- зберегти розмову у файл/quit- вийти з програми
Показати список моделей:
python urbanai.py --modelsШвидкий запит:
python urbanai.py --chat "Поясни, що таке штучний інтелект"Вибір конкретної моделі:
python urbanai.py --model llama3:8b --chat "Привіт!"Виконання плану:
python urbanai.py --plan my_plan.jsonСтворення прикладу плану:
python urbanai.py --create-sampleПлани - це JSON-файли, які описують послідовність дій для автоматизації складних завдань.
{
"name": "Назва плану",
"description": "Опис того, що робить план",
"steps": [
{
"type": "file_read",
"file": "input.txt",
"output": "text_content"
},
{
"type": "ai_query",
"model": "llama3.2:3b",
"prompt": "Проаналізуй цей текст: {text_content}",
"output": "analysis"
},
{
"type": "file_write",
"file": "result.txt",
"content": "{analysis}"
}
]
}-
file_read - Читання файлу
{ "type": "file_read", "file": "шлях/до/файлу.txt", "output": "назва_змінної" } -
ai_query - Запит до ШІ
{ "type": "ai_query", "model": "llama3.2:3b", "prompt": "Твій запит тут. Можна використати {змінні}", "output": "результат" } -
file_write - Запис у файл
{ "type": "file_write", "file": "output.txt", "content": "Текст або {змінна}" } -
text_transform - Трансформація тексту
{ "type": "text_transform", "operation": "combine", "inputs": ["змінна1", "змінна2"], "output": "результат" }
python urbanai.py💬 Ви: Що таке великі мовні моделі?
🤖 llama3.2:3b:
Великі мовні моделі (LLM) - це тип штучного інтелекту...
Створіть файл analyze_plan.json:
{
"name": "Аналіз статті",
"description": "Читає статтю, виділяє ключові ідеї та створює резюме",
"steps": [
{
"type": "file_read",
"file": "article.txt",
"output": "article_text"
},
{
"type": "ai_query",
"model": "llama3.2:3b",
"prompt": "Виділи 5 найважливіших ідей з цього тексту:\n\n{article_text}",
"output": "key_ideas"
},
{
"type": "ai_query",
"model": "llama3.2:3b",
"prompt": "На основі цих ідей напиши коротке резюме (3-4 речення):\n\n{key_ideas}",
"output": "summary"
},
{
"type": "file_write",
"file": "summary.txt",
"content": "=== КЛЮЧОВІ ІДЕЇ ===\n\n{key_ideas}\n\n=== РЕЗЮМЕ ===\n\n{summary}"
}
]
}Виконайте:
python urbanai.py --plan analyze_plan.json{
"name": "Генератор статей",
"description": "Створює статтю за темою",
"steps": [
{
"type": "ai_query",
"model": "llama3.2:3b",
"prompt": "Створи план статті на тему 'Переваги локального ШІ'. Виведи 5 розділів.",
"output": "outline"
},
{
"type": "ai_query",
"model": "llama3.2:3b",
"prompt": "Напиши повну статтю на основі цього плану:\n\n{outline}",
"output": "article"
},
{
"type": "file_write",
"file": "generated_article.md",
"content": "{article}"
}
]
}- ОС: Windows 10+, macOS 12+, Ubuntu 20.04+
- ОЗП: 8 ГБ (для моделей 3B параметрів)
- Вільне місце: 5-10 ГБ (залежно від моделей)
- Python: 3.8 або новіше
- ОЗП: 16 ГБ або більше
- GPU: NVIDIA з підтримкою CUDA (опціонально, для прискорення)
- Вільне місце: 20+ ГБ
- Режим очікування: ~20-30 МБ ОЗП
- Активна генерація: ~50-80 МБ ОЗП
| Модель | ОЗП | VRAM (GPU) |
|---|---|---|
| Llama 3.2 3B | ~4-5 ГБ | ~3 ГБ |
| Mistral 7B | ~8-10 ГБ | ~6 ГБ |
| Llama 3 8B | ~10-12 ГБ | ~7 ГБ |
# Легкі моделі (швидкі, підходять для слабких ПК)
ollama pull llama3.2:3b
ollama pull phi3:3.8b
# Середні моделі (баланс швидкості та якості)
ollama pull mistral:7b
ollama pull llama3:8b
# Великі моделі (найкраща якість, потребують потужного ПК)
ollama pull llama3:70b
ollama pull mixtral:8x7b# Перевірте, чи встановлено Ollama
ollama --version
# Запустіть сервер вручну
ollama serve# Переконайтесь, що модель завантажена
ollama list
# Завантажте потрібну модель
ollama pull llama3.2:3b- Використовуйте менші моделі (3B параметрів)
- Закрийте інші програми для звільнення ОЗП
- За наявності GPU переконайтесь, що драйвери NVIDIA оновлені
Баранчук Дмитро Володимирович
- Учень 9 класу Броварського ліцею "Мономакс"
- м. Бровари, Київська область, Україна
- Науковий керівник: Магеря Марина Володимирівна
Цей проєкт розповсюджується під ліцензією MIT. Детальніше див. у файлі LICENSE.
- Команді Ollama за чудову платформу
- Спільноті Open Source за відкриті мовні моделі
- Meta AI (Llama), Mistral AI та іншим за створення потужних моделей
- Графічний інтерфейс (GUI) на базі Electron
- Розширення системи "Плани" (веб-скрапінг, API-запити)
- Паралельне виконання кроків у планах
- Бібліотека готових шаблонів
- Інтеграція української мовної моделі
Зроблено з ❤️ в Україні 🇺🇦
Якщо проєкт був корисним, поставте зірку ⭐ на GitHub!