Natural Language → Backend/DevOps Configuration
Ten projekt demonstruje jak NLP2CMD może służyć jako inteligentna warstwa backend/DevOps, konfigurując aplikacje webowe za pomocą poleceń w języku naturalnym.
Zamiast ręcznie pisać pliki konfiguracyjne (docker-compose, .env, Dockerfile), użytkownik wydaje polecenia w języku naturalnym:
"Uruchom serwis czatu na porcie 8080 z Redis jako backend"
"Skonfiguruj email dla jan@gmail.com"
"Skaluj aplikację do 3 instancji"
NLP2CMD parsuje te polecenia i automatycznie:
nlp2cmd-web-examples/
├── demo.py # Główny skrypt demonstracyjny
├── shared/
│ └── nlp2cmd_web_controller.py # Kontroler NLP2CMD
├── communicator/ # Przykład 1: Chat
│ ├── chat_example.py
│ ├── docker-compose.yml
│ ├── chat-backend/
│ └── chat-frontend/
├── contact-page/ # Przykład 2: Kontakt
│ ├── contact_example.py
│ ├── docker-compose.yml
│ ├── contact-backend/
│ └── contact-frontend/
└── email-client/ # Przykład 3: Email
├── email_example.py
├── docker-compose.yml
├── email-backend/
└── email-frontend/
cd examples/devops
python demo.py
Pozwala wydawać polecenia w języku naturalnym i obserwować generowaną konfigurację.
# Przykład 1: Komunikator
python demo.py --example 1
cd communicator
docker-compose up --build
# Przykład 2: Strona Kontaktu
python demo.py --example 2
cd contact-page
docker-compose up --build
# Przykład 3: Klient Email
python demo.py --example 3
cd email-client
docker-compose up --build
# Wszystkie przykłady
python demo.py --example all
Polecenia NLP:
Technologie:
Porty:
Polecenia NLP:
Technologie:
Porty:
Polecenia NLP:
Technologie:
Porty:
┌─────────────────────────────────────────────────────────────┐
│ Frontend (React) │
└─────────────────────────────┬───────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ NLP2CMD Control Plane │
│ ┌───────────┐ ┌───────────┐ ┌─────────────────────────┐ │
│ │ Parser │→ │ Router │→ │ Docker/K8s Adapters │ │
│ └───────────┘ └───────────┘ └─────────────────────────┘ │
└─────────────────────────────┬───────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Backend │ │ Database │ │ Cache │
│ (FastAPI) │ │ (PostgreSQL)│ │ (Redis) │
└─────────────┘ └─────────────┘ └─────────────┘
Każdy przykład zawiera plik .env.example z wymaganymi zmiennymi:
# Skopiuj i edytuj
cp .env.example .env
nano .env
Dla integracji z Gmail (kontakt, email client):
.env (git-ignored)Ten projekt demonstruje integrację z głównym projektem NLP2CMD:
from nlp2cmd_web_controller import NLP2CMDWebController
controller = NLP2CMDWebController()
# Wykonaj polecenie w języku naturalnym
result = await controller.execute(
"Uruchom serwis czatu na porcie 8080 z Redis"
)
# Wynik zawiera wygenerowaną konfigurację
print(result['docker_compose']) # docker-compose.yml
print(result['config']) # zmienne środowiskowe
Aby dodać nowy typ usługi:
NLCommandParser.SERVICE_KEYWORDSNLP2CMDWebController.templatesMIT License - zobacz główny projekt NLP2CMD.