Skip to main content

A Python package for interacting with AI models

Project description

allama-logo.svg

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 modelu
  • url - endpoint API
  • auth_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allama-0.1.8.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

allama-0.1.8-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

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

Hashes for allama-0.1.8.tar.gz
Algorithm Hash digest
SHA256 68f8bae0c92b5a50b0f15cbb88204c357478b11308ec938ef30b21a5ed30ad91
MD5 c9e0f847d655fa062c3f1a11e8cf8d80
BLAKE2b-256 4af872f692de6aecabdb64d485d88afcf9c7958a6b9d2495f1b11bf11fc7836f

See more details on using hashes here.

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

Hashes for allama-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 dda5f8cbc33147716d787beae1c9809be2656cd6bfbe9e81105f9d217624ea52
MD5 d722a9bb61b378990dd8501c1d7d1e94
BLAKE2b-256 d487a7a34b2d298bbdaa213af4e86847514ce5206c4ab2e1e1d49c44f9d8e83e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page