Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 LocalScript AI Agent (MWS Octapi)

MWS_LocalScript.mp4

Локальная автономная агентская система для генерации, валидации и итеративного улучшения Lua-скриптов под платформу LowCode.

Решение создано строго в рамках технических ограничений хакатона. Оно полностью изолировано (работает без интернета), не использует внешние API (OpenAI/Anthropic) и гарантирует безопасность контура.

🏆 Ключевые преимущества

  1. Многоуровневая валидация (LangGraph) Мы реализовали полноценный инженерный цикл:

    • Уровень 1 (Синтаксис): Проверка через luac -p.
    • Уровень 2 (Логика и Среда): Статический анализ через luacheck. Мы обучили линтер специфике LowCode платформы (разрешены глобальные переменные wf, _utils).
    • Self-Reflection: Если линтер находит ошибку (например, попытку создать запрещенную глобальную функцию), LangGraph автоматически возвращает лог ошибки в LLM для исправления (до 3 итераций).
  2. Stateless память и итеративная доработка Бэкенд не использует тяжелые базы данных для хранения сессий, экономя память и CPU. «Память» агента реализована на стороне клиента (Context API). Если юзер просит: "добавь в эту функцию проверку на ноль", система передает предыдущий код в поле context, и агент бесшовно дорабатывает его.

  3. Легковесный smart RAG (база знаний) Вместо тяжелых векторных БД мы написали алгоритм умного скоринга по тегам (Keyword Scoring). Шаблоны из templates.json инжектятся в LLM через строгие XML-теги (<instruction>, <template>). Это позволяет модели писать сложный код (например, конвертацию ISO 8601), не превышая жесткий лимит в 256 токенов.

  4. Защита от галлюцинаций (уточняющие вопросы) Если запрос неоднозначен или юзер просит доработать код, но не прикрепил его, системный промпт жестко блокирует "фантазию" модели. Агент возвращает уточняющий вопрос в виде валидного Lua-комментария (-- Пожалуйста, уточните...).


⚙️ Технические требования

Система оптимизирована для работы на GPU с ограничением ≤ 8.0 GB VRAM.

  • Модель: qwen2.5-coder:7b (4-bit квантизация, идеальный баланс качества и веса)
  • Движок: Ollama
  • Строгие параметры генерации: num_ctx=4096, num_predict=256
  • Параметры Ollama: OLLAMA_NUM_PARALLEL=1, OLLAMA_MAX_QUEUE=1 (настроено в окружении)
  • Потребление VRAM: ~6.2 GB в пике (укладывается в лимит nvidia-smi)

🚀 Быстрый запуск

Все зависимости, окружение, утилиты (luac, luacheck) и сам запуск упакованы в Docker.

  1. Клонируйте репозиторий и выполните команду:
    docker-compose up --build -d

Примечание: При первом запуске скрипт автоматически выполнит ollama pull qwen2.5-coder:7b внутри контейнера. Никаких ручных действий не требуется.

  1. Откройте удобный UI-интерфейс в браузере: http://localhost:8080

📡 API Контракт

Система полностью поддерживает baseline-контракт организаторов с аккуратным расширением для поддержки итераций (опциональное поле context).

📂 Структура проекта

  • app/agent.py - мозг системы (LangGraph, промпты, RAG, валидация)
  • app/main.py - fastAPI роутер (OpenAPI спецификация)
  • app/templates/templates.json - локальная база знаний LowCode паттернов
  • app/index.html - легковесный клиент с поддержкой памяти сессий
  • Dockerfile / docker-compose.yml - инфраструктура

About

Локальная агентная система для работы с lua кодом

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages