Prompt evaluation and mock LLM for testing
Project description
LLM Quick Tools ⚡
A lightweight dual-purpose library for:
- Prompt Evaluation - Score and improve LLM inputs
- Mock LLM - Simulate API responses during development
Installation
pip install llm-quick-tools
1. Prompt Scoring 🔍
Evaluate prompt quality across multiple dimensions.
Quick Start
from llm_quick_tools import PromptEvaluator
evaluator = PromptEvaluator()
scores = evaluator.evaluate(
"Explain quantum computing to a 5-year-old",
task="education"
)
print(scores)
Output:
{
'length': 0.38, # Optimal 20-100 chars
'clarity': 0.9, # Sentence structure
'toxicity': 0.02, # Harmful content risk
'task_alignment': 0.8 # Relevance to education
}
Scoring Metrics
| Metric | Range | Ideal | Description |
|---|---|---|---|
| Length | 0-1 | 0.3-0.7 | Prompt character length |
| Clarity | 0-1 | >0.8 | Sentence complexity |
| Toxicity | 0-1 | <0.1 | Risk of harmful content |
| Task Alignment | 0-1 | >0.7 | Relevance to specified task |
2. Mock LLM 🤖
Simulate LLM responses without API calls.
Response Modes
from llm_quick_tools import MockLLM
# Initialize with different modes
echo_llm = MockLLM(mode="echo")
template_llm = MockLLM(mode="template")
Mode Comparison
| Mode | Description | Example Input → Output |
|---|---|---|
echo |
Repeats input | "Hi" → "Echo: Hi" |
random |
Random responses | "Help" → "Try checking our docs" |
template |
Keyword-triggered | "price" → "The cost is $9.99" |
Template Management
# Add custom templates
template_llm.add_template(
"contact support",
"Email us at help@company.com"
)
# Load from JSON
template_llm.load_templates("path/to/templates.json")
# Generate responses
print(template_llm.generate("How to contact support?"))
# Output: "Email us at help@company.com"
Pre-Loaded Templates
{
"hello": "Hi! How can I help?",
"goodbye": "Have a nice day!",
"pricing": "Our plans start at $9.99/mo",
"refund": "Refunds take 5-7 business days",
"tech support": "Try restarting your device"
}
Advanced Usage
Combined Workflow
# 1. Evaluate prompt
scores = evaluator.evaluate("Tell me a joke about AI")
# 2. Generate mock response
if scores['toxicity'] < 0.1:
response = template_llm.generate("Tell me a joke about AI")
else:
response = "I can't comply with that request"
Custom Template JSON
// custom_templates.json
{
"feature request": "Added to our roadmap",
"bug report": "We'll investigate this issue",
"order {} status": "Order #{} ships in 2 days"
}
Use Cases
- Testing - Verify LLM integration logic
- Development - Prototype before API integration
- Education - Teach prompt engineering concepts
- CI/CD - Run deterministic tests in pipelines
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add feature') - Push (
git push origin feature/AmazingFeature) - Open a Pull Request
License
MIT © Aryan
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
llm_quick_tools-0.1.2.tar.gz
(5.6 kB
view details)
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 llm_quick_tools-0.1.2.tar.gz.
File metadata
- Download URL: llm_quick_tools-0.1.2.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed5ff9c2150e164114b57f379d7f7e816c88e34e5acd65c57bbbb603025b8d0d
|
|
| MD5 |
b2909d1bf36e3c2ee7b4387b4de57857
|
|
| BLAKE2b-256 |
36e04771f7c334a6a241a5424ba06fe6f135aaae79054c46f15a021ba75f0d74
|
File details
Details for the file llm_quick_tools-0.1.2-py3-none-any.whl.
File metadata
- Download URL: llm_quick_tools-0.1.2-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ec312241d4fd4a2bf955cb0cd903f4201536f0b424f0463cc44e51dfa05c405
|
|
| MD5 |
44d207a4b3987ff6714a34250a1095b9
|
|
| BLAKE2b-256 |
055c3c285fa3f6ad7bca81321996991555e548d43844434cbecd5281f038b3f3
|