HH/.opencode/plans/move-inquiry-ai-to-task.md
ismail 946c31cf34
Some checks failed
Build and Push Docker Image / build (push) Failing after 21s
Add CI pipeline for Docker image builds
2026-04-19 13:34:40 +03:00

96 lines
3.3 KiB
Markdown

# Move Inquiry AI Analysis to Celery Task
## Summary
Replace synchronous AI calls in 3 inquiry creation views with the existing `analyze_inquiry_with_ai.delay()` Celery task.
## Changes
### 1. `apps/complaints/ui_views.py` — `inquiry_create` (lines 1554-1567)
**Replace:**
```python
from apps.complaints.tasks import _apply_inquiry_ai_analysis
from apps.core.ai_service import AIService
try:
analysis = AIService.analyze_inquiry(
subject=inquiry.subject,
message=inquiry.message,
category=inquiry.get_category_display(),
hospital_id=inquiry.hospital.id,
)
emotion_analysis = AIService.analyze_emotion(text=inquiry.message)
_apply_inquiry_ai_analysis(inquiry, analysis, emotion_analysis)
except Exception as e:
logger.error(f"AI analysis failed on inquiry creation: {e}")
```
**With:**
```python
from apps.complaints.tasks import analyze_inquiry_with_ai
analyze_inquiry_with_ai.delay(str(inquiry.id))
```
Also update line 1572 — change `"Inquiry created with AI analysis."` to `"Inquiry created."`
---
### 2. `apps/complaints/ui_views.py` — `public_inquiry_submit` (lines 2315-2328)
**Replace:**
```python
from apps.complaints.tasks import _apply_inquiry_ai_analysis
from apps.core.ai_service import AIService
try:
analysis = AIService.analyze_inquiry(
subject=inquiry.subject,
message=inquiry.message,
category=category,
hospital_id=hospital.id,
)
emotion_analysis = AIService.analyze_emotion(text=inquiry.message)
_apply_inquiry_ai_analysis(inquiry, analysis, emotion_analysis)
except Exception as e:
logger.error(f"AI analysis failed on public inquiry creation: {e}")
```
**With:**
```python
from apps.complaints.tasks import analyze_inquiry_with_ai
analyze_inquiry_with_ai.delay(str(inquiry.id))
```
---
### 3. `apps/complaints/views.py` — `InquiryViewSet.perform_create` (lines 2750-2763)
**Replace:**
```python
from apps.complaints.tasks import _apply_inquiry_ai_analysis
from apps.core.ai_service import AIService
try:
analysis = AIService.analyze_inquiry(
subject=inquiry.subject,
message=inquiry.message,
category=inquiry.get_category_display(),
hospital_id=inquiry.hospital.id,
)
emotion_analysis = AIService.analyze_emotion(text=inquiry.message)
_apply_inquiry_ai_analysis(inquiry, analysis, emotion_analysis)
except Exception as e:
logger.error(f"AI analysis failed on inquiry creation: {e}")
```
**With:**
```python
from apps.complaints.tasks import analyze_inquiry_with_ai
analyze_inquiry_with_ai.delay(str(inquiry.id))
```
Also update docstring on line 2747 from `"Auto-set created_by from request.user and run AI analysis synchronously"` to `"Auto-set created_by from request.user and trigger AI analysis in background"`.