Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

AltStyle によって変換されたページ (->オリジナル) /