Skip to content

cmpdchtr/urbanAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

urbanAI - CLI для керування локальними великими мовними моделями

Мультиплатформове програмне забезпечення для зручного керування та взаємодії з великими мовними моделями в офлайн-режимі

Python License Ollama

📋 Зміст

🎯 Про проєкт

urbanAI - це командний інтерфейс (CLI) для зручної роботи з локальними великими мовними моделями через платформу Ollama. Проєкт створений як частину науково-дослідної роботи для МАН (Мала академія наук України).

Чому urbanAI?

  • 100% офлайн - всі дані залишаються на вашому комп'ютері
  • 🔓 Open Source - відкритий вихідний код, прозорість та безпека
  • 🚀 Автоматизація - унікальна система "Плани" для складних завдань
  • 💻 Мультиплатформовість - працює на Windows, macOS та Linux
  • 🆓 Безкоштовно - без підписок та прихованих платежів

✨ Ключові функції

1. Інтерактивний чат з ШІ

  • Діалог з різними мовними моделями в реальному часі
  • Потокова генерація тексту (streaming)
  • Збереження історії розмов

2. Керування моделями

  • Перегляд списку встановлених моделей
  • Швидке перемикання між моделями
  • Інформація про розмір та характеристики моделей

3. Система автоматизації "Плани" 🎯

Унікальна функція, яка дозволяє створювати багатоетапні сценарії роботи:

  • Читання файлів
  • Послідовні запити до ШІ
  • Трансформація тексту
  • Збереження результатів

4. Експорт даних

  • Збереження розмов у текстовий формат
  • Експорт результатів виконання планів

📦 Встановлення

Крок 1: Встановлення Ollama

Спочатку встановіть Ollama з офіційного сайту:

macOS та Linux:

curl -fsSL https://ollama.com/install.sh | sh

Windows: Завантажте інсталятор з ollama.com

Крок 2: Завантаження моделі

# Рекомендована легка модель для початку
ollama pull llama3.2:3b

# Або більш потужна модель (потребує більше ОЗП)
ollama pull llama3:8b

Крок 3: Встановлення urbanAI

# Клонування репозиторію (або завантаження файлів)
git clone https://github.com/yourusername/urbanAI.git
cd urbanAI

# Встановлення залежностей
pip install ollama

# Або через requirements.txt
pip install -r requirements.txt

Крок 4: Запуск Ollama

У окремому терміналі запустіть 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}"
    }
  ]
}

Типи кроків

  1. file_read - Читання файлу

    {
      "type": "file_read",
      "file": "шлях/до/файлу.txt",
      "output": "назва_змінної"
    }
  2. ai_query - Запит до ШІ

    {
      "type": "ai_query",
      "model": "llama3.2:3b",
      "prompt": "Твій запит тут. Можна використати {змінні}",
      "output": "результат"
    }
  3. file_write - Запис у файл

    {
      "type": "file_write",
      "file": "output.txt",
      "content": "Текст або {змінна}"
    }
  4. text_transform - Трансформація тексту

    {
      "type": "text_transform",
      "operation": "combine",
      "inputs": ["змінна1", "змінна2"],
      "output": "результат"
    }

💡 Приклади

Приклад 1: Простий діалог

python urbanai.py
💬 Ви: Що таке великі мовні моделі?
🤖 llama3.2:3b:
Великі мовні моделі (LLM) - це тип штучного інтелекту...

Приклад 2: Аналіз документа

Створіть файл 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

Приклад 3: Генерація контенту

{
  "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+ ГБ

Споживання ресурсів

Сам додаток urbanAI:

  • Режим очікування: ~20-30 МБ ОЗП
  • Активна генерація: ~50-80 МБ ОЗП

З моделями (Ollama + модель):

Модель ОЗП 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
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!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages