LocalScript — это AI-решение для LowCode-платформы (MWS Octapi), работающее полностью в закрытом контуре. Оно переводит задачи с естественного языка в готовый к использованию Lua-скрипт, опираясь на корпоративную базу знаний и строгие правила синтаксиса.
- Модель:
qwen2.5-coder:7b-instruct(квантованная, загружается локально). - Параметры запуска Ollama (фиксированные):
num_ctx=4096, num_predict=512, batch=1, parallel=1. - Потребление ресурсов: Вся генерация выполняется на GPU (без CPU offload). Пиковое потребление ≤ 8.0 GB VRAM. Эмбеддинги (FastEmbed) и векторная БД (Qdrant) вынесены на CPU.
- Внешние API: Полностью отсутствуют.
- Docker & Docker Compose
- NVIDIA GPU (8 GB VRAM) + NVIDIA Container Toolkit
-
Клонируйте репозиторий.
-
Поднимите инфраструктуру (модель скачается автоматически на этапе инициализации):
docker compose up --build
-
⏳ ВАЖНО: При первом запуске сервис
initвыполнитollama pull qwen2.5-coder:7b-instructи загрузит базу знаний в Qdrant. Бэкенд API будет доступен только после того, как в консоли появится ASCII-артLocal Script.
Чтобы жюри могло проверить качество генерации, мы написали локальный эмулятор песочницы MWS. Выберите сценарий:
👉 Демонстрация 1: Работа эндпоинта /generate (Single-shot)
👉 Демонстрация 2: Продуктовая задача через Human-in-the-Loop (Chat UI)
Система построена на базе 4 "агентов", управляемых чистым Python-бэкендом без тяжеловесных фреймворков вроде LangChain:
- 🧐 Аналитик: Проверяет запрос. Если ТЗ неполное, задает пользователю уточняющий вопрос.
- 📚 RAG-модуль: Ищет релевантные примеры скриптов в локальной БД
Qdrant(векторизация на CPU). - 💻 Кодер (
Qwen2.5-Coder): Пишет код строго поLUA_BEST_PRACTICES. - 🛠 Фиксер + Чекер: Python прогоняет код через локальный компилятор
luac. При ошибке Фиксер чинит баг в цикле. Пользователь получает только 100% рабочий синтаксис.
Вся логика вынесена в папку prompts/. Меняйте поведение системы "на лету":
agents.json— Системные промпты агентов.LUA_BEST_PRACTICES.md— Жесткие правила (запреты, работа сwf.vars).examples.json— База данных для RAG. При рестарте контейнеров автоматически векторизуется.
