Sign inSign up

msgcg/lua_generator_web

By msgcg

•Updated 5 months ago

локальный ии генератор Lua кода на django

Image
Machine learning & AI
Developer tools
Web servers
0

170

msgcg/lua_generator_web repository overview

⁠LuaAI

Агентская система для генерации Lua-кода на базе локальных LLM

LuaAI — это автономная система с мульти-агентным подходом, которая генерирует, валидирует и выполняет Lua-код. Все вычисления происходят локально на вашем компьютере без отправки данных во внешние сервисы.

⁠🚀 Возможности

⁠🤖 Агентская система
  • 🎯 Coordinator — анализирует задачу и распределяет работу между агентами
  • 🔨 Builder — создаёт новые файлы с кодом
  • ✏️ Editor — редактирует и оптимизирует существующий код
  • ✅ Tester — валидирует код и запускает тесты
  • ❔ Clarifier — задает уточняющие вопросы, если необходимо
⁠📝 Генерация и валидация
  • AI Генерация — генерация Lua-кода с помощью локальных LLM (Gemma, Phi-3.5, Qwen2.5, DeepSeek-Coder)
  • Валидация — проверка синтаксиса через luajit/luac
  • Песочница — безопасное выполнение кода в изолированной среде
  • История — все запросы и результаты сохраняются в контексте сессии
⁠💾 Работа с файлами
  • Загрузка файлов — прикрепление файлов различных форматов (.py, .lua, .txt, .xlsx, .docx, .pdf)
  • IDE редактор — встроенный редактор кода с подсветкой синтаксиса
  • Древовидная структура — управление файлами и папками в рабочей области
  • Управление — создание, переименование, удаление файлов и папок
⁠💬 Интерфейс
  • Виджеты сессий — каждый запрос отображается в отдельном виджете с историей выполнения
  • История запросов — агенты видят предыдущие запросы при генерации
  • Настройки модели — выбор модели и параметров генерации
  • Поиск файлов — быстрый поиск по рабочей области

⁠⚙ Требования

  • Python: 3.11+ (тестировалось и создавалось на 3.12 и 3.14.3)
  • ОС: Windows 10/11 (64-bit)
  • Docker: Docker Desktop для Windows (WSL2 backend)
  • RAM: минимум 8 ГБ
  • Диск: минимум 10 ГБ свободного места
  • Модель: GGUF формат в папке models/
    • Gemma-4-E2B-it (~3GB) — модель по умолчанию
    • Phi-3.5-mini (~2.2GB) — быстрая
    • Qwen2.5-Coder-3B (~2GB) — сбалансированная
    • DeepSeek-Coder-6.7B (~4GB) — точная
  • GPU: опционально, NVIDIA с CUDA для ускорения инференса

⁠📦 Установка

⁠Docker (рекомендуется)
⁠1. Подготовка Docker Desktop

Перед запуском убедитесь:

  1. Docker Desktop запущен и использует WSL2 backend
  2. Папка C:\Users существует и доступна
  3. File Sharing настроен:
    • Откройте Docker Desktop → Settings → Resources → File Sharing
    • Убедитесь, что C:\Users (или C:\) добавлен в список разрешённых путей
    • Если нет — добавьте и нажмите Apply
⁠2. Запуск
docker run -d -p 8080:8080 msgcg/lua_generator_web:latest

Доступ:

⁠Запуск установленных по умолчанию моделей в Ollama
ollama run gemma4:e2b #установлена по умолчанию в проекте
ollama run deepseek-coder:6.7b-instruct-q4_K_M
ollama run phi3.5:3.8b-mini-instruct-q4_0
ollama run qwen2.5-coder:3b-instruct-q4_K_M

⁠ВНИМАНИЕ!

В репозитории отсутствуют модели, вам необходимо загрузить их в папку /models вручуную, если вы не используете запуск через Docker образ.
⁠Ссылки для скачивания:

