Configuration¶
Installation¶
Basic Installation¶
pip install minillmlib
With Optional Dependencies¶
# For HuggingFace local models
pip install minillmlib[huggingface]
# For audio processing (required for audio features)
pip install minillmlib[audio]
# For all features
pip install minillmlib[all]
System Dependencies¶
For audio processing, install FFmpeg:
# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg
# macOS
brew install ffmpeg
# Windows
# Download from https://ffmpeg.org/download.html
API Keys & Environment Variables¶
Set provider API keys as environment variables for security:
# Core providers
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENROUTER_API_KEY="sk-or-..."
export MISTRAL_API_KEY="..."
# Optional providers
export TOGETHER_API_KEY="..."
export GROQ_API_KEY="..."
Using .env Files¶
# .env file
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
OPENROUTER_API_KEY=sk-or-...
# Load in Python
import minillmlib as mll
from dotenv import load_dotenv
import os
load_dotenv()
gi = mll.GeneratorInfo(
model="gpt-4o",
_format="openai",
api_key=os.getenv("OPENAI_API_KEY")
)
Provider Configuration¶
OpenAI¶
import minillmlib as mll
import os
# Direct configuration
gi = mll.GeneratorInfo(
model="gpt-4o",
_format="openai",
api_key=os.getenv("OPENAI_API_KEY"),
completion_parameters=mll.GeneratorCompletionParameters(
temperature=0.7,
max_tokens=2048,
top_p=0.9
)
)
# Or use model zoo
gi = mll.openai["gpt-4o"]
Anthropic¶
# Direct configuration
gi = mll.GeneratorInfo(
model="claude-3.5-sonnet-20241022",
_format="anthropic",
api_key=os.getenv("ANTHROPIC_API_KEY"),
completion_parameters=mll.GeneratorCompletionParameters(
temperature=0.7,
max_tokens=4096
)
)
# Model zoo
gi = mll.anthropic["claude-3.5-sonnet-20241022"]
OpenRouter¶
# Access to 100+ models
gi = mll.GeneratorInfo(
model="anthropic/claude-3.5-sonnet",
_format="url",
api_url="https://openrouter.ai/api/v1/chat/completions",
api_key=os.getenv("OPENROUTER_API_KEY")
)
# Model zoo
gi = mll.openrouter["anthropic/claude-3.5-sonnet"]
HuggingFace (Local)¶
# Requires: pip install minillmlib[huggingface]
gi = mll.GeneratorInfo(
model="microsoft/DialoGPT-medium",
_format="hf",
completion_parameters=mll.GeneratorCompletionParameters(
max_tokens=512,
temperature=0.8,
do_sample=True
)
)
Advanced Configuration¶
Completion Parameters¶
import minillmlib as mll
# Comprehensive parameter configuration
params = mll.GeneratorCompletionParameters(
# Generation settings
temperature=0.7,
max_tokens=2048,
top_p=0.9,
top_k=50,
frequency_penalty=0.1,
presence_penalty=0.1,
# Audio settings (OpenAI)
voice="alloy", # alloy, echo, fable, onyx, nova, shimmer
audio_output_folder="./audio_outputs",
# HuggingFace settings
do_sample=True,
num_beams=1,
early_stopping=False
)
gi = mll.GeneratorInfo(
model="gpt-4o",
_format="openai",
api_key=os.getenv("OPENAI_API_KEY"),
completion_parameters=params
)
Node Completion Parameters¶
# Advanced completion control
completion_params = mll.NodeCompletionParameters(
gi=gi,
# Response handling
add_child=True, # Add response as child node
parse_json=True, # Auto-parse JSON responses -> still return a str, but it will be loadable with json.loads()
merge_contiguous="user", # Merge consecutive messages
# Error handling
retry=3,
exp_back_off=True,
back_off_time=1.0,
max_back_off=30,
crash_on_refusal=False,
crash_on_empty_response=False,
# Multiple completions
n=1 # Number of completions to generate
)
result = chat.complete_one(completion_params)
Multimodal Configuration¶
Audio Processing¶
# Configure audio processing
audio_params = {
"target_sample_rate": 24000,
"enforce_mono": True,
"bit_depth": 16,
"enable_chunking": True,
"max_chunk_size": 10 * 1024 * 1024, # 10MB
"enforce_format": "wav"
}
# Process audio files
processed = mll.process_audio_for_completion(
file_paths=["audio1.mp3", "audio2.wav"],
**audio_params
)
Image Processing¶
# Image data currently supports URLs only
image_data = mll.ImageData(images=[
"https://example.com/image.png", # URL (supported)
# Note: Local files and base64 not yet supported for images
])
# Images are automatically processed for API compatibility
processed_images = image_data.get_processed_images()
Usage Tracking & Monitoring¶
# Enable usage tracking (optional)
gi = mll.GeneratorInfo(
model="gpt-4o",
_format="openai",
api_key=os.getenv("OPENAI_API_KEY"),
usage_db="mongodb://localhost:27017/llm_usage" # MongoDB connection
)
# Usage data is automatically tracked for cost monitoring
Logging Configuration¶
import minillmlib as mll
# Configure logging
logger = mll.get_logger()
mll.configure_logger(level="DEBUG") # DEBUG, INFO, WARNING, ERROR
# Use in your application
logger.info("Starting LLM completion...")