A Django library for AI-powered data validation and cleaning.
Project description
Django AI Validator
Documentation: https://mazafard.github.io/django-ai-validator/
A Django library for AI-powered data validation and cleaning.
Features
- Semantic Validation: Validate data based on meaning using LLMs.
- Automated Cleaning: Automatically clean and normalize data.
- Admin Integration: Bulk actions and status indicators in Django Admin.
- Asynchronous Support: Offload LLM calls to Celery tasks.
- Multiple Providers: Support for OpenAI, Anthropic, Gemini, and Ollama.
Installation
pip install django-ai-validator
Configuration
Add to INSTALLED_APPS:
INSTALLED_APPS = [
...
'django_ai_validator',
]
Set your API key:
# Defaults to OpenAIClient
AI_CLEANER_LLM_CLIENT = 'django_ai_validator.llm.client.OpenAIClient'
OPENAI_API_KEY = "your-api-key"
Usage
Semantic Validation
from django.db import models
from django_ai_validator.validators import AISemanticValidator
class Product(models.Model):
description = models.TextField(
validators=[
AISemanticValidator(
prompt_template="Ensure the description is marketing-friendly and contains no offensive language."
)
]
)
Automatic Cleaning
from django_ai_validator.fields import AICleanedField
class UserProfile(models.Model):
bio = AICleanedField(
cleaning_prompt="Fix grammar and remove personal contact info."
)
Admin Integration
from django.contrib import admin
from django_ai_validator.admin import AIAdminMixin
from .models import MyModel
@admin.register(MyModel)
class MyModelAdmin(AIAdminMixin, admin.ModelAdmin):
list_display = ['content', 'is_dirty']
actions = ['run_ai_cleanup_on_selected']
Manual Validation
To check if user input contains bad words:
from django_ai_validator.validators import AISemanticValidator
class Comment(models.Model):
text = models.TextField(
validators=[
AISemanticValidator(
prompt_template="Check if this text contains bad words. Return VALID if not."
)
]
)
Asynchronous Cleaning
To automatically remove personal information:
from django_ai_validator.fields import AICleanedField
class Feedback(models.Model):
message = AICleanedField(
cleaning_prompt="Remove PII.",
)
Star History
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
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 django_ai_validator-0.1.3.tar.gz.
File metadata
- Download URL: django_ai_validator-0.1.3.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81e3006899353862005a3b5470d75b173c06043664cc5db77509a53003f1dd87
|
|
| MD5 |
ed52ebf83395bc23d87fc0b84dd5334a
|
|
| BLAKE2b-256 |
569323401355a4a163560d6e2d22a9d779a7c0b00c5d0b5b16811c7a11093015
|
File details
Details for the file django_ai_validator-0.1.3-py3-none-any.whl.
File metadata
- Download URL: django_ai_validator-0.1.3-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
656913c1fb033e25a7771910c233d7fbb1b75305aecf3f116f2c22a9d0244dbf
|
|
| MD5 |
6a7a8828f6340b959a69f27b48f8ee48
|
|
| BLAKE2b-256 |
673bb3543d7cfb78102686f775f51baf04a5a845b59ecea138db64c97ca6ad7a
|