https://huggingface.co/TheBloke/deepseek-coder-6.7B-instruct-GGUF/resolve/main/deepseek-coder-6.7b-instruct.Q4_K_M.gguf⁠ - переименовать в deepseek-coder-6.7b-instruct.Q4_K_M.gguf

https://huggingface.co/itlwas/Qwen2.5-Coder-3B-Instruct-Q4_K_M-GGUF/resolve/main/qwen2.5-coder-3b-instruct-q4_k_m.gguf⁠ - переименовать в Qwen2.5-Coder-3B-Instruct-Q4_K_M.gguf

https://huggingface.co/bartowski/Phi-3.5-mini-instruct-GGUF/resolve/main/Phi-3.5-mini-instruct-Q4_K_M.gguf⁠ - переименовать в phi-3.5-mini-instruct-q4.gguf

https://huggingface.co/unsloth/gemma-4-E2B-it-GGUF/resolve/main/gemma-4-E2B-it-Q4_K_M.gguf⁠ - переименовать в gemma-4-E2B-it-Q4_K_M.gguf


⁠Полезные команды
# Вход в контейнер
docker compose exec web bash

# Создание суперпользователя
docker compose exec web python3 manage.py createsuperuser

# Миграции
docker compose exec web python3 manage.py migrate

# Просмотр логов
docker compose logs -f

# Пересборка без кэша
docker compose build --no-cache
⁠Локальная разработка (Python)
# Создание виртуального окружения
python -m venv .venv
.venv\Scripts\activate

# Установка зависимостей
pip install -r requirements.txt

# Миграции
python manage.py migrate

# Запуск
python manage.py runserver

Для локального запуска нужен Lua:

  • Скачайте Lua с lua.org⁠ или LuaJIT⁠
  • Или используйте lua_runtime/ с бинарниками

⁠📖 Как это работает

⁠1. Запуск агентов
  1. Введите задачу в поле ввода (например, "создай функцию умножения")
  2. Нажмите "Запустить агентов" или Enter
  3. Coordinator анализирует задачу и выбирает нужных агентов
  4. Агенты выполняют задачу последовательно или параллельно
  5. Результат отображается в виджете сессии
⁠2. Работа с файлами
  • Создание файла: Кнопка Ξ в дереве файлов
  • Создание папки: Кнопка с папкой в дереве файлов
  • Открытие файла: Клик по файлу в дереве
  • Редактирование: Изменения в IDE сохраняются по кнопке или сочетанию клавиш (Ctrl+S)
  • Валидация: Кнопка "Валидация"
  • Запуск: Кнопка "Запуск"
⁠3. История запросов

Агенты видят последние 5 запросов пользователя, что позволяет:

  • Создавать код на основе предыдущих решений
  • Модифицировать существующие файлы с учётом контекста
  • Избегать дублирования кода

⁠🏗 Структура проекта

lua_generator_web/
├── .venv/                          # Виртуальное окружение Python (локальная разработка)
├── .vscode/                        # Настройки VS Code
├── docker-compose.windows.yml      # Docker Compose (Windows)
├── Dockerfile.windows              # Docker образ (Windows)
├── generator/                      # Django приложение
│   ├── management/                 # Management команды
│   ├── migrations/                 # Миграции БД
│   ├── services/                   # Бизнес-логика
│   │   ├── agents/                 # Агентская система
│   │   ├── file_parser.py          # Парсинг файлов
│   │   ├── generation_manager.py   # Менеджер генераций
│   │   ├── llm_service.py          # LLM сервис
│   │   └── lua_validator.py        # Валидация Lua
│   ├── admin.py                    # Django админка
│   ├── models.py                   # Модели данных
│   ├── urls.py                     # URL маршруты
│   ├── views.py                    # Views и API
│   ├── views_ide.py                # IDE endpoints
│   └── views_filemanager.py        # Файловый менеджер
├── lua_generator/                  # Настройки Django
│   ├── __init__.py
│   ├── settings.py                 # Настройки
│   ├── urls.py                     # Корневые URL
│   └── wsgi.py                     # WSGI
├── lua_mcp_server/                 # MCP сервер
├── lua_runtime/                    # Lua интерпретатор
│   ├── lua55.exe                   # Интерпретатор
│   └── luac55.exe                  # Компилятор
├── media/                          # Загруженные файлы
│   └── attachments/                # Рабочие области
├── models/                         # LLM модели
├── scripts/                        # PowerShell скрипты
├── static/                         # Статика
├── templates/                      # Шаблоны
├── .env                            # Переменные окружения
├── .env.example                    # Пример окружения
├── .gitignore                      # Git игнор
├── db/
│   └── db.sqlite3                  # База данных (сохраняется в volume)
├── manage.py                       # Django CLI
├── README.md                       # Этот файл
└── requirements.txt                # Зависимости

