Evopy to kompleksowy, ale minimalny system asystenta, który jest w stanie ewoluować z prostego skryptu konsolowego do pełnego środowiska z wieloma piaskownicami Docker. Asystent wspiera konwersję tekstu na kod Python i zarządzanie projektami w kontenerach Docker.
| Sekcja | Opis |
|---|---|
| 📊 Raporty testów | Raporty porównawcze modeli LLM |
| 🧪 Instrukcja testowania | Dokumentacja systemu testowego |
| 🏗️ Architektura piaskownic | Opis architektury piaskownic Docker |
| 💻 Umiejętności programistyczne | Lista umiejętności junior programisty |
| 📝 Wytyczne projektu | Wytyczne rozwoju projektu |
| 🖥️ Wsparcie cross-platform | Informacje o wsparciu dla różnych systemów |
| 📊 Testy diagramów Mermaid | Przykłady diagramów Mermaid |
System został zaprojektowany w oparciu o architekturę ewolucyjną, która rozwija się w miarę użytkowania:

flowchart TB
subgraph "Faza 1: Start"
SinglePython["Pojedynczy skrypt Python"] --> |"Instalacja i sprawdzenie zależności"| ModelInit["Inicjalizacja modelu DeepSeek w Ollama"]
end
subgraph "Faza 2: Rozwój podstawowych funkcji"
ModelInit --> |"Interakcja z użytkownikiem"| ConversationManagement["Zarządzanie konwersacjami (historia, wątki)"]
ConversationManagement --> |"Wykrywanie wzorców w odpowiedziach modelu"| CodeExtraction["Ekstrakcja i zarządzanie kodem (Python, YAML)"]
end
subgraph "Faza 3: Integracja z Dockerem"
CodeExtraction --> |"Generowanie plików Docker Compose"| DockerProjects["Zarządzanie projektami Docker Compose"]
DockerProjects --> |"Uruchamianie i zarządzanie kontenerami"| SandboxEnvironments["Środowiska piaskownicowe dla projektów"]
end
subgraph "Faza 4: Automatyzacja i ewolucja"
SandboxEnvironments --> |"Uczenie się na podstawie interakcji z użytkownikiem"| SkillAcquisition["Nabywanie nowych umiejętności"]
SkillAcquisition --> |"Rozbudowa infrastruktury"| MultipleSandboxes["Wiele niezależnych piaskownic dla różnych wątków konwersacji"]
MultipleSandboxes --> |"Integracja z zewnętrznymi API"| APIIntegration["Integracja z zewnętrznymi usługami i API"]
end
SinglePython -.-> SkillAcquisition
classDef phase1 fill:#f9f9f9,stroke:#333,stroke-width:1px,color:#111
classDef phase2 fill:#e3f2fd,stroke:#1976d2,stroke-width:1px,color:#111
classDef phase3 fill:#e8f5e9,stroke:#388e3c,stroke-width:1px,color:#111
classDef phase4 fill:#fff8e1,stroke:#ffa000,stroke-width:1px,color:#111
evopy/
├── main.py # Główny punkt wejścia do aplikacji
├── text2python.py # Moduł konwersji tekstu na kod Python
├── python2text.py # Moduł konwersji kodu Python na opis tekstowy
├── docker_sandbox.py # Moduł zarządzania piaskownicami Docker
├── dependency_manager.py # Moduł zarządzania zależnościami i auto-naprawy importów
├── decision_tree.py # Moduł drzewa decyzyjnego do śledzenia procesu myślowego
├── test.sh # Skrypt testowy dla pojedynczego modelu
├── report.sh # Skrypt generujący raporty porównawcze dla wielu modeli
├── modules/ # Moduły funkcjonalne
│ ├── text2python/ # Moduł konwersji tekstu na kod Python
│ │ ├── __init__.py
│ │ ├── text2python.py
│ │ └── config.py
│ └── python2text/ # Moduł konwersji kodu Python na opis tekstowy
│ ├── __init__.py
│ ├── python2text.py
│ └── config.py
├── tests/ # Testy
│ ├── correctness/ # Testy poprawności
│ │ ├── correctness_test.py
│ │ └── results/
│ └── performance/ # Testy wydajności
│ ├── performance_test.py
│ └── results/
├── reports/ # Raporty porównawcze modeli
├── test_results/ # Wyniki testów
├── generated_code/ # Wygenerowany kod
├── docker/ # Pliki konfiguracyjne Docker
│ ├── Dockerfile
│ └── docker-compose.yml
├── config/ # Pliki konfiguracyjne
│ └── .env # Zmienne środowiskowe
├── docs/ # Dokumentacja
│ ├── project_guidelines.md # Wytyczne projektu
│ ├── junior_programmer_skills.md # Umiejętności junior programisty
│ ├── sandbox_architecture.md # Architektura piaskownic
│ └── TESTING.md # Dokumentacja systemu testowego
├── .venv/ # Wirtualne środowisko Python
└── README.md # Ten plik
Evopy zawiera zaawansowany system testowania i porównywania różnych modeli LLM:
Przykładowe użycie:
# Generowanie pełnego raportu porównawczego
./report.sh
# Porównanie tylko wybranych modeli
./report.sh --compare=llama,bielik --format=html
# Analiza trendów z ostatnich 60 dni
./report.sh --trend=60 --only-report
Szczegółowa dokumentacja systemu testowego znajduje się w pliku docs/TESTING.md.
System konwersji tekst-na-kod działa w następujących krokach:
execute() zawierająca kod realizujący zapytaniecorrectness - ocena poprawności kodu (0-1)completeness - ocena kompletności kodu (0-1)efficiency - ocena wydajności kodu (0-1)security - ocena bezpieczeństwa kodu (0-1)issues - lista wykrytych problemówsuggestions - sugestie ulepszeńSystem piaskownic Docker zapewnia bezpieczne środowisko do wykonywania kodu:
# Pobierz repozytorium
git clone https://github.com/tom-sapletta-com/evopy.git
cd evopy
# Uruchom skrypt instalacyjny
bash install.sh
Skrypt instalacyjny automatycznie:
Do generowania raportów w formatach HTML i PDF wymagane są następujące narzędzia:
Skrypt instalacyjny próbuje zainstalować te narzędzia automatycznie na systemach Linux. Na innych systemach operacyjnych wyświetla instrukcje instalacji.
# Pobierz repozytorium
git clone https://github.com/tom-sapletta-com/evopy.git
cd evopy
# Utwórz wirtualne środowisko Python
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# lub
# .venv\Scripts\activate # Windows
# Zainstaluj zależności
pip install -r requirements.txt
# Zainstaluj Ollama (jeśli nie jest zainstalowany)
# Instrukcje: https://github.com/ollama/ollama
# Pobierz model llama3
ollama pull llama3
# Aktywuj wirtualne środowisko
source .venv/bin/activate # Linux/Mac
# lub
# .venv\Scripts\activate # Windows
# Uruchom asystenta
python main.py
# Uruchom testy dla pojedynczego modelu z interaktywnym wyborem
./test.sh
# Uruchom testy dla konkretnego modelu
./test.sh --model=llama
# Wygeneruj raport porównawczy dla wszystkich dostępnych modeli
./report.sh
# Testowanie pojedynczego modelu
bash test.sh --model=llama3
# Generowanie raportu porównawczego dla wszystkich modeli
bash report.sh
# Generowanie raportu z określonym formatem i okresem analizy trendów
python generate_report.py --format=all --trend=30
Skrypt generate_report.py obsługuje następujące parametry:
--format - format wyjściowy raportu (all, md, html, pdf)--input - katalog zawierający wyniki testów--output - katalog do zapisania raportów--trend - liczba dni historycznych danych do uwzględnienia w analizie trendówPrzykład:
python generate_report.py --format=html --trend=60 --output=./custom_reports
# Tworzenie środowiska deweloperskiego
conda env create -f environment.yml
conda activate evopy
# Instalacja w trybie deweloperskim
pip install -e .
Ten projekt jest udostępniany na licencji Apache 2.0. Szczegóły w pliku LICENSE.
Zespół Bielik za pomoc i wsparcie na Discord
