HH/apps/ai_engine/forms.py
2025-12-24 14:10:18 +03:00

135 lines
3.4 KiB
Python

"""
AI Engine forms
"""
from django import forms
from .models import SentimentResult
class AnalyzeTextForm(forms.Form):
"""Form for analyzing text"""
text = forms.CharField(
widget=forms.Textarea(attrs={
'class': 'form-control',
'rows': 6,
'placeholder': 'Enter text to analyze...'
}),
label='Text',
help_text='Enter the text you want to analyze for sentiment'
)
language = forms.ChoiceField(
choices=[
('', 'Auto-detect'),
('en', 'English'),
('ar', 'Arabic'),
],
required=False,
widget=forms.Select(attrs={'class': 'form-select'}),
label='Language',
help_text='Select language or leave blank for auto-detection'
)
extract_keywords = forms.BooleanField(
required=False,
initial=True,
widget=forms.CheckboxInput(attrs={'class': 'form-check-input'}),
label='Extract Keywords'
)
extract_entities = forms.BooleanField(
required=False,
initial=True,
widget=forms.CheckboxInput(attrs={'class': 'form-check-input'}),
label='Extract Entities'
)
detect_emotions = forms.BooleanField(
required=False,
initial=True,
widget=forms.CheckboxInput(attrs={'class': 'form-check-input'}),
label='Detect Emotions'
)
class SentimentFilterForm(forms.Form):
"""Form for filtering sentiment results"""
sentiment = forms.ChoiceField(
choices=[
('', 'All Sentiments'),
('positive', 'Positive'),
('neutral', 'Neutral'),
('negative', 'Negative'),
],
required=False,
widget=forms.Select(attrs={'class': 'form-select'}),
label='Sentiment'
)
language = forms.ChoiceField(
choices=[
('', 'All Languages'),
('en', 'English'),
('ar', 'Arabic'),
],
required=False,
widget=forms.Select(attrs={'class': 'form-select'}),
label='Language'
)
ai_service = forms.ChoiceField(
choices=[
('', 'All Services'),
('stub', 'Stub'),
('openai', 'OpenAI'),
('azure', 'Azure'),
('aws', 'AWS'),
],
required=False,
widget=forms.Select(attrs={'class': 'form-select'}),
label='AI Service'
)
min_confidence = forms.DecimalField(
required=False,
min_value=0,
max_value=1,
decimal_places=2,
widget=forms.NumberInput(attrs={
'class': 'form-control',
'step': '0.1',
'placeholder': '0.0'
}),
label='Min Confidence',
help_text='Minimum confidence score (0-1)'
)
date_from = forms.DateField(
required=False,
widget=forms.DateInput(attrs={
'class': 'form-control',
'type': 'date'
}),
label='From Date'
)
date_to = forms.DateField(
required=False,
widget=forms.DateInput(attrs={
'class': 'form-control',
'type': 'date'
}),
label='To Date'
)
search = forms.CharField(
required=False,
widget=forms.TextInput(attrs={
'class': 'form-control',
'placeholder': 'Search text...'
}),
label='Search'
)