⁠⚙ Настройки

⁠Выбор модели

См. MODELS.md⁠

Кратко: в настройках чата выберите модель:

  • 💎 Gemma-4-E4B — модель по умолчанию (рекомендуется)
  • ⚡ Phi-3.5-mini — быстрая генерация
  • 🔷 Qwen2.5-Coder-3B — сбалансированная
  • 🌊 DeepSeek-Coder-6.7B — точная генерация
⁠Параметры генерации
ПараметрДиапазонПо умолчаниюОписание
Температура0.1-0.30.3Баланс креативности/точности
Макс. токены256-40962048Ограничение длины ответа
Top-p0.0-1.00.9Разнообразие токенов
⁠Логирование

См. LOGGING.md⁠

Кратко:

# Для разработки
DEBUG=True
LOG_LEVEL=DEBUG

# Для production
DEBUG=False
LOG_LEVEL=WARNING  # или ERROR

⁠🔌 API Endpoints

⁠Генерация кода
МетодURLОписание
POST/generate/Сгенерировать Lua-код по текстовому описанию

Пример запроса:

{
  "prompt": "Из полученного списка email получи последний"
}

Пример ответа:

{
  "code": "lua{return wf.vars.emails[#wf.vars.emails]}lua"
}
⁠Агенты
МетодURLОписание
POST/api/chats/<id>/agents/start/Запустить агентов
GET/api/chats/<id>/agents/logs/Получить логи агентов
⁠IDE
МетодURLОписание
GET/ide/<chat_id>/Открыть IDE
GET/api/ide/<id>/files/Получить дерево файлов
GET/api/ide/<id>/file/Читать файл
POST/api/ide/<id>/file/save/Сохранить файл
POST/api/ide/<id>/file/create/Создать файл/папку
DELETE/api/ide/<id>/file/delete/Удалить файл/папку
POST/api/ide/<id>/file/rename/Переименовать
POST/api/ide/<id>/validate/Валидировать Lua
POST/api/ide/<id>/run/Запустить Lua
⁠Чаты
МетодURLОписание
POST/api/chats/create/Создать чат
POST/api/chats/<id>/delete/Удалить чат
PUT/api/chats/<id>/settings/Обновить настройки

⁠🛠 Технологии

КомпонентТехнология
BackendDjango 4.2+
LLMllama-cpp-python
АгентыМульти-агентная система
FrontendHTML, CSS, Vanilla JS
База данныхSQLite / PostgreSQL
Парсингopenpyxl, python-docx, pdfplumber
LuaLua 5.5

⁠🔧 Команды разработки

# Запуск сервера
python manage.py runserver

# Применение миграций
python manage.py migrate

# Создание миграций
python manage.py makemigrations

# Создание суперпользователя
python manage.py createsuperuser

# Сбор статики
python manage.py collectstatic

⁠🔒 Безопасность

  • ✅ Все вычисления локально
  • ✅ CSRF защита
  • ✅ Песочница с таймаутом
  • ✅ Ограничение памяти для песочницы

⁠👥 Целевая аудитория

  • Инженеры по генеративному ИИ
  • Бэкэнд-разработчики
  • MLOps инженеры
  • DevOps инженеры

Tag summary

Content type

Image

Digest

sha256:878bea38e…

Size

17.3 GB

Last updated

5 months ago

docker pull msgcg/lua_generator_web