A powerful web content fetcher and processor
Project description
EvalLite 🚀
An efficient, zero-cost LLM evaluation framework combining the simplicity of DeepEval with the power of free Hugging Face models through AILite.
🌟 Key Features
- Zero-Cost Evaluation: Leverage free Hugging Face models for LLM evaluation
- Simple Integration: Drop-in replacement for DeepEval's evaluation capabilities
- Extensive Model Support: Access to leading open-source models including:
- Meta Llama 3.1 70B Instruct
- Qwen 2.5 72B Instruct
- Mistral Nemo Instruct
- Phi-3.5 Mini Instruct
- And more!
- Comprehensive Metrics: Full compatibility with DeepEval's evaluation metrics
- Async Support: Built-in asynchronous evaluation capabilities
📥 Installation
pip install evallite
🚀 Quick Start
Here's a simple example to get you started with EvalLite:
from evallite import (
assert_test,
EvalLiteModel,
LLMTestCase,
evaluate,
AnswerRelevancyMetric
)
# Initialize metric with a specific model
answer_relevancy_metric = AnswerRelevancyMetric(
threshold=0.7,
model=EvalLiteModel(model="microsoft/Phi-3.5-mini-instruct")
)
# Create a test case
test_case = LLMTestCase(
input="What if these shoes don't fit?",
actual_output="We offer a 30-day full refund at no extra costs.",
retrieval_context=["All customers are eligible for a 30 day full refund at no extra costs."]
)
# Run evaluation
evaluate([test_case], [answer_relevancy_metric])
🔧 Available Models
EvalLite supports several powerful open-source models:
from evallite import EvalLiteModel
# Available model options
models = [
'meta-llama/Meta-Llama-3.1-70B-Instruct',
'CohereForAI/c4ai-command-r-plus-08-2024',
'Qwen/Qwen2.5-72B-Instruct',
'nvidia/Llama-3.1-Nemotron-70B-Instruct-HF',
'meta-llama/Llama-3.2-11B-Vision-Instruct',
'NousResearch/Hermes-3-Llama-3.1-8B',
'mistralai/Mistral-Nemo-Instruct-2407',
'microsoft/Phi-3.5-mini-instruct'
]
# Initialize with specific model
evaluator = EvalLiteModel(model='microsoft/Phi-3.5-mini-instruct')
📊 Advanced Usage
Custom Schema Support
EvalLite supports custom response schemas using Pydantic models:
from pydantic import BaseModel
from typing import List
class Statements(BaseModel):
statements: List[str]
# Use with schema
result = evaluator.generate(
prompt="List three facts about climate change",
schema=Statements
)
Async Evaluation
async def evaluate_async():
response = await evaluator.a_generate(
prompt="What is the capital of France?",
schema=Statements
)
return response
Batch Evaluation
from evallite import EvaluationDataset
# Create multiple test cases
test_cases = [
LLMTestCase(
input="Question 1",
actual_output="Answer 1",
retrieval_context=["Context 1"]
),
LLMTestCase(
input="Question 2",
actual_output="Answer 2",
retrieval_context=["Context 2"]
)
]
# Create dataset
dataset = EvaluationDataset(test_cases=test_cases)
# Evaluate all at once
evaluate(dataset, [answer_relevancy_metric])
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
📄 License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
🙏 Acknowledgments
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
evallite-0.1.0.tar.gz
(4.4 kB
view details)
Built Distribution
File details
Details for the file evallite-0.1.0.tar.gz
.
File metadata
- Download URL: evallite-0.1.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b41d26bc1110714180bfee1168c839c5c91a12fbda5c01afccc88d530dc51be9 |
|
MD5 | 9cbe1f25134a20fb1a246622fbc065a9 |
|
BLAKE2b-256 | 3dcd0541c4641544b37f8b302e24dd91a42e589555e7d4c5f01e77fa895cc7a1 |
File details
Details for the file evallite-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: evallite-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1627711d1984544aef080fb2b27cada3ae156a6dc9e25f7a3a5fc5dc414a077 |
|
MD5 | 5dbb0798aab365d8cdd7f465bf1b9fbe |
|
BLAKE2b-256 | edcc843a10b4330f321184fda72fd11b846d0daa2e7bf63d3b1eac9b8edab9fa |