Go Learn, Lead, Master! - Inteligentny system kontroli jakości kodu z integracją LLM
Project description
goLLM - Go Learn, Lead, Master!
Dlaczego goLLM? - Bo wierzymy, że jakość kodu to nie luksus, a standard. goLLM to więcej niż narzędzie - to twój asystent w dążeniu do doskonałości programistycznej.
🚀 O projekcie
goLLM to zaawansowany system kontroli jakości kodu Python zintegrowany z modelami językowymi (LLM), który przekształca proces programowania w płynne doświadczenie, gdzie jakość kodu jest gwarantowana od pierwszego znaku.
📚 Dokumentacja
Pełna dokumentacja dostępna jest w języku angielskim:
- Rozpoczęcie pracy - Instalacja i szybki start
- Funkcje - Przegląd funkcji
- Użycie - Jak korzystać z goLLM
- Przykłady - Przykłady użycia
- Dokumentacja API - Szczegóły techniczne
- Rozwój - Jak współtworzyć projekt
💫 Najważniejsze funkcje
- 🔥 Generowanie kodu - Tworzenie kodu na podstawie opisu w języku naturalnym
- 🔍 Walidacja kodu - Automatyczne sprawdzanie jakości i poprawności kodu
- 📈 Metryki jakości - Śledzenie postępów i trendów
- 🚀 Szybkie odpowiedzi - Generowanie kodu z wykorzystaniem lokalnych modeli LLM
- 🤖 Integracja z IDE - Wsparcie dla VS Code i PyCharm
- 🔄 Automatyczne poprawki - Inteligentne sugestie napraw błędów
⚡ Szybki start
# Instalacja
pip install gollm[llm]
# Generowanie kodu
gollm generate "Napisz funkcję w Pythonie, która oblicza silnię"
🤝 Współtworzenie
Zapraszamy do współtworzenia projektu! Szczegóły znajdziesz w przewodniku dla współtwórców.
📝 Licencja
Ten projekt jest dostępny na licencji Apache 2.0 - szczegóły w pliku LICENSE.
🔗 Przydatne linki
🤖 Wsparcie dla modeli
goLLM wspiera różne modele językowe, w tym:
- Lokalne modele przez Ollama (zalecane)
- OpenAI GPT-4/GPT-3.5
- Inne kompatybilne modele z interfejsem API
📦 Wymagania systemowe
- Python 3.8+
- 4GB+ wolnej pamięci RAM (więcej dla większych modeli)
- Połączenie z internetem (opcjonalne, tylko dla niektórych funkcji)
🌍 Wsparcie społeczności
Dołącz do naszej społeczności, aby zadawać pytania i dzielić się swoimi doświadczeniami:
- GitHub Discussions
- Discord (jeśli dostępny)
🔄 Ostatnie zmiany
Sprawdź historię zmian, aby zobaczyć najnowsze aktualizacje i nowe funkcje.
📚 Dokumentacja
Pełna dokumentacja dostępna jest w dokumentacji online.
📖 Przewodniki
- Wprowadzenie - Pierwsze kroki z goLLM
- Konfiguracja projektu - Szczegóły konfiguracji
- Integracja z Ollama - Jak używać lokalnych modeli LLM
- Generowanie wielu plików - Zarządzanie złożonymi projektami
- Streaming odpowiedzi - Szybsze generowanie kodu z modularnym adapterem
🛠️ API
- Podstawowe funkcje - Główne komponenty goLLM
- Rozszerzenia - Jak rozszerzać funkcjonalność
- Interfejs wiersza poleceń - Pełna dokumentacja CLI
🛠️ Rozwój
Konfiguracja środowiska deweloperskiego
-
Sklonuj repozytorium:
git clone https://github.com/wronai/gollm.git cd gollm
-
Utwórz i aktywuj środowisko wirtualne:
python -m venv venv source venv/bin/activate # Linux/MacOS # lub .\venv\Scripts\activate # Windows
-
Zainstaluj zależności deweloperskie:
pip install -e .[dev]
Uruchamianie testów
# Uruchom wszystkie testy
pytest
# Uruchom testy z pokryciem kodu
pytest --cov=src tests/
# Wygeneruj raport HTML z pokryciem
pytest --cov=src --cov-report=html tests/
🤝 Współpraca
Wszelkie wkłady są mile widziane! Zobacz przewodnik dla współpracowników, aby dowiedzieć się, jak możesz pomóc w rozwoju projektu.
📄 Licencja
Projekt jest dostępny na licencji Apache 2.0.
## 📊 Korzyści z używania goLLM
### Dla programistów
- **Oszczędność czasu** - Automatyczne poprawki i sugestie
- **Nauka najlepszych praktyk** - Natychmiastowy feedback jakości kodu
- **Mniejsze obciążenie code review** - Mniej błędów trafia do recenzji
### Dla zespołów
- **Spójność kodu** - Jednolite standardy w całym projekcie
- **Łatwiejsze wdrażanie nowych członków** - Automatyczne egzekwowanie standardów
- **Lepsza jakość kodu** - Systematyczne eliminowanie antywzorców
### Dla firmy
- **Niższe koszty utrzymania** - Lepsza jakość kodu = mniej bugów
- **Szybsze wdrażanie** - Zautomatyzowane procesy kontroli jakości
- **Większa wydajność zespołu** - Mniej czasu na poprawki, więcej na rozwój
## 🔄 Jak to działa?
goLLM działa w oparciu o zaawansowany system analizy kodu, który łączy w sobie:
1. **Statyczną analizę kodu** - Wykrywanie potencjalnych błędów i antywzorców
2. **Dynamiczną analizę** - Śledzenie wykonania kodu w czasie rzeczywistym
3. **Integrację z LLM** - Kontekstowe sugestie i automatyzacja zadań
4. **Automatyczne raportowanie** - Kompleksowe metryki jakości kodu
### Przykładowy workflow
```mermaid
graph TD
A[Nowy kod] --> B{Analiza goLLM}
B -->|Błędy| C[Automatyczne poprawki]
B -->|Ostrzeżenia| D[Sugestie ulepszeń]
B -->|Krytyczne| E[Blokada zapisu]
C --> F[Ponowna analiza]
D --> G[Recenzja programisty]
F -->|OK| H[Zatwierdź zmiany]
G -->|Zaakceptowano| H
H --> I[Aktualizacja CHANGELOG]
I --> J[Integracja z systemem CI/CD]
⚙️ Konfiguracja
goLLM oferuje elastyczną konfigurację dopasowaną do potrzeb Twojego projektu. Podstawowa konfiguracja znajduje się w pliku gollm.json.
Przykładowa konfiguracja
{
"version": "0.2.0",
"validation_rules": {
"max_function_lines": 50,
"max_file_lines": 300,
"max_cyclomatic_complexity": 10,
"max_function_params": 5,
"max_line_length": 88,
"forbid_print_statements": true,
"forbid_global_variables": true,
"require_docstrings": true,
"require_type_hints": false,
"naming_convention": "snake_case"
},
"project_management": {
"todo_integration": true,
"auto_create_tasks": true,
"changelog_integration": true
},
"llm_integration": {
"enabled": true,
"provider": "openai",
"model": "gpt-4"
}
}
Integracja z narzędziami deweloperskimi
Integracja z Narzędziami
GoLLM można zintegrować z istniejącymi narzędziami deweloperskimi poprzez konfigurację w pliku gollm.json. Aby uzyskać więcej informacji, sprawdź dokumentację konfiguracji.
# Sprawdź aktualną konfigurację
gollm config list
# Zmień ustawienia konfiguracji
gollm config set <klucz> <wartość>
CI/CD
# Przykład dla GitHub Actions
name: goLLM Validation
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install goLLM
run: pip install gollm[llm]
- name: Run validation
run: gollm validate .
📊 Metryki i analiza
goLLM dostarcza szczegółowych metryk i analiz, które pomagają śledzić jakość kodu w czasie.
Dostępne komendy
Metryki jakości kodu
# Pokaż aktualne metryki jakości kodu
gollm metrics
Trendy jakości w czasie
# Pokaż trendy jakości kodu w określonym okresie
gollm trend --period month
Status projektu
# Sprawdź aktualny status projektu i zdrowia kodu
gollm status
Przykładowe metryki
- Jakość kodu - Ocena 0-100%
- Pokrycie testami - Procent kodu objętego testami
- Złożoność cyklomatyczna - Średnia złożoność metod
- Dług techniczny - Szacowany czas potrzebny na poprawę jakości
🤖 Integracja z modelami językowymi
goLLM może współpracować z różnymi dostawcami modeli językowych:
OpenAI GPT
export OPENAI_API_KEY="twój-klucz"
gollm config set llm.provider openai
gollm config set llm.model gpt-4
Anthropic Claude
export ANTHROPIC_API_KEY="twój-klucz"
gollm config set llm.provider anthropic
gollm config set llm.model claude-3-opus
Ollama (lokalny)
gollm config set llm.provider ollama
gollm config set llm.model codellama:13b
🌐 Wsparcie społeczności
Gdzie uzyskać pomoc?
Jak możesz pomóc?
- Zgłaszaj błędy i propozycje funkcji
- Udostępniaj przykłady użycia
- Pomagaj w tłumaczeniu dokumentacji
- Rozwijaj projekt przez pull requesty
📜 Licencja
Projekt goLLM jest dostępny na licencji Apache 2.0.
🤝 Integracja z LLM Providers
OpenAI
export OPENAI_API_KEY="sk-..."
gollm config set llm.provider openai
gollm config set llm.model gpt-4
Anthropic Claude
export ANTHROPIC_API_KEY="sk-ant-..."
gollm config set llm.provider anthropic
gollm config set llm.model claude-3-sonnet
📚 Dokumentacja
🤝 Wkład w Projekt
# Sklonuj repozytorium
git clone https://github.com/wronai/gollm
cd gollm
# Zainstaluj dla deweloperów
pip install -e .[dev]
# Uruchom testy
pytest
# Sprawdź jakość kodu
gollm validate-project
📄 Licencja
MIT License - zobacz LICENSE po szczegóły.
🌟 Roadmapa
- v0.2.0 - Integracja z więcej IDE (PyCharm, Sublime)
- v0.3.0 - Obsługa JavaScript/TypeScript
- v0.4.0 - Integracja z CI/CD (GitHub Actions, GitLab CI)
- v0.5.0 - Dashboard webowy z metrykami zespołu
- v1.0.0 - Enterprise features + self-hosted LLM
goLLM - Gdzie jakość kodu spotyka się z inteligencją! 🚀45-90 minutes
-
Related Files:
examples/bad_code.py:15 -
CRITICAL: Function
process_user_data()has cyclomatic complexity 12 (max: 10)- Created: 2025-06-01 14:23:15
- Location:
examples/bad_code.py:15 - Suggested Fix: Simplify logic or extract sub-functions
- Estimated Effort: 1-3 hours
-
MAJOR: File
bad_code.pyexceeds maximum lines (150+ lines, max: 300)- Created: 2025-06-01 14:23:15
- Impact: Code maintainability
- Suggested Fix: Split into smaller modules
- Estimated Effort: 2-4 hours
🟡 MEDIUM Priority
Code Improvements
-
Replace print statements with logging (5 instances found)
- Created: 2025-06-01 14:23:15
- Files:
examples/bad_code.py - Auto-fix Available: ✅ Yes
- Command:
gollm fix --rule print_statements examples/bad_code.py - Estimated Effort:
goLLM - Kompletna Implementacja Systemu
🎯 Podsumowanie Rozwiązania
goLLM (Go Learn, Lead, Master!) to kompletny system kontroli jakości kodu z integracją LLM, który automatycznie:
- Waliduje kod w czasie rzeczywistym - blokuje zapisywanie/wykonanie kodu niespełniającego standardów
- Integruje się z LLM - automatycznie poprawia kod przez AI z kontekstem projektu
- Zarządza dokumentacją projektu - automatycznie aktualizuje TODO i CHANGELOG
- Agreguje konfiguracje - łączy ustawienia z różnych narzędzi (flake8, black, mypy)
🚀 Kluczowe Komponenty
1. Core Engine (7 plików)
GollmCore- główna klasa orkiestrującaCodeValidator- walidacja kodu z AST analysisGollmConfig- zarządzanie konfiguracjąCLI- interfejs wiersza poleceń
2. LLM Integration (8 plików)
LLMOrchestrator- orkiestracja komunikacji z LLMContextBuilder- budowanie kontekstu dla LLMPromptFormatter- formatowanie promptówResponseValidator- walidacja odpowiedzi LLM
3. Project Management (6 plików)
TodoManager- automatyczne zarządzanie TODOChangelogManager- automatyczne aktualizacje CHANGELOGTaskPrioritizer- priorytetyzacja zadań
4. Real-time Monitoring (6 plików)
LogAggregator- agregacja logów wykonaniaExecutionMonitor- monitoring procesówLogParser- parsowanie błędów i traceback
5. Configuration System (7 plików)
ProjectConfigAggregator- agregacja konfiguracji- Parsery dla: flake8, black, mypy, pyproject.toml
- Wykrywanie konfliktów między narzędziami
🎬 Przykład Kompletnego Workflow
Scenariusz: LLM generuje kod → goLLM kontroluje jakość
# 1. Użytkownik prosi LLM o kod
$ gollm generate "Create a user authentication system"
# 2. LLM generuje kod (przykład z naruszeniami)
# Generated code has: 9 parameters, print statements, high complexity
# 3. goLLM automatycznie waliduje
🔍 goLLM: Validating generated code...
❌ Found 4 violations:
- Function has 9 parameters (max: 5)
- Print statement detected
- Cyclomatic complexity 12 (max: 10)
- Missing docstring
# 4. goLLM wysyła feedback do LLM
🤖 Sending violations to LLM for improvement...
# 5. LLM generuje poprawiony kod
✅ Iteration 2: All violations resolved
📝 TODO updated: 0 new tasks (all fixed)
📝 CHANGELOG updated: Code generation entry added
💾 Code saved: user_auth.py
📊 Quality score: 85 → 92 (+7)
# 6. Automatyczne testy
🧪 Running validation on saved file...
✅ All checks passed
🚀 Ready for commit
Automatyczne Aktualizacje Dokumentacji
TODO.md (automatycznie zarządzane):
# TODO List - Updated: 2025-06-01 14:23:15
## 🔴 HIGH Priority (0 tasks)
✅ All high priority issues resolved!
## 🟡 MEDIUM Priority (2 tasks)
- [ ] Add unit tests for UserAuth class
- [ ] Add API documentation
## 🟢 LOW Priority (1 task)
- [ ] Optimize password hashing performance
CHANGELOG.md (automatycznie aktualizowane):
## [Unreleased] - 2025-06-01
### Added
- **[goLLM]** User authentication system with secure password handling
- **File:** `user_auth.py`
- **Quality Improvement:** +7 points
- **LLM Generated:** ✅ Yes (2 iterations)
### Fixed
- **[goLLM]** Resolved parameter count violation in authentication function
- **Before:** 9 parameters
- **After:** 2 parameters (using dataclass)
- **Complexity Reduction:** 12 → 4
🛠️ Instalacja i Uruchomienie
Szybka Instalacja
# Sklonuj/pobierz goLLM
curl -sSL https://raw.githubusercontent.com/wronai/gollm/main/install.sh | bash
# Lub ręcznie
git clone https://github.com/wronai/gollm
cd gollm
./install.sh
Demo
# Uruchom demonstrację
./run_demo.sh
# Lub na Windows
run_demo.bat
Podstawowe Komendy
# Walidacja projektu
gollm validate-project
# Status jakości
gollm status
# Następne zadanie TODO
gollm next-task
# Generowanie kodu z LLM
gollm generate "create payment processor"
gollm generate "create website simple with frontend, api and backend"
# Auto-poprawki
gollm fix --auto
🔧 Konfiguracja
Plik gollm.json
{
"validation_rules": {
"max_function_lines": 50,
"max_file_lines": 300,
"forbid_print_statements": true,
"require_docstrings": true
},
"llm_integration": {
"enabled": true,
"model_name": "gpt-4",
"max_iterations": 3
},
"project_management": {
"todo_integration": true,
"changelog_integration": true
}
}
Integracja z IDE i Narzędziami
GoLLM można zintegrować z IDE i narzędziami deweloperskimi poprzez konfigurację w pliku gollm.json.
# Sprawdź aktualną konfigurację
gollm config list
# Zmień ustawienia konfiguracji
gollm config set <klucz> <wartość>
Możliwe integracje:
- Walidacja kodu w czasie rzeczywistym
- Automatyczne poprawki przy zapisie
- Sugestie LLM w edytorze
- Integracja z systemem kontroli wersji
📊 Metryki i Raportowanie
# Pokaż aktualne metryki jakości kodu
gollm metrics
# Pokaż trendy jakości kodu w określonym okresie
gollm trend --period month
# Sprawdź status projektu i zdrowia kodu
gollm status
# Przykładowy wynik:
Quality Score: 89/100
Code Coverage: 78%
Cyclomatic Complexity: 2.4 (Good)
Technical Debt: 3.2 days
Violations Fixed: 47
LLM Iterations: 156 (avg 2.3 per request)
🎯 Kluczowe Korzyści
- Zero-config Quality Control - działa out-of-the-box
- LLM-Powered Fixes - automatyczne poprawki przez AI
- Seamless Project Management - TODO/CHANGELOG bez wysiłku
- IDE Integration - wsparcie dla popularnych edytorów
- Git Workflow - automatyczne hooki i walidacja
- Extensible Architecture - łatwe dodawanie nowych reguł
🚀 Roadmapa
- v0.2.0 - Obsługa TypeScript/JavaScript
- v0.3.0 - Web dashboard z metrykami zespołu
- v0.4.0 - Integracja z CI/CD pipelines
- v0.5.0 - Enterprise features + self-hosted LLM
goLLM to kompletne rozwiązanie, które łączy kontrolę jakości kodu z mocą LLM, tworząc inteligentny system wspomagający deweloperów w pisaniu lepszego kodu! 🐍✨
🏗️ Architektura Systemu
Core Components (100% Complete)
- GollmCore - Główny orkiestrator
- CodeValidator - Walidacja AST + reguły jakości
- LLMOrchestrator - Integracja z AI (OpenAI/Anthropic/Ollama)
- TodoManager - Automatyczne TODO z naruszeń
- ChangelogManager - Automatyczne CHANGELOG
- ConfigAggregator - Łączenie konfiguracji z różnych narzędzi
- GitAnalyzer - Integracja z Git + hooks
- FileWatcher - Monitoring zmian w czasie rzeczywistym
Features (100% Implemented)
- ✅ Real-time Code Validation - Walidacja podczas pisania
- ✅ LLM Integration - OpenAI, Anthropic, Ollama
- ✅ Auto TODO/CHANGELOG - Automatyczna dokumentacja
- ✅ Git Hooks - Pre-commit/post-commit/pre-push
- ✅ IDE Integration - VS Code + Language Server Protocol
- ✅ Configuration Aggregation - flake8, black, mypy, etc.
- ✅ Execution Monitoring - Śledzenie błędów i performancji
- ✅ Quality Scoring - Ocena jakości kodu 0-100
- ✅ Task Prioritization - Inteligentne priorytetyzowanie TODO
🤖 Ollama Integration - Gotowe do Użycia
Quick Setup
# 1. Zainstaluj Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# 2. Pobierz model dla kodu
ollama pull codellama:7b # 4GB RAM
ollama pull codellama:13b # 8GB RAM - zalecane
ollama pull phind-codellama:34b # 20GB RAM - najlepsze
# 3. Uruchom Ollama
ollama serve
# 4. Zainstaluj goLLM
./install.sh
# 5. Skonfiguruj
gollm config set llm_integration.enabled true
gollm config set llm_integration.providers.ollama.enabled true
gollm config set llm_integration.providers.ollama.model codellama:7b
# 6. Test
gollm generate "Create a user authentication function"
Workflow z Ollama
# Użytkownik prosi o kod
gollm generate "Create payment processor with error handling"
# ↓ goLLM wysyła do Ollama z kontekstem:
# - Reguły jakości projektu (max 50 linii, no prints, etc.)
# - Ostatnie błędy i traceback
# - Zadania TODO do naprawy
# - Standard kodowania zespołu
# - Historia zmian w plikach
# ↓ Ollama generuje kod Python
# ↓ goLLM automatycznie waliduje:
# ❌ Naruszenia znalezione → feedback do Ollama → iteracja
# ✅ Kod OK → zapis + aktualizacja TODO/CHANGELOG
# Rezultat: Wysokiej jakości kod zgodny ze standardami projektu
📊 Porównanie Providerów LLM
| Provider | Model | Prywatność | Koszt | Jakość | Szybkość | Offline |
|---|---|---|---|---|---|---|
| Ollama | CodeLlama 7B | ✅ 100% | ✅ Darmowy | 🟡 Dobra | 🟡 Średnia | ✅ Tak |
| Ollama | CodeLlama 13B | ✅ 100% | ✅ Darmowy | ✅ Bardzo dobra | 🟡 Średnia | ✅ Tak |
| OpenAI | GPT-4 | ❌ 0% | ❌ $0.03-0.12/1k | ✅ Najlepsza | ✅ Szybka | ❌ Nie |
| Anthropic | Claude-3 | ❌ 0% | ❌ $0.01-0.08/1k | ✅ Bardzo dobra | 🟡 Średnia | ❌ Nie |
Rekomendacja:
- Ollama CodeLlama 13B dla większości projektów (prywatność + jakość)
- OpenAI GPT-4 dla maksymalnej jakości (rozwiązania enterprise)
💡 Kluczowe Komendy
# Podstawowe
gollm validate-project # Waliduj cały projekt
gollm status # Pokaż status jakości
gollm next-task # Pokaż następne zadanie TODO
gollm fix --auto # Automatyczna naprawa problemów
# Integracja z LLM
gollm generate "zadanie" # Generuj kod z pomocą AI
gollm fix --llm plik.py # Napraw kod z pomocą AI
# Więcej informacji
gollm --help # Wyświetl dostępne komendy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gollm-0.1.24.tar.gz.
File metadata
- Download URL: gollm-0.1.24.tar.gz
- Upload date:
- Size: 186.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8882e660ddd536292b02cc00fa21d2b91c3aefea765f361519570fa0e8b43568
|
|
| MD5 |
2d4373b8bd205f870005d2c1636526de
|
|
| BLAKE2b-256 |
215692b8ccefd44ee31ab4cabd054d2113e6a3055b369b7f983aa5b3a42e2f4a
|
File details
Details for the file gollm-0.1.24-py3-none-any.whl.
File metadata
- Download URL: gollm-0.1.24-py3-none-any.whl
- Upload date:
- Size: 230.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d411765f2cec7f2e2932d3bdcfd74597e50b68d8e3314e3d8f32a295988b1363
|
|
| MD5 |
057dd4333ac871bb52c48e12bd782ede
|
|
| BLAKE2b-256 |
f34bc742eeff0498a38a2e3768b76b65c2862e1ac0f82cc9979ff5659e7a1a1a
|