LLM Integration Module
Django-CFG includes a comprehensive LLM integration module that provides multi-provider support, intelligent caching, cost tracking, and seamless Django integration.
Features
| Feature | Description |
|---|---|
| Multi-provider | OpenAI, OpenRouter support |
| Vision & OCR | Image analysis with model presets |
| Image Resizing | Auto-resize for 90% token savings |
| Image Generation | DALL-E, FLUX support |
| Cost Tracking | Automatic cost calculation |
| Caching | Intelligent caching with TTL |
| Type-safe | Pydantic 2 configuration |
| Token Analytics | Usage tracking and estimation |
Quick Start
Public API (recommended)
from django_cfg.modules.django_llm import (
LLMClient, LLMCache, LLMProvider,
DjangoTranslator,
chat_completion, translate_text, translate_json,
get_available_models,
)
# Text completion
response = chat_completion(
messages=[{"role": "user", "content": "Hello!"}],
model="openai/gpt-4o-mini"
)
# Translation
translated = translate_text("Привет мир", target_language="en")
# JSON translation
data = translate_json({"title": "Привет"}, target_language="en")
# Available models
models = get_available_models()Vision & Image Generation (submodule imports)
from django_cfg.modules.django_llm.features.vision import VisionClient
from django_cfg.modules.django_llm.features.image_gen import ImageGenClient
# Vision analysis (auto-resize enabled by default)
vision = VisionClient()
result = vision.analyze(
image_source="https://example.com/image.jpg",
query="Describe this image"
)
print(f"Cost: ${result.cost_usd:.4f}")
# Image generation
gen = ImageGenClient()
image = gen.generate(prompt="A sunset over mountains")
print(image.first_url)Architecture
django_llm/
├── client/ # LLMClient for text completions
├── providers/ # Provider management (OpenAI, OpenRouter)
├── registry/ # Model catalogue, pricing, cost calculation
├── storage/ # Response caching with TTL
├── structured/ # Structured output + JSON extraction
├── tokenizer.py # Token counting
├── monitoring/ # Provider balance monitoring
├── features/
│ ├── vision/ # VisionClient, OCR, image resizing
│ ├── image_gen/ # ImageGenClient
│ └── translator/ # DjangoTranslator
└── __init__.pyModule Overview
Vision & OCR
Image analysis with automatic resizing for cost optimization.
# Default: 512x512 resize = 85 tokens per image
client = VisionClient() # auto_resize=True, default_detail="low"
# OCR extraction
response = client.ocr(
image_url="https://example.com/document.jpg",
mode="base"
)
print(response.text)Key features:
- Auto-resize (90% cost savings)
- Model quality presets (fast/balanced/best)
- OCR modes (tiny/small/base/gundam)
- Async support
Image Generation
Generate images with quality presets.
client = ImageGenClient()
response = client.generate(
prompt="A futuristic city",
model_quality="best",
size="1024x1024"
)Learn more about Image Generation
Text Client
Chat completions, embeddings, and JSON extraction.
client = LLMClient()
# Chat
response = client.chat_completion(
messages=[{"role": "user", "content": "Explain AI"}],
model="openai/gpt-4o-mini"
)
# Embeddings
embedding = client.generate_embedding(
text="Sample text",
model="text-embedding-ada-002"
)Cost Tracking
Automatic cost calculation and monitoring.
from django_cfg.modules.django_llm.registry import calculate_chat_cost
cost = calculate_chat_cost(
model="openai/gpt-4o-mini",
input_tokens=100,
output_tokens=50,
models_cache=models_cache
)Learn more about Cost Tracking
API Keys
API keys are auto-detected from Django config:
# Auto-detection
client = VisionClient() # Uses django_config.api_keys.get_openrouter_key()
# Explicit
client = VisionClient(api_key="sk-or-v1-...")Related Documentation
TAGS: llm, ai, openai, vision, ocr, image-generation DEPENDS_ON: [configuration, api-keys]
Last updated on