локальный ии генератор Lua кода на django
170
Агентская система для генерации Lua-кода на базе локальных LLM
LuaAI — это автономная система с мульти-агентным подходом, которая генерирует, валидирует и выполняет Lua-код. Все вычисления происходят локально на вашем компьютере без отправки данных во внешние сервисы.
models/
Перед запуском убедитесь:
C:\Users существует и доступнаC:\Users (или C:\) добавлен в список разрешённых путейdocker run -d -p 8080:8080 msgcg/lua_generator_web:latest
Доступ:
C:\Users на хосте привязана к /host_users в контейнере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 -m venv .venv
.venv\Scripts\activate
# Установка зависимостей
pip install -r requirements.txt
# Миграции
python manage.py migrate
# Запуск
python manage.py runserver
Для локального запуска нужен Lua:
Агенты видят последние 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
Кратко: в настройках чата выберите модель:
| Параметр | Диапазон | По умолчанию | Описание |
|---|---|---|---|
| Температура | 0.1-0.3 | 0.3 | Баланс креативности/точности |
| Макс. токены | 256-4096 | 2048 | Ограничение длины ответа |
| Top-p | 0.0-1.0 | 0.9 | Разнообразие токенов |
См. LOGGING.md
Кратко:
# Для разработки
DEBUG=True
LOG_LEVEL=DEBUG
# Для production
DEBUG=False
LOG_LEVEL=WARNING # или ERROR
| Метод | 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/ | Получить логи агентов |
| Метод | 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/ | Обновить настройки |
| Компонент | Технология |
|---|---|
| Backend | Django 4.2+ |
| LLM | llama-cpp-python |
| Агенты | Мульти-агентная система |
| Frontend | HTML, CSS, Vanilla JS |
| База данных | SQLite / PostgreSQL |
| Парсинг | openpyxl, python-docx, pdfplumber |
| Lua | Lua 5.5 |
# Запуск сервера
python manage.py runserver
# Применение миграций
python manage.py migrate
# Создание миграций
python manage.py makemigrations
# Создание суперпользователя
python manage.py createsuperuser
# Сбор статики
python manage.py collectstatic
Content type
Image
Digest
sha256:878bea38e…
Size
17.3 GB
Last updated
5 months ago
docker pull msgcg/lua_generator_web