A Python package for interacting with AI models
Project description
TestLLM - System Testowania Modeli LLM 🧪
Kompleksowy system do testowania i porównywania modeli Large Language Models (LLM) w kontekście generowania kodu Python. Projekt umożliwia automatyczną ocenę jakości wygenerowanego kodu poprzez różne metryki i generuje szczegółowe raporty HTML.
✨ Funkcjonalności
- Automatyczne testowanie multiple modeli LLM z konfigurowalnymi promptami
- Ocena jakości kodu - sprawdzanie składni, wykonalności, stylu i funkcjonalności
- Szczegółowe raporty HTML z metrykami, wykresami i porównaniami
- Eksport wyników do CSV i JSON dla dalszej analizy
- Konfigurowalność - łatwe dodawanie nowych modeli i testów
- Wsparcie dla różnych API - Ollama, lokalnych serwerów, usług w chmurze
- Ranking modeli na podstawie wydajności i jakości
🚀 Szybki Start
1. Instalacja
# Sklonuj projekt
git clone https://github.com/wronai/allama.git
cd testllm
# Zainstaluj zależności
pip install -r requirements.txt
# Lub użyj skryptu setup
python setup.py
2. Konfiguracja modeli
Edytuj plik models.csv aby skonfigurować swoje modele:
model_name,url,auth_header,auth_value,think,description
deepseek-coder:1.3b,http://192.168.188.108:8081/api/chat,,,false,DeepSeek Coder na lokalnym serwerze
mistral:latest,http://192.168.188.212:11434/api/chat,,,false,Mistral Latest na Ollama
gpt-4,https://api.openai.com/v1/chat/completions,Authorization,Bearer sk-...,false,OpenAI GPT-4
Kolumny w CSV:
model_name- nazwa modeluurl- endpoint APIauth_header- nagłówek autoryzacji (opcjonalny)auth_value- wartość autoryzacji (opcjonalny)think- czy model obsługuje parametr "think" (true/false)description- opis modelu
3. Uruchomienie testów
# Podstawowe testy wszystkich modeli
python main.py
# Zaawansowane opcje
python test_runner.py --benchmark
# Test pojedynczego modelu
python test_runner.py --single-model "deepseek-coder:1.3b"
# Porównanie określonych modeli
python test_runner.py --compare "mistral:latest" "deepseek-coder:1.3b"
📊 Metryki Oceny
System ocenia wygenerowany kod według następujących kryteriów:
Podstawowe metryki (automatyczne)
- ✅ Składnia poprawna - czy kod kompiluje się bez błędów
- ✅ Wykonalność - czy kod uruchamia się bez błędów runtime
- ✅ Słowa kluczowe - czy kod zawiera oczekiwane elementy z promptu
Metryki jakości kodu
- 📝 Definicje funkcji/klas - poprawna struktura kodu
- 🛡️ Obsługa błędów - try/catch, walidacja inputów
- 📚 Dokumentacja - docstringi, komentarze
- 📦 Importy - właściwe użycie bibliotek
- 📏 Długość kodu - rozsądna ilość linii
System punktowy
- Składnia poprawna: 3 punkty
- Wykonuje się bez błędów: 2 punkty
- Zawiera oczekiwane elementy: 2 punkty
- Ma definicje funkcji/klas: 1 punkt
- Ma obsługę błędów: 1 punkt
- Ma dokumentację: 1 punkt
- Maksymalnie: 10 punktów
🔧 Konfiguracja
Dostosowanie promptów
Edytuj plik config.py aby zmienić prompty testowe:
TEST_PROMPTS = [
{
"name": "Custom Function",
"prompt": "Write a Python function that...",
"expected_keywords": ["def", "function_name"],
"expected_behavior": "function_definition"
}
]
Własna konfiguracja JSON
Test wszystkich modeli Ollama na lokalnym serwerze
python test_runner.py --models ollama_models.csv
Porównanie tylko modeli kodujących
python test_runner.py --compare "deepseek-coder:1.3b" "codellama:7b" --output coding_models_comparison.html
Szybki test pojedynczego modelu z jednym promptem
python test_runner.py --single-model "mistral:latest" --prompt-index 0 --output quick_test.html
## 🔌 Integracja z Różnymi API
### Ollama (lokalny)
```csv
llama3.2:3b,http://localhost:11434/api/chat,,,false,Llama 3.2
OpenAI API
gpt-4,https://api.openai.com/v1/chat/completions,Authorization,Bearer sk-your-key,false,OpenAI GPT-4
Anthropic Claude
claude-3,https://api.anthropic.com/v1/messages,x-api-key,your-key,false,Claude 3
Lokalny serwer
local-model,http://192.168.1.100:8080/generate,,,false,Lokalny model
📁 Struktura Projek
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 allama-0.1.8.tar.gz.
File metadata
- Download URL: allama-0.1.8.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68f8bae0c92b5a50b0f15cbb88204c357478b11308ec938ef30b21a5ed30ad91
|
|
| MD5 |
c9e0f847d655fa062c3f1a11e8cf8d80
|
|
| BLAKE2b-256 |
4af872f692de6aecabdb64d485d88afcf9c7958a6b9d2495f1b11bf11fc7836f
|
File details
Details for the file allama-0.1.8-py3-none-any.whl.
File metadata
- Download URL: allama-0.1.8-py3-none-any.whl
- Upload date:
- Size: 15.5 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 |
dda5f8cbc33147716d787beae1c9809be2656cd6bfbe9e81105f9d217624ea52
|
|
| MD5 |
d722a9bb61b378990dd8501c1d7d1e94
|
|
| BLAKE2b-256 |
d487a7a34b2d298bbdaa213af4e86847514ce5206c4ab2e1e1d49c44f9d8e83e